Mrs4s / go-cqhttp

cqhttp的golang实现,轻量、原生跨平台.
GNU Affero General Public License v3.0
10.38k stars 1.63k forks source link

[Bug]: panic on decoder trpc.group_pro.synclogic.SyncLogic.PushFirstView #2069

Closed StarHeartHunt closed 1 year ago

StarHeartHunt commented 1 year ago

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

go-cqhttp 版本

v1.0.0 & 7b2d1fd

运行环境

Linux

运行架构

AMD64

连接方式

WebSocket (反向)

使用协议

1 | Android Phone

重现步骤

  1. 出现 #1995 的错误后,手动从Android QQ登录机器人账号,删除 go-cqhttp 登录设备信息
  2. 走设备初始登录滑块验证流程

期望的结果是什么?

正常登录/解析包

实际的结果是什么?

解析包出错

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

No response

日志记录(可选)

[2023-04-08 09:33:05] [INFO]: 当前版本:v1.0.0 
[2023-04-08 09:33:05] [INFO]: 将使用 device.json 内的设备信息运行Bot. 
[2023-04-08 09:33:06] [INFO]: 开始尝试登录并同步消息... 
[2023-04-08 09:33:06] [INFO]: 使用协议: Android Phone 8.9.35.10440 
[2023-04-08 09:33:06] [INFO]: 从文件 data/versions/1.json 读取协议版本 Android Phone 8.9.35.10440. 
[2023-04-08 09:33:11] [INFO]: Protocol -> connect to server: 43.135.106.161:8080 
[2023-04-08 09:33:12] [WARNING]: Protocol -> device lock is disable. http api may fail. 
[2023-04-08 09:33:12] [ERROR]: Protocol -> parse incoming packet error: packet dropped 
[2023-04-08 09:34:26] [INFO]: 当前版本:v1.0.0 
[2023-04-08 09:34:26] [INFO]: 将使用 device.json 内的设备信息运行Bot. 
[2023-04-08 09:34:26] [INFO]: 开始尝试登录并同步消息... 
[2023-04-08 09:34:26] [INFO]: 使用协议: Android Phone 8.9.35.10440 
[2023-04-08 09:34:26] [INFO]: 从文件 data/versions/1.json 读取协议版本 Android Phone 8.9.35.10440. 
[2023-04-08 09:34:27] [INFO]: Protocol -> connect to server: 43.135.106.161:8080 
[2023-04-08 09:34:27] [WARNING]: Protocol -> device lock is disable. http api may fail. 
[2023-04-08 09:34:28] [ERROR]: Protocol -> parse incoming packet error: return code unsuccessful: 1708682909 
[2023-04-08 09:34:30] [ERROR]: Protocol -> parse incoming packet error: return code unsuccessful: -1349525547 
[2023-04-08 09:34:46] [ERROR]: Protocol -> panic on decoder trpc.group_pro.synclogic.SyncLogic.PushFirstView : runtime error: invalid memory address or nil pointer dereference
goroutine 93 [running]:
runtime/debug.Stack()
    runtime/debug/stack.go:24 +0x65
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1.1()
    github.com/Mrs4s/MiraiGo@v0.0.0-20230401072048-f8d9841755b5/client/network.go:393 +0x65
panic({0xa49c00, 0xf97010})
    runtime/panic.go:884 +0x213
github.com/RomiChan/syncx.(*Map[...]).Store(0xc06460, 0xa856a0, 0xc0001bf400)
    github.com/RomiChan/syncx@v0.0.0-20221202055724-5f842c53020e/map.go:164 +0x1cc
