百思不得其解, 为什么 113 这行代码会 panic

2024-05-09 08:22:47 +08:00
 Nazz

仅仅是把常量赋值给变量并转化下数据类型, 怎么就空指针 了呢 :(

https://github.com/lxzan/gws/issues/89

求各位提供点思路

3650 次点击
所在节点    Go 编程语言
9 条回复
lance6716
2024-05-09 08:26:38 +08:00
栈是 gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})
说明 receiver 是 nil
Nazz
2024-05-09 08:36:51 +08:00
@lance6716 但是 113 行没有访问 receiver 啊
lance6716
2024-05-09 08:38:42 +08:00
@Nazz 那应该是代码版本与栈不匹配
lance6716
2024-05-09 08:40:37 +08:00
如果是 issue 一楼说的 wc.conn.WriteClose(1000, []byte{}) 的话,猜测是 wc.conn 是 nil
kingofzihua
2024-05-09 08:43:26 +08:00
github.com/lxzan/gws.(*Conn).emitError(0x0, {0x1057966e0, 0xc0282fc558})

第一个参数是 0x0 , 是不是 Conn 已经变为 nil 了?
Nazz
2024-05-09 08:50:54 +08:00
@lance6716 没碰到过错误的堆栈信息😂
版本号是 v1.8.3
Nazz
2024-05-09 08:55:48 +08:00
@kingofzihua 有可能,我尝试去复现下
0Z03ry75kWg9m0XS
2024-05-09 09:09:11 +08:00
看着是 `conn` 没初始化
wzy44944
2024-05-09 09:36:22 +08:00
是调用方代码的问题吧,得看下 WebsocketClient 这个代码怎么实现的,应该是这个 close 之前就把 conn 置 nil 了导致的,估计逻辑上有些同步异步的问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1038943

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX