[Bug] vsock: 100% CPU 主- loop 活锁和挂接在恢复飞行流量后(v1.16.x, EERT IDX)

作者: sergii-tereshchenko创建于 2026年7月31日更新于 2026年8月26日
标签Status: Awaiting release

重现问题的最小形状(不需要快照):

  1. 启动带有 vsock 设备和监听在 vsock 端口上的客户机代理的微型虚拟机。
  2. 建立稳定的双向 vsock 流量 - 例如,客户机进程向 stdout 串流写入主机 → 客户机,通过一个连接(主机 → 客户机接收活动),而主机定期发送请求(客户机 → 主机发送活动)。关键是,在暂停的瞬间,既有接收描述符和发送描述符都在流中未被消耗。
  3. PATCH /vm {"state":"Paused"}
  4. PATCH /vm {"state":"Resumed"}
  5. 从主机上,打开一个 vsock 连接到客户机代理(例如,一个 exec 风格的控制连接)。

**观察到:**步骤 5 的 CONNECT 从未被接受;主机端无限期地阻塞。Firecracker 的主线程被锁定在 100% CPU 上。现有连接也停止前进。

内容来源: firecracker-microvm/firecracker