github.com/RomiChan/protobuf/proto.(*walker).structInfo(0xc0000b7ae8, {0xc03ee8, 0xa856a0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:274 +0x1239
github.com/RomiChan/protobuf/proto.(*walker).structCodec(0xc0000b7ae8, {0xc03ee8, 0x9fc440})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:87 +0xfe
github.com/RomiChan/protobuf/proto.(*walker).pointer(0xc0000b7ae8, {0xc03ee8, 0x9fc440}, 0xc03ee8?)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:287 +0x193
github.com/RomiChan/protobuf/proto.(*walker).codec(0xc0000b7ae8, {0xc03ee8, 0x9fc440}, 0xc0000b73c6)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:71 +0x15c
github.com/RomiChan/protobuf/proto.(*walker).structInfo(0xc0000b7ae8, {0xc03ee8, 0xaacfc0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:223 +0xbbc
github.com/RomiChan/protobuf/proto.(*walker).structCodec(0xc0000b7ae8, {0xc03ee8, 0x9fc3c0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:87 +0xfe
github.com/RomiChan/protobuf/proto.(*walker).pointer(0xc0000b7ae8, {0xc03ee8, 0x9fc3c0}, 0xc0000b7c28?)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:287 +0x193
github.com/RomiChan/protobuf/proto.(*walker).required(0xc0000b7ae8, {0xc03ee8, 0x9fc3c0}, 0xc0000b769e)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:336 +0x145
github.com/RomiChan/protobuf/proto.(*walker).codec(0xc0000b7ae8, {0xc03ee8, 0x9fc3c0}, 0xc0000b769e)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:34 +0x1fc
github.com/RomiChan/protobuf/proto.(*walker).structInfo(0xc0000b7ae8, {0xc03ee8, 0xab71e0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:231 +0xcef
github.com/RomiChan/protobuf/proto.(*walker).structCodec(0xc0000b7ae8, {0xc03ee8, 0x9fc380})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:87 +0xfe
github.com/RomiChan/protobuf/proto.(*walker).pointer(0xc0000b7ae8, {0xc03ee8, 0x9fc380}, 0xc0000b7c28?)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:287 +0x193
github.com/RomiChan/protobuf/proto.(*walker).required(0xc0000b7ae8, {0xc03ee8, 0x9fc380}, 0xc0000b7976)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:336 +0x145
github.com/RomiChan/protobuf/proto.(*walker).codec(0xc0000b7ae8, {0xc03ee8, 0x9fc380}, 0xc0000b7976)
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:34 +0x1fc
github.com/RomiChan/protobuf/proto.(*walker).structInfo(0xc0000b7ae8, {0xc03ee8, 0xab75e0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/walker.go:231 +0xcef
github.com/RomiChan/protobuf/proto.cachedStructInfoOf({0xc03ee8?, 0xab75e0})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/proto.go:122 +0x145
github.com/RomiChan/protobuf/proto.Unmarshal({0xc0003e42c0, 0x15f, 0x15f}, {0x9fcd00, 0xc000310540})
    github.com/RomiChan/protobuf@v0.1.1-0.20230204044148-2ed269a2e54d/proto/proto.go:51 +0x199
github.com/Mrs4s/MiraiGo/internal/proto.Unmarshal(...)
    github.com/Mrs4s/MiraiGo@v0.0.0-20230401072048-f8d9841755b5/internal/proto/wrapper.go:34
github.com/Mrs4s/MiraiGo/client.decodeGuildPushFirstView(0xc0003b2000, 0xc000239400)
    github.com/Mrs4s/MiraiGo@v0.0.0-20230401072048-f8d9841755b5/client/guild.go:745 +0x73
github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop.func1(0xc000239400)
    github.com/Mrs4s/MiraiGo@v0.0.0-20230401072048-f8d9841755b5/client/network.go:405 +0x182
created by github.com/Mrs4s/MiraiGo/client.(*QQClient).netLoop
    github.com/Mrs4s/MiraiGo@v0.0.0-20230401072048-f8d9841755b5/client/network.go:390 +0x4cd

[2023-04-08 09:34:46] [ERROR]: 出现错误 packet decode error: trpc.group_pro.synclogic.SyncLogic.PushFirstView - runtime error: invalid memory address or nil pointer dereference. 详细信息已转储至文件 dumps/1680917686.dump 请连同日志提交给开发者处理 
[2023-04-08 09:40:02] [INFO]: 当前版本:7b2d1fd 
[2023-04-08 09:40:02] [INFO]: 将使用 device.json 内的设备信息运行Bot. 
[2023-04-08 09:40:03] [INFO]: 开始尝试登录并同步消息... 
[2023-04-08 09:40:03] [INFO]: 使用协议: Android Phone 8.9.35.10440 
[2023-04-08 09:40:03] [INFO]: 从文件 data/versions/1.json 读取协议版本 Android Phone 8.9.35.10440. 
[2023-04-08 09:40:04] [INFO]: Protocol -> connect to server: 43.135.106.161:8080 
[2023-04-08 09:40:04] [WARNING]: Protocol -> device lock is disable. http api may fail. 
[2023-04-08 09:40:04] [ERROR]: Protocol -> parse incoming packet error: packet dropped 

log_and_dump.zip

补充说明(可选)

No response

StarHeartHunt commented 1 year ago

更换 protocol 为3(macos)后解决。

但是频道消息看起来收不到了。

Mrs4s commented 1 year ago

请尝试最新版本