[错误]: 在库扫描期间遇到未处理的 SQLITE_BUSY 导致整个服务器崩溃
作者: ktwingstrom创建于 2026年7月5日更新于 2026年9月16日
发生了什么事? audiobookshelf 发生崩溃(整个 Node 进程退出),在与 ffmpeg 任务同时运行的预定库扫描期间。扫描程序尝试在持有写锁的其他地方进行 UPDATE libraryItems,SQLite 返回 SQLITE_BUSY,并且未处理此拒绝 - 这导致整个服务器崩溃,而不仅仅是正在运行的扫描程序。这已经发生了第二次,在过去几天内。两次都没有在 Docker 级别设置重启策略(这是我的错误,现在已修复),因此它在几个小时内完全离线,直到我注意到并手动重启它。这看起来与 #4572(未处理的 SQLITE_BUSY 拒绝 = 致命崩溃)有相同的底层模式,只是由库扫描程序 + ffmpeg 封面/元数据写入竞争引发,而不是预定备份任务。由于触发器/堆栈不同,单独提交,但标记相关性,以便修复可共享(例如,仅针对备份的共享 SQLite 重试/队列层,而不仅仅是备份)。
内容来源: advplyr/audiobookshelf