-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
请确保您已阅读以上注意事项,并勾选下方的确认框。
- 我已经仔细阅读上述教程和 "提问前需知"
- 我已经使用 dev分支版本 测试过,问题依旧存在。
- 我已经在 Issue Tracker 中找过我要提出的问题,没有找到相同问题的ISSUE。
- 我已知晓并同意,此处仅用于汇报程序中存在的问题。若这个 Issue 是关于其他非程序本身问题,则我的 Issue 可能会被无条件自动关闭或/并锁定。(这些问题应当在 Discussion 板块提出。)
go-cqhttp 版本
最新dev版
运行环境
Windows (64)
运行架构
AMD64
连接方式
WebSocket (反向)
使用协议
6 | aPad
重现步骤
编译sqlite3模块,在config.yml中关闭leveldb,启用sqlite3,启动cqhttp并登录,在任意QQ频道中发一条消息,然后尝试调用 /get_guild_msg
,参数中的 no_cache
为 false
,调用接口后cqhttp立即报错 invalid memory address or nil pointer dereference
经过排查发现 coolq/api.go中的一行 直接导致了问题,从而进一步发现 这一行 和 这一行 导致频道消息无法正常写入数据库
此时检查cqhttp文件夹中的 data/sqlite3/msg.db
会发现 guildmsg
表中的 AttributeID
为 0
,说明 attribute 没有被正常写入,导致调用api时, 执行到coolq/api.go中的这行 时,报错 invalid memory address or nil pointer dereference
经过测试,将 这一行 和 这一行 中的 Sqlite3MessageAttributeTableName
修改成 Sqlite3GuildMessageAttributeTableName
即可解决问题
期望的结果是什么?
调用 /get_guild_msg
,正常返回内容,而不是报错 invalid memory address or nil pointer dereference
实际的结果是什么?
调用 /get_guild_msg
,报错 invalid memory address or nil pointer dereference
简单的复现代码/链接(可选)
日志记录(可选)
补充说明(可选)
没错,我就是还在用cqhttp的遗老 但姑且还是提个 issue 方便其他遇到这个问题的人看到