Cloudreve icon indicating copy to clipboard operation
Cloudreve copied to clipboard

运行期间无法上传文件报数据库锁死

Open wanduwang opened this issue 3 months ago • 6 comments

系统是乌班图24.04 LTS,前天刚搭好的,基本上一天就几个用户会下载文件,但是我今天上传文件的时候突然报错 并且在之后所有上传均报错,重启后却一切正常

Image

[Info] 2025-09-22 09:15:02 [/home/vsts/work/1/s/pkg/crontab/crontab.go:64] Executing Cron task "entity_collect" with Cid "81d83359-6fe0-4d4a-914a-8b571b9c25e6" [Error] 2025-09-22 09:15:02 [/home/vsts/work/1/s/pkg/queue/queue.go:357] [Cid: 81d83359-6fe0-4d4a-914a-8b571b9c25e6 Cron: entity_collect] failed to transit Task status from to queued: failed to persist Task into DB: failed to create task: database is locked (5) (SQLITE_BUSY) [Info] 2025-09-22 09:15:02 [/home/vsts/work/1/s/pkg/queue/queue.go:360] [Cid: 81d83359-6fe0-4d4a-914a-8b571b9c25e6 Cron: entity_collect] Task 0 status changed from "" to "queued". [Error] 2025-09-22 09:15:02 [/home/vsts/work/1/s/pkg/filemanager/manager/recycle.go:55] [Cid: 81d83359-6fe0-4d4a-914a-8b571b9c25e6 Cron: entity_collect] Failed to queue entity recycle routine task: failed to transit Task status from to queued: failed to persist Task into DB: failed to create task: database is locked (5) (SQLITE_BUSY)

因为我日志记录的不够长所以只找到这一段报错,请问如何把日志打印到文件中以便查阅?我简单翻了文档,只有一个debug模式

wanduwang avatar Sep 22 '25 01:09 wanduwang

需要看下从上次启动开始,database is locked 在日志中首次出现的位置

HFO4 avatar Sep 22 '25 01:09 HFO4

好的,我下次报错后尽量记录完整日志,需要开debug模式吗?还有怎么把日志导出到文档中?我简单扫了扫没看到log文件夹,之前一直是在win上用,第一次换Linux实在不习惯,如果问了小白问题请多见谅

需要看下从上次启动开始,database is locked 在日志中首次出现的位置

wanduwang avatar Sep 23 '25 04:09 wanduwang

是的,需要开 Debug。命令行直接 ./cloudreve 运行的话会直接输出到命令行终端。

YUDONGLING avatar Sep 23 '25 05:09 YUDONGLING

不建议使用sqlite这种文件数据库,你的并发量要么比较高,要么倒霉触发了sqlite死锁了。 我也碰到了一模一样的数据库死锁问题,换了mysql之后一切正常。 只不过迁移起来可能有点麻烦。

qsshs avatar Sep 25 '25 05:09 qsshs

昨天又遇到数据库锁死了,但是我用了MC面板启动应用,真正出错的部分MC面板提示过长,我没看到报错,能不能加个debug模式日志打印到文件的功能啊(

其次是我的并发量并不大,就是每天上传一个文件,大概几兆大小

还有这个问题是新版本才有的,原先3.8之前的版本我大概在winserver上用了两三年,没有报过错,并且老版本的文件量和同时上传的并发数应该比新版本多得多(当然老版本的宿主机性能也强很多),也是sqlite数据库,我改天迁移数据库吧

wanduwang avatar Sep 27 '25 02:09 wanduwang

更新下,如果后续遇到此问题,按照下面步骤提取日志有助于帮助定位:

(仅限于 SQLite)

  1. 重启 Cloudreve 后,应该可以临时解决问题。
  2. 开启 Cloudreve 的debug模式:https://docs.cloudreve.org/overview/configure#debug-mode
  3. 将 Cloudreve 的日志持久化存储。参考(https://www.perplexity.ai/search/fen-bie-gei-chu-supervisor-sys-s0klJVgfTPW8.RzWsdyWEg#0)
  4. 等待下次问题出现;
  5. 将从上次 Cloudreve 启动开始到出现问题时所有的日志文件贴在此 issue 中,或者发送到 [email protected]

HFO4 avatar Oct 24 '25 07:10 HFO4

更新下,如果后续遇到此问题,按照下面步骤提取日志有助于帮助定位:

(仅限于 SQLite)

  1. 重启 Cloudreve 后,应该可以临时解决问题。
  2. 开启 Cloudreve 的debug模式:https://docs.cloudreve.org/overview/configure#debug-mode
  3. 将 Cloudreve 的日志持久化存储。参考(https://www.perplexity.ai/search/fen-bie-gei-chu-supervisor-sys-s0klJVgfTPW8.RzWsdyWEg#0)
  4. 等待下次问题出现;
  5. 将从上次 Cloudreve 启动开始到出现问题时所有的日志文件贴在此 issue 中,或者发送到 [email protected]

已经发到了邮箱里边,辛苦

wanduwang avatar Dec 14 '25 14:12 wanduwang