SUCC 的 daemon.log 把磁盘写满了怎么办
这不是普通缓存变多了。公开问题里提到:SUCC 在 Windows 上反复下载 embedding 模型失败,然后不断把同一类错误写进 daemon.log,日志最大涨到 281 GB,磁盘被塞满后程序又崩溃、重启、继续写日志。下面先写给普通用户:怎样先把电脑救回来。
先止血
先停 SUCC,再处理大日志。
不要一上来删除数据库、锁文件或整个软件目录。先让 SUCC 停止继续写日志,再确认是不是 daemon.log 占满了磁盘。
先确认是不是这个问题
如果你看到下面几种情况,基本就符合这次 SUCC 问题:
- Windows 磁盘突然满了,C 盘或安装 SUCC 的盘只剩很少空间。
- SUCC 反复崩溃、自动重启,重启后磁盘空间继续变少。
- 能找到一个很大的
daemon.log,可能几十 GB,甚至几百 GB。 - 日志里反复出现
Failed to load embedding model Xenova/all-MiniLM-L6-v2或fetch failed。 - 你在中国大陆网络环境下使用 SUCC,模型下载容易失败。
普通用户先按这几步做
- 先退出 SUCC。如果有托盘图标,右键退出;如果退出不了,用任务管理器结束 SUCC 相关进程。
- 不要急着删
.db、.sqlite、.wal、.lock这类文件。它们可能是程序数据,不是这次最该先动的目标。 - 找到
daemon.log。如果它特别大,先改名成daemon.log.old,这样 SUCC 下次启动会重新生成一个新的日志文件。 - 如果你需要给 SUCC 作者反馈 bug,先保留日志开头和结尾各几十行,或者截个图。几百 GB 的完整日志通常没有必要上传。
- 确认 SUCC 已经停止后,如果只是想恢复磁盘空间,可以删除那个超大的
daemon.log.old。 - 重新打开 SUCC 后观察几分钟。如果新的
daemon.log又快速变大,先不要继续长期运行,等官方修复或临时关闭会触发模型下载的功能。
用 PowerShell 找大日志
下面命令只查看文件,不会删除东西。打开 PowerShell 后运行它,可以帮你找出最大的 daemon.log 在哪里。
Get-PSDrive -PSProvider FileSystem |
Sort-Object Free |
Select-Object Name,Used,Free
$places = @($env:APPDATA, $env:LOCALAPPDATA, $HOME)
Get-ChildItem $places -Recurse -Filter "daemon.log" -File -ErrorAction SilentlyContinue |
Sort-Object Length -Descending |
Select-Object -First 20 FullName,
@{Name="GB";Expression={[math]::Round($_.Length / 1GB, 2)}},
LastWriteTime
如果找到了几百 GB 的 daemon.log
先确认 SUCC 已经完全退出,再把下面路径换成你实际找到的文件路径:
Rename-Item "C:\把这里换成实际路径\daemon.log" "daemon.log.old"
改名成功后,空间不一定马上变多,因为文件还在。确认你不需要保留完整日志后,再删除旧日志:
Remove-Item "C:\把这里换成实际路径\daemon.log.old"
这些文件先别碰
- 不要直接删除 SUCC 的数据库文件,例如
.db、.sqlite。 - 不要随手删除
.wal、.lock文件,除非 SUCC 官方明确说明可以这样处理。 - 不要把整个 SUCC 数据目录删掉来“清理空间”,里面可能有你的项目索引或设置。
- 不要只扩容磁盘。如果日志继续无限写,过一段时间还会再次写满。
为什么会这样
简单说,是 SUCC 遇到“模型下载失败”后,没有很好地降速和限流。它不断重试,不断写错误日志;日志越来越大,磁盘满了以后,程序自己的数据文件也写不进去,于是崩溃。看门狗又把它拉起来,问题就循环了。
给 SUCC 维护者看的修复点
daemon.log要有大小上限和日志轮转,例如超过 50 MB 后切新文件,只保留最近几份。- 同一个模型下载失败错误,不要每次都完整写入;5 分钟内可以只写一次,后面记录重复次数。
- 模型连续下载失败后要进入冷却时间,例如暂停 5 到 15 分钟,不要立刻无限重试。
- 磁盘空间不足时,SUCC 应该暂停索引和模型下载,只写一条清楚的告警,而不是继续刷日志。
- 日志文件、数据库 WAL、锁文件、临时模型文件,不应该被文件监听器当成普通内容反复索引。
- 看门狗要避免高频重启。遇到磁盘满、网络不可用、模型下载失败这类状态时,应进入等待状态。
来源说明
这页根据公开 GitHub issue 整理。
事实来自 SUCC 的公开问题描述:Windows 11、中国大陆网络、Xenova/all-MiniLM-L6-v2 下载失败、daemon.log 增长到 281 GB、磁盘满后反复重启。上面的处理步骤是 SafeDisk 根据这个场景整理的保守处理建议。
可复制回复
如果你要回复这个 SUCC bug,可以用这段。
这段只保留普通用户和维护者都能读懂的重点。
我这里看起来像 daemon.log 无限增长导致的磁盘写满问题。建议先让用户停止 SUCC,找到超大的 daemon.log,保留开头和结尾少量日志后再删除旧日志释放空间;不要让用户直接删除数据库、WAL 或 lock 文件。
程序侧建议加三类保护:
1. daemon.log 日志轮转和大小上限;
2. 相同 embedding 下载失败错误的去重、限流和冷却时间;
3. 磁盘空间不足时暂停索引和模型下载,避免看门狗高频重启后继续写满磁盘。
人工判断
不确定哪些文件能删?
可以提交请求,把最大的文件列表、daemon.log 路径、磁盘剩余空间发来。我们会把文件分成“可以删”“先别删”“需要确认后再动”。