OpenBSD 上 Tokio 并发 UDP 发送可能永久卡死,复现与规避方法公开
jedisct1 · x · 2026-10-14
jedisct1 在 Tokio 仓库报告了一个 OpenBSD 平台 bug:多个任务并发对同一 UdpSocket 调用 sendto 时可能无限停止推进。
- 环境:Tokio 1.53.3、Mio 1.2.4、OpenBSD 7.9 amd64
- 复现:8 个任务共享一个 socket,正常跑必触发 60 秒超时;将 sendto 串行化后 80,000 次发送仅 5.5 秒完成
- 原因推测:OpenBSD 在并发发送争抢 socket 发送锁时返回 EWOULDBLOCK,Tokio 随即清除可写就绪状态并等待一个永远不会到来的事件
- 规避:给每个 socket 加异步发送互斥锁即可可靠解决;作者建议 Tokio 在 OpenBSD 上按 socket 串行化发送
与 AI 无直接关系,但对系统编程读者有实用参考价值。
「Infra」频道最新
- 投资人警告:neocloud 扎堆转推理却无差异化,恐难逃整合 — AccBalanced · 2026-10-14
- Lightning AI 将亮相 GTC 柏林,谈创业公司各阶段如何拿到 GPU — LightningAI · 2026-10-14
- Hugging Face 将直播讲解投机解码,如何给本地 LLM 提速数倍 — mervenoyann · 2026-10-14
- 黄仁勋的算盘:扶植 CoreWeave 在大客户与英伟达间筑起缓冲层 — AccBalanced · 2026-10-14
- 64GB 版 Nvidia Spark 欧洲售价 6574 欧元,比官方贵出离谱 — AIFlow_ML · 2026-10-14
- Toby Ord:押注算力与能力的整体关系,而非盯着单一瓶颈 — ben_j_todd · 2026-10-14