Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: 未知的死锁bug,日志数据库无法写入 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked} #1042

Open
4 tasks done
kagangtuya-star opened this issue Sep 12, 2024 · 5 comments
Labels
bug Something isn't working

Comments

@kagangtuya-star
Copy link

kagangtuya-star commented Sep 12, 2024

在提问之前...

  • 我理解 Issue 是用于反馈和解决问题的,而非吐槽评论区,将尽可能提供更多信息帮助问题解决
  • 我填写了简短且清晰明确的标题,以便开发者在翻阅 issue 列表时能快速确定大致问题。而不是“一个建议”、“卡住了”等
  • 我已查看master branch或最新测试版的更新内容,并未提及该 bug 已被修复的情况
  • 已有issue中并没有看见其他人与我反馈相同的问题

问题描述

image

拥有大量日志数据(如上的数据量)的骰子间歇性低频出现日志无法写入的问题,具体表现为

  • 核心反应卡顿,指令需要数分钟才可能响应。
    image
  • 控制台不定时报错error LogDeleteById:{error 26 0 database is locked}
  • 控制台的日志记录有高额时延或丢失现象,即没有记录登录框架传回的信息。
    0ad48ea90593d5e302903ad5c1a6afb7
    6ad27c71e38a75cb797099f8f1a0fd2a

在重启核心后,自行恢复,但不定期复发。

如何复现

无法稳定复现

你期望发生的

修复问题

实际上发生的

修复问题

日志文件

2024-08-14T21:11:55.936+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
2024-08-14T21:22:13.129+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
基本的报错信息都是上面这个

截图

No response

海豹核心版本

1.4.6+20240810

操作系统

win sever2016

帐号类型

QQ

使用协议

No response

附加内容

No response

@kagangtuya-star kagangtuya-star added the bug Something isn't working label Sep 12, 2024
@kagangtuya-star kagangtuya-star changed the title [Bug]: 未知的bug,日志数据库无法写入 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked} [Bug]: 未知的死锁bug,日志数据库无法写入 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked} Sep 12, 2024
@fy0
Copy link
Member

fy0 commented Sep 14, 2024

如果是自编译豹尝试在初始化数据库后执行一条sql:
PRAGMA busy_timeout = 30000;

将等待时间延长至30s试试。几分钟的卡顿表示无法理解,io应该没有这么慢吧,可能后续版本需要对io打点分析。
另外就是数据库那个db的大小是多少?怀疑在固定大小以上的db结合较差的磁盘io性能的组合会导致类似卡顿问题触发

@kagangtuya-star
Copy link
Author

kagangtuya-star commented Sep 15, 2024

更新为了最新版本海豹,又出现类似情景,异常表现为

  • 新建数据库后,结束时无法结束,显示为空,疑似更新导致老数据损毁了。
    b1e5f0b0dc49861a1f5906d072ea909d
  • 一部分群可以响应消息,但另一部分群的消息无法被接收与响应(这是相同时间段的截图)。
    f73a95a98ef0ba6d2d2c692167e6d5b1
    733a2182b67a59932ac572f8d38f622a

@kagangtuya-star
Copy link
Author

kagangtuya-star commented Sep 15, 2024

如果是自编译豹尝试在初始化数据库后执行一条sql: PRAGMA busy_timeout = 30000;

将等待时间延长至30s试试。几分钟的卡顿表示无法理解,io应该没有这么慢吧,可能后续版本需要对io打点分析。 另外就是数据库那个db的大小是多少?怀疑在固定大小以上的db结合较差的磁盘io性能的组合会导致类似卡顿问题触发

image
大约一百多兆,服务器是腾讯云的标准高性能硬盘。
https://github.com/kagangtuya-star/picgo1/releases/download/1/data-logs.zip
三个log数据库文件如上

@kagangtuya-star
Copy link
Author

kagangtuya-star commented Sep 15, 2024

另外有一个群开了一个月的团,日志完全没录入进去,但每次开团指令的回复是正常的。
image

消息条数三千多,实际上只有两千多
image

image

@kagangtuya-star
Copy link
Author

kagangtuya-star commented Sep 15, 2024

2024-09-16T00:06:43.328+0800 INFO storylog/upload_v1.go:35 没有查询到之前上传的URL Log:QQ-Group:784958008.第几次,我也忘了
2024-09-16T00:06:48.829+0800 ERROR storylog/upload_v1.go:66 记录Log上传信息失败: database is locked
2024-09-16T00:30:33.266+0800 ERROR storylog/upload_v1.go:66 记录Log上传信息失败: database is locked
2024-09-16T00:32:58.517+0800 ERROR storylog/upload_v1.go:66 记录Log上传信息失败: database is locked
2024-09-15T22:08:16.099+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
2024-09-15T22:09:38.291+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
2024-09-15T22:45:33.129+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
2024-09-15T22:48:22.859+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}
2024-09-15T23:10:10.280+0800 ERROR dice/ext_log.go:866 LogDeleteById:{error 26 0 database is locked}

15日的报错情况出现于新群开的新日志,应该不是老数据库的问题。

record.zip
出现问题时高频率报错数据库问题,日志文件如上。

https://github.com/kagangtuya-star/picgo1/releases/download/1/bak_240916_004845_r3f_635f6724.zip
备份文件如上,内含数据库。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants