eval: `wait(handles, { timeout })` 上述操作持续约 35 分钟后会立即终止细胞,并使代理孤立
作者: victorzhuk创建于 2026年9月17日更新于 2026年9月17日
omp v18.2.4 (bun 全球安装), Linux.
会发生什么
一个 " eval " (js)细胞,该细胞产生毒剂,并用一个大于 " 超时 " 的 " 超时 " 来等待。 2,147,483毫秒在~50毫秒内返回 " 命令中止 " 。 产入的毒剂不断运行 所以 单元格的工作既不被取消,也不被收集; 手柄在 VM 和 后一个 牢房仍然可以 " 等待 " 他们,这就是失败如何幸存但沉默。
节点打印可见的原因 :
(节点:282602) 超时出行 重叠警告:240000000不适应于32位签名整数.
暂停时间定为1个。24000000'是24000000'乘以1 000的`超时 ' ,因此,将数值缩放为:
在达到“设定时间”之前,第二次为毫秒。 过去2^31-1米的计时器起火
立即(1ms),等待被报告给呼叫者作为中止.
□再现.
omp - p -- no- session -- cwd / var/tmp/ repro 运行一个Eval细胞,js,超时2500:
Const N = ["r1""r2""r3""r4""r5""r6"].
Const HS = N.map (n QX代理(`Reply with the single word ${n}). 没有工具。 ',{代理:"zrescher",标签:n})
Const R = 等待(HS, { 超时: 24000, 升起错误: 假 })
返回 R. 长度'结果: " 命令中止 " ,没有细胞输出,6名特工仍在运行。
具有`超时:1800000'(30分钟)的同一单元格正常完成并返回6个结果。 边界为2,147,483毫秒——是额外×1000所活下来的最大值.
□ 影响
2026-09-17日实测出:有2个调度室(6个和4个特工)以这种方式流产. 每一方都让其代理人运行,会议花费了三轮时间发现`hub op:wait' 在通过幸存的手柄恢复结果之前,不涵盖登记册同行。 产出中没有任何内容说超时是问题——可见的失败是流产而无 理由,它读作是绳索或模型故障。
□ 建议修正
锁定或拒绝超过计时器上限的“等待”超时,而不是将其缩放为瞬间 并区分信息中的"超时"和"被遗忘". 单行验证错误 ( " 超时必须是 " 2147483毫秒 " )会使这一点变得不言自明。
工作间
在30分钟或不到30分钟时保持 " 等待 " 超时,并在单独的牢房收集长扇断时 是他们产下的.
内容来源: can1357/oh-my-pi