Open-Box v0.1.223 发布

已发布 v0.1.223,以下为官方变更日志。

官方变更日志

修复:内核随机崩溃(开着 FakeIP 的机器尤其明显)

内核升到 sing-box 1.14.1-openbox-tcp8,修掉一处会让内核直接崩掉、被 procd 反复拉起(crash loop)的问题。有用户一天崩 7 次(#203),报错是下面这两种:

问题出在依赖库 sing 的 UDP 缓存包处理上:同一个缓存包有两条取走的路,一条用原子标志、另一条只是裸检查,并发时会在已经释放掉的对象上做引用计数,于是空指针崩溃;偶尔还会读到已经回收的内存。走 FakeIP 的 UDP 流量最容易撞上(崩溃栈里就是这条路径),但不开 FakeIP 也有机会触发。

上游至今没修,这个补丁是 Open-Box 自己打的,已经用 Go 竞态检测器验证过(打补丁前稳定报数据竞争,补丁后干净),并加了三条回归用例进内核构建。

这一版会连内核一起下载(约 16 MB),不像前几版只下面板部分。 升级过程中内核重启一次。

其它

  • 无功能改动;v0.1.222 加的「恢复出厂设置」「恢复默认分流」「设置同步改增量」都在。

升级方式和平时一样:面板里点升级即可。