Skip to content

[Bug]: sqlite3 数据库外键错误 #23

@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

简单的复现代码/链接(可选)

日志记录(可选)

补充说明(可选)

虽然大概不会维护了,但姑且还是提个 issue 方便其他遇到这个问题的人看到,另外原版 cqhttp 那边也没有人提相同问题的 issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions