Skip to content

[Bug]: sqlite3 外键错误 #2552

@ConsetHP

Description

@ConsetHP

请确保您已阅读以上注意事项,并勾选下方的确认框。

  • 我已经仔细阅读上述教程和 "提问前需知"
  • 我已经使用 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_cachefalse,调用接口后cqhttp立即报错 invalid memory address or nil pointer dereference

经过排查发现 coolq/api.go中的一行 直接导致了问题,从而进一步发现 这一行这一行 导致频道消息无法正常写入数据库

此时检查cqhttp文件夹中的 data/sqlite3/msg.db 会发现 guildmsg 表中的 AttributeID0,说明 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 方便其他遇到这个问题的人看到

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug?The issue author think this is a bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions