kenzok8:Clashoo 三处超时与残留资源缺陷已确认,暂用参数规避
kenzok8 确认 Clashoo 的 pause 因 BusyBox timeout 不支持 0.25 秒而空转,apply 的完整执行可能超过 rpcd 默认 30 秒,resources_clear 与 recover 也未清理核心退出后的 dae0/daens/bpf 残留;修复会改回按秒等待、延长或异步执行 apply,并在核心已死时清理残留,临时可使用 sleep 1、rpcd 120 秒及预算 90/60。
作者原文@kenzok8三处都确认了,谢谢你这么细的复现。
- pause 那个是 bug:busybox 的 timeout 不支持 0.25 秒,
timeout 0.25 sleep 1直接报错返回,轮询就空转了;再加上 tick 每 4 次才扣一次预算,90 的预算 1.6 秒就烧完了,核心还没起来就被判失败。修法是 pause 改回sleep 1、预算按秒扣,或者先探测 timeout 支不支持小数秒。
- apply 预算也确实不够:一次完整 apply 要 25–31 秒,rpcd 默认 30 秒就掐断,超了就
No response。这个要改预算或者让 apply 走 job 异步。
- 残留资源那个:
resources_clear现在只检查不清理,recover 也不清,确实是个缺口。修的时候会在核心已死的前提下强制清掉 dae0/daens/bpf 残留(bridger 的bridger_data不动),recover 也会真清理。你那个临时规避(sleep 1 + rpcd 120 + 预算 90/60)可以先用着,等我发版。