#2178·iii

在并发触发提供程序重连(序列控制传递)期间,引擎 v0.23.0 变得无响应

作者: McHersheys创建于 2026年9月13日更新于 2026年9月17日

□ 总结

未修改的iii/v0.23.0 Linux x86 64 发布,同时重新连接多个触发提供者可以使引擎停止响应RPC和/或新的WebSocket握手. 这一过程依然活生生,但即使是正常的终止也可能无法完成. 使用相同触发声明的序列重联控制仍然具有响应性并正常退出.

这份报告以孤立的合成复制为基础:不需要应用程序工作人员、证书、服务商电话、外部网络、数据库或实际用户任务。

□ 观察环境和结果

  • 发动机释放源:8356a0012a22e7d5732b49328215f9ebfbbc7bfd' (iii/v0.23.0')。
  • 可执行的SHA256:`988bd7281d3c3bce5aaab4bce96471273f5444ec968ae813d3fefc186b'。
  • Linux x86 64,被绑定为gVisor/runsc容器,2个CPU / 2个GiB RAM,网络除回放外已禁用.
  • 8个触发器提供者连接加1个观察/约束连接。 每个供应商拥有6个触发类型;每个类型有12个约束:48个类型/576个约束.
  • 元数据注册返回 QQ成功: true ; 提供了实际进程 PID。 工人名册核实所有9个名字的连接,加上5个内部工人。 没有提供或伪造任何电话号码。

返回一个可控序列/当前比较:

常规引擎关闭时间 |:也. QQ 连线重接,四轮QQ 全部名单读出+新鲜最后握手通过 QQ 1.718 s QQ 出站 0QQ

前两次同时进行的审判也停滞不前。 他们最初的名册检查省略了PID元数据,因此它只列出内置的;上面的最后比较纠正了检查缺口并核实真正的被命名的工人. 先前的这些审判不是以工人名义提出索赔的依据。

这在这种环境下复制出活泼的失败. 这还不是确切屏蔽锁的证明,也不是每个普通工作量或每个平台都失败的说法。

□再现.

只在一次性隔离环境中运行. 脚本开始提供引擎可执行文件,使用回回接端口49134,并在每一个被绑定的大小写后终止自己的子. 在Python试验环境中安装`websockets ==1°'。 提供一个不存在的产出目录 :

嘘 Python 复制.py/absolute/path/to/iii/tmp/iii-重接-repro-new


下面的脚本是已执行的有线/外观代码,其中只有可执行,输出和抓取路径参数化的可移植性;这些路径的改编已经过语法检查,而不是作为附加试运行. 这两个案件都保留了记录和JSON结果。 单凭流程一级的退出代码并不能得出这样的结果:检查每个案例的`通过'、`错误'和`引擎 正常-退出'。

<详情>}摘要>转载.py</摘要>

```2ZZ
导入 ayncio、json、子进程、时间、socket、uid、os、hashlib、sys
从 pathlib 导入路径
导入 Websockets
. . . . . . .