Skip to content

感谢 @aerodomigue 的稳定性修复建议 #4

Description

@yunsmall

感谢 @aerodomigue 在 fork aerodomigue/usbipdcpp 中做的稳定性修复工作。以下修复已合并到 upstream develop 分支:

竞态条件 & 稳定性:

  • handle_unlink_seqnum 共享锁提前释放导致 use-after-free
  • transfer_callbackLIBUSB_TRANSFER_ERROR 处理逻辑反转(SHORT_NOT_OK 判断反了)
  • pending_count_ 递减过早,与 on_disconnection 存在竞态
  • receiver 线程绕过 sender 队列直接写 socket 导致并发写入
  • sender TCP 写失败后仅 break 退出,session 未及时清理
  • immediately_stop 未唤醒 sender 线程

设备管理:

  • release_and_close_device 设备拔出后反查接口数量失败导致释放循环被跳过

新功能(参考 fork 设计):

  • LibusbServerConfig 配置结构体(skip_hub, auto_bind_hotplug)
  • bind_existing_devices() 启动时自动绑定所有设备
  • daemon 模式(POSIX sigwait)
  • Windows Service 示例

@aerodomigue 是否有兴趣向 upstream 提 PR?非常欢迎!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions