请确保您已阅读以上注意事项,并勾选下方的确认框。
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
简单的复现代码/链接(可选)
日志记录(可选)
补充说明(可选)
虽然大概不会维护了,但姑且还是提个 issue 方便其他遇到这个问题的人看到,另外原版 cqhttp 那边也没有人提相同问题的 issue
请确保您已阅读以上注意事项,并勾选下方的确认框。
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简单的复现代码/链接(可选)
日志记录(可选)
补充说明(可选)
虽然大概不会维护了,但姑且还是提个 issue 方便其他遇到这个问题的人看到,另外原版 cqhttp 那边也没有人提相同问题的 issue