$ git bisect start
status: waiting for both good and bad commits
$ git bisect bad
status: waiting for good commit(s), bad commit known
$ git bisect good c8318058bb4a15e9d6751a71e78bdd3b68c57b32
Bisecting: 7 revisions left to test after this (roughly 3 steps)
[2239b5993339bedafc3ac5571d7d573e8814a0bb] Remove duplicated rules
$ git bisect good
Bisecting: 3 revisions left to test after this (roughly 2 steps)
[5c6e24ba112cf473dae29d1e693b0c013e8399f8] badtls: Support uTLS and TLS ECH for read waiter
$ git bisect good
Bisecting: 1 revision left to test after this (roughly 1 step)
[7b68cbbb72a5a8c20c9e3eb8f8516b642a64cc17] Improve domain suffix match behavior
$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[5d1738b2807226f32e71bf59e3bbdb06293668e5] Fix timezone for Android and iOS
$ git bisect good
5894b40d61acdaad745cd38ffafff7a2fe2e481b is the first bad commit
commit 5894b40d61acdaad745cd38ffafff7a2fe2e481b
Author: 世界 <i@sekai.icu>
Date: Sat Feb 3 17:45:27 2024 +0800
Add address limit support for DNS rules
adapter/inbound.go | 12 +--
adapter/router.go | 3 +
go.mod | 2 +-
go.sum | 4 +-
option/rule_dns.go | 3 +
route/router_dns.go | 182 +++++++++++++++++++++++++++++++-------------
route/router_rule.go | 4 +
route/rule_abstract.go | 15 +++-
route/rule_dns.go | 86 +++++++++++++++++++++
route/rule_item_rule_set.go | 9 ++-
route/rule_set_local.go | 1 +
route/rule_set_remote.go | 1 +
12 files changed, 257 insertions(+), 65 deletions(-)
操作系统
Linux
系统版本
Arch Linux 6.6.14-1-lts
安装类型
sing-box 原始命令行程序
如果您使用图形客户端程序,请提供该程序版本。
No response
版本
描述
将 sing-box-git 由
r1232.cc05a5cb-1
升级至r1243.5894b40d-1
后( https://github.com/SagerNet/sing-box/compare/cc05a5cb...5894b40d ),sing-box 出现了严重的内存泄漏问题,几十秒即可消耗完所有内存+swap,进而导致 OOM kill。通过 git bisect 确定该问题由 5894b40d61acdaad745cd38ffafff7a2fe2e481b 引入。
bisect log:
重现方式
使用 5894b40d61acdaad745cd38ffafff7a2fe2e481b 版本,并使用如下配置文件可稳定复现。
(配置文件移除了敏感信息)
ss.json
sing-box.log.gz
日志
日志由于体积过大,省略了后面部分众多重复内容,完整日志见上文。 对代理域名等敏感信息进行了一定的替换处理。
完整性要求