Open suconghou opened 2 months ago
panic 的消息是 conn execute failed: interface conversion: interface {} is nil, not *myws.Conn
感谢反馈!
这个panic看上去是你们应用层自己判断的,是websocket的session吧?做类型转换前需要判断下session是否为nil,非nil再进行转换,否则未经初始化的ws例如onopen里http参数校验失败没有设置session的被close了就可能这样了
另外,错误数量增多前后你们业务代码是否有这个错误相关的更新? 之前没有这个问题的nbio版本麻烦提供下,之前的版本是没发现这种错误还是错误比较少?
之前线上比较稳定的版本是 v1.3.20 , 运行了半年之久,都没有panic的问题,也没有监控到很多报错。
框架提供的session的写 SetSession,我代码只有一处用到,设置的值必然不为nil , 但是session的读,读取到nil了,这是问题,代码并没有修改,仅更新了依赖库。
一个明显和之前版本有错误的是,我们的程序提供ws和http连接,http接口返回的都是json,但是其他系统在请求http api时,有机率读取的不是json,造成一些json解析中的invalid character 'H' looking for beginning of value
错误。
之前的版本是没有发现错误的
麻烦提供个初始化engine相关的简单例子,我看下设置的相关项,尝试下复现和定位
大致代码如下
type routeInfo struct {
Reg *regexp.Regexp
Handler func(http.ResponseWriter, *http.Request, []string) error
}
type WebsocketServer struct {
routes []routeInfo
*nbhttp.Server
}
func NewWsServer(addr string) *WebsocketServer {
var mux = &http.ServeMux{}
var s = &WebsocketServer{
[]routeInfo{},
nbhttp.NewServer(nbhttp.Config{
Name: "ws",
Network: "tcp",
Addrs: []string{addr},
MaxLoad: 10e4,
ReadBufferSize: 4096,
ReleaseWebsocketPayload: true,
Handler: mux,
}),
}
s.routes = []routeInfo{
// 其他HTTP路由
{regexp.MustCompile(`^/ws/([0-9a-zA-Z]{1,20})/(\d{1,15})$`), s.onWebsocket},
}
mux.HandleFunc("/", s.routeMatch)
return s
}
func (ws *WebsocketServer) routeMatch(w http.ResponseWriter, r *http.Request) {
for _, p := range ws.routes {
if p.Reg.MatchString(r.URL.Path) {
if err := p.Handler(w, r, p.Reg.FindStringSubmatch(r.URL.Path)); err != nil {
util.Log.Print(err)
}
return
}
}
http.NotFound(w, r)
}
func (ws *WebsocketServer) onWebsocket(w http.ResponseWriter, r *http.Request, match []string) error {
uid, err := strconv.ParseUint(match[2], 10, 64)
if err != nil {
return err
}
u := websocket.NewUpgrader()
u.KeepaliveTime = time.Minute * 5
u.CheckOrigin = func(r *http.Request) bool { return true }
u.SetPongHandler(func(c *websocket.Conn, s string) { c.SetReadDeadline(time.Unix(util.Now, 0).Add(u.KeepaliveTime)) })
u.OnMessage(onMessage)
u.OnClose(onClose)
wsConn, err := u.Upgrade(w, r, nil)
if err != nil {
if err == websocket.ErrUpgradeTokenNotFound {
return nil
}
return err
}
var c = &wss.Conn{
// 相关数据
}
wsConn.SetSession(c)
// 业务处理
}
func onMessage(c *websocket.Conn, messageType websocket.MessageType, data []byte) {
connCtx := c.Session().(*wss.Conn)
// 业务处理
}
func onClose(c *websocket.Conn, err error) {
connCtx := c.Session().(*wss.Conn)
connCtx.Close()
// 业务处理
}
好的感谢。根据你描述的现象猜测可能是buffer pool释放乱了导致脏内存,但是不太确定,我先试试复现
刚提交了个,应该可以修复http body解析json的问题: https://github.com/lesismal/nbio/commit/b836026204c5aa46f1c91049f7d76ce7ce72e261
nil session的我继续看
我刚才复现出来一种通用情况,例如:client发送ws upgrade后不管是否server端回复ws握手成功,client都直接conn close,然后当server upgrade过程中这里commenResponse的时候,就写失败了: https://github.com/lesismal/nbio/blob/master/nbhttp/websocket/upgrader.go#470
然后导致onClose了,因为前面我已經设置了nbio.Conn.SetSession(wsConn),所以回调的时候能拿到这个ParserCloser的wsConn,就回调了ws的OnClose: https://github.com/lesismal/nbio/blob/master/nbhttp/engine.go#L1077
这个issue里的例子,如果upgrade失败也没有日志,所以可能没有发现这个问题
我看下把这块把 nbio.Conn.SetSession(wsConn) 挪到 commonResponse 成功后、或者如果失败就清理掉这个session,然后upgrade失败的就不回调OnClose了
但不确定这是否是你们更新nbio版本后遇到的频繁现象的原因
upgrade失败,只有err == websocket.ErrUpgradeTokenNotFound 的情况没有日志,否则是能看到日志的,是不是 走了 err == websocket.ErrUpgradeTokenNotFound , 没有调用SetSession,后续走onclose,就会读到nil panic; 但是之前并没有问题,那么新版 是业务必须判断是否nil了吗,还是nbio要优化,处理这种情况,无需用户判断。
更具日志时间判断,确实有 同一秒钟先后出现, use of closed network connection
和 panic
错误, 大致推断出就是upgrade失败,后续就会panic
刚提交了下,Upgrade如果失败会清理掉nbio.Conn的wsConn session,我本地测了下修复了上面说的那个通用的session nil的情况: https://github.com/lesismal/nbio/commit/30599841daffd8c81061a0cfc09fc8eb5aa9c154
如果Upgrade过程中失败,就不会回调websocket的OnClose了
暂时不确定这个是不是你提的这个问题的原因,我这两天再继续review下有没有其他可能,如果暂时发现不了其他的就先发个版本
还是nbio要优化,处理这种情况,无需用户判断。
对,nbio自己应该优化,失败了就不应该再回调
非常感谢!发新版以后我会线上部署测试,再来反馈结果。
只有err == websocket.ErrUpgradeTokenNotFound 的情况没有日志
上面例子里的是Upgrade err后不管是不是 websocket.ErrUpgradeTokenNotFound 都 return 了、没有日志,所以应该是只要Upgrade失败就会有这个问题。 如果你们生产上代码 只有err == websocket.ErrUpgradeTokenNotFound 的情况没有日志、下面那个return err有日志,那可能就是ws握手的header不正确导致的了
非常感谢!发新版以后我会线上部署测试,再来反馈结果。
不用客气,我应该非常感谢帮我发现和反馈这种比较难复现的临界bug才对
onWebsocket 函数只要有return err!=nil 就会有日志的,看了日志这个函数只有use of closed network connection
的错误
onWebsocket 函数只要有return err!=nil 就会有日志的,看了日志这个函数只有
use of closed network connection
的错误
"use of closed network connection" 那估计就是我上面说的问题了 我现在先发个版本
发了 https://github.com/lesismal/nbio/releases/tag/v1.5.8
可以更新试试,我也继续看有没有其他可能的问题
真迅速!一会我试试
真迅速!一会我试试
先更一个服务节点看看效果再全更
已更新运行一天了,session nil 的问题没有了,但是json解析中的invalid character 'H' looking for beginning of value
的错误还有
这个错误我猜测是在解析JSON时,第一个字符是H,很可能收到的数据是 HTTP/1.1 200 OK
之类的响应行,不知道怎么弄到body里了
我需要说明一下以免混淆,是另一个节点(也是基于nbio)定时通过net/http
调用本nbio(ws/http)的接口,根据接口json做数据统计时的报错,bug(如果是nbio的问题的话)可能是在nbio的响应逻辑里
我继续看下json这个
我需要说明一下以免混淆,是另一个节点(也是基于nbio)定时通过
net/http
调用本nbio(ws/http)的接口,根据接口json做数据统计时的报错,bug(如果是nbio的问题的话)可能是在nbio的响应逻辑里
另一个节点通过标准库http client请求nbio server对吗?这个nbio server是只内网访问、还是也对公网开放的? 是nbio接收请求的时候解析json失败, 还是标准库http client请求收到响应解析json失败?
另一个节点通过标准库http client请求nbio server对吗?
是的
这个nbio server是只内网访问、还是也对公网开放的?
对公网开放,即提供ws,也提供http, ws请求占多数
是nbio接收请求的时候解析json失败, 还是标准库http client请求收到响应解析json失败?
是标准库http client请求收到响应解析json失败
另一个节点通过标准库http client请求nbio server对吗?
是的
这个nbio server是只内网访问、还是也对公网开放的?
对公网开放,即提供ws,也提供http, ws请求占多数
是nbio接收请求的时候解析json失败, 还是标准库http client请求收到响应解析json失败?
是标准库http client请求收到响应解析json失败
http,Client请求得到的状态码是200不,可以在报错的时候打印出包体不,可以只打一部分包体比如前几十个字节,免得打印全部包体可能过大
昨夜修改记录了日志,确实如我推想的那般,HTTP状态被解析到body里了,并且json数据的开头部分也不完整。状态码均为200,日志是由标准库 http.client请求,io.ReadAll读取,日志使用[[
和]]
来包裹一个响应body
2024-05-16T03:15:41.604339228Z [[HTTP/1.1 200 OK
2024-05-16T03:15:41.604366598Z Content-Length: 4389
2024-05-16T03:15:41.604370782Z Date: Thu, 16 May 2024 03:15:41 GMT
2024-05-16T03:15:41.604374727Z Content-Type: application/json; charset=utf-8
2024-05-16T03:15:41.604379038Z
2024-05-16T05:07:20.484448401Z weblive":1},"events":{"slive-activity:102951":1,"slive-activity:103168":1,"slive-activity:72318":1,"userId-11342164":1,"userId-13783536":1,"userId-15699313":1,"userId-16663074":1,"userId-18530732":1,"userId-19231667":3,"userId-24252961":1,"userId-2483962":1,"userId-26323834":1,"userId-31619516":1,"userId-32259761":1,"userId-33285536":1,"userId-33302546":2,"userId-35217984":1,"userId-35224582":1,"userId-35441448":1,"userId-4995677":1,"userId-5202492":1,"userId-5824750":1,"userId-666665":1,"userId-7202432":1,"userId-9319621":1,"v1-activity:1117292":1,"v1-activity:2275202":1,"v1-activity:2287491":1,"v1-activity:2342349":1,"v1-activity:2364906":1,"v1-activity:2393764":2,"v1-activity:2578077":1,"v1-activity:2679949":1,"v1-activity:2878734":1,"v1-activity:3061392":1,"v1-activity:3099677":1,"v1-activity:3195520":1,"v1-activity:3252267":1,"v1-activity:3271363":1,"v1-activity:3298029":1,"v1-activity:3317617":2,"v1-activity:3329309":1,"v1-activity:3342954":1,"v1-activity:3369116":1,"v1-activity:3411890":1,"v1-activity:3419975":1,"v1-activity:3429295":1,"v1-activity:3492149":12,"v1-activity:3503576":12,"v1-activity:3530510":1,"v1-activity:3558980":1,"v1-activity:3659953":1,"v1-activity:3681285":2,"v1-activity:3681312":1,"v1-activity:3686267":1,"v1-activity:3714497":1,"v1-activity:3720971":1,"v1-activity:3724088":1,"v1-activity:3733152":1,"v1-activity:3749":1,"v1-activity:3758934":1,"v1-activity:3758951":1,"v1-activity:3785877":99,"v1-activity:3787290":1,"v1-activity:3791238":1,"v1-activity:3792377":1,"v1-activity:3798881":1,"v1-activity:3804237":1,"v1-activity:3821090":3,"v1-activity:3823124":1,"v1-activity:3826387":1,"v1-activity:3826437":1,"v1-activity:3827042":9,"v1-activity:3828193":36,"v1-activity:3828829":1,"v1-activity:3829496":2,"v1-activity:3832822":2,"v1-activity:3839048":1,"v1-activity:3843445":3,"v1-activity:3845572":1,"v1-activity:3848172":1,"v1-activity:3850045":1,"v1-activity:3855936":1,"v1-activity:3856076":3,"v1-activity:3856909":1,"v1-activity:3856920":2,"v1-activity:3857043":1,"v1-activity:3857324":1,"v1-activity:3858432":2,"v1-activity:3860443":1,"v1-activity:3861213":2,"v1-activity:3861313":1,"v1-activity:3862453":1,"v1-activity:3862735":1,"v1-activity:3863533":1,"v1-activity:3863765":1,"v1-activity:3863968":1,"v1-activity:3864195":1,"v1-activity:3864325":1,"v1-activity:3865327":9,"v1-activity:3865707":1,"v1-activity:3865745":1,"v1-activity:3866317":1,"v1-activity:3866622":5,"v1-activity:3866901":1,"v1-activity:3867937":1,"v1-activity:3867947":3,"v1-activity:3868894":3,"v1-activity:3869964":3,"v1-activity:3869983":1,"v1-activity:3870348":2,"v1-activity:3870453":1,"v1-activity:3871178":1,"v1-activity:3871354":1,"v1-activity:3872113":1,"v1-activity:3872364":46,"v1-activity:3872690":1,"v1-activity:3872731":1,"v1-activity:3873211":5,"v1-activity:3873874":1,"v1-activity:3873902":1,"v1-activity:3874001":1,"v1-activity:3874396":1,"v1-activity:3876458":1,"v1-activity:3876478":2,"v1-activity:3876531":1,"v1-activity:3876897":1,"v1-activity:3877314":1,"v1-activity:3877842":1,"v1-activity:3877891":1,"v1-activity:3877961":2,"v1-activity:3878331":1,"v1-activity:3878456":1,"v1-activity:3878697":1,"v1-activity:3879047":1,"v1-activity:3879511":1,"v1-activity:3879615":1,"v1-activity:3879956":2,"v1-activity:3880248":1,"v1-activity:3880259":50,"v1-activity:3880366":2,"v1-activity:3880513":1,"v1-activity:3880781":1,"v1-activity:3881620":3,"v1-activity:3881681":2,"v1-activity:3881716":2,"v1-activity:3881849":1,"v1-activity:3882215":1,"v1-activity:3882250":1,"v1-activity:3882343":1,"v1-activity:3882475":1,"v1-activity:3882746":1,"v1-activity:3882884":1,"v1-activity:3883203":1,"v1-activity:3883317":1,"v1-activity:3883388":1,"v1-activity:3883443":1,"v1-activity:3883843":1,"v1-activity:3883957":7,"v1-activity:3884741":1,"v1-activity:3885399":5,"v1-activity:3885943":1,"v1-activity:3886278":1,"v1-activity:3886398":1,"v1-activity:3886416":5,"v1-activity:3886436":1,"v1-activity:3887161":1,"v1-activity:3887247":1,"v1-activity:3887346":2,"v1-activity:3887379":1,"v1-activity:3887430":1,"v1-activity:3887441":1,"v1-activity:3887552":2,"v1-activity:3887738":1,"v1-activity:4043":1,"v1-activity:5517":1,"v1-activity:620769":5,"v1-activity:6275":1,"v1-activity:6304":1,"v1-activity:709109":1,"v1-activity:744494":1}}]][[HTTP/1.1 200 OK
2024-05-16T05:07:20.484527540Z Content-Length: 3629
2024-05-16T05:07:20.484532570Z Date: Thu, 16 May 2024 05:07:20 GMT
2024-05-16T05:07:20.484535905Z Content-Type: application/json; charset=utf-8
2024-05-16T05:07:20.484539219Z
2024-05-16T05:53:24.126491200Z vents":{"slive-activity:102951":1,"slive-activity:103168":1,"slive-activity:72318":1,"slive-activity:99792":1,"userId-13783536":1,"userId-18530732":1,"userId-19231667":3,"userId-24252961":2,"userId-32259761":1,"userId-33285536":1,"userId-35217984":1,"userId-5202492":1,"userId-5818822":1,"userId-5824750":1,"userId-7202432":1,"userId-9319621":1,"v1-activity:2275202":1,"v1-activity:2287491":1,"v1-activity:2364906":1,"v1-activity:2381725":1,"v1-activity:2393764":1,"v1-activity:2578077":1,"v1-activity:2679949":1,"v1-activity:2809813":1,"v1-activity:2826215":2,"v1-activity:2945284":1,"v1-activity:3023583":1,"v1-activity:3061392":1,"v1-activity:3099677":1,"v1-activity:3157930":1,"v1-activity:3217718":1,"v1-activity:3252267":1,"v1-activity:3298029":1,"v1-activity:3317617":3,"v1-activity:3369116":1,"v1-activity:3492149":4,"v1-activity:3503576":6,"v1-activity:3515874":1,"v1-activity:3528711":1,"v1-activity:3558980":1,"v1-activity:3681285":2,"v1-activity:3720971":1,"v1-activity:3749":1,"v1-activity:3785877":3,"v1-activity:3787290":1,"v1-activity:3792377":1,"v1-activity:3805257":1,"v1-activity:3821090":2,"v1-activity:3822567":1,"v1-activity:3823124":1,"v1-activity:3823727":1,"v1-activity:3826387":1,"v1-activity:3826437":1,"v1-activity:3827042":3,"v1-activity:3828193":7,"v1-activity:3828829":1,"v1-activity:3829496":3,"v1-activity:3832822":1,"v1-activity:3838638":1,"v1-activity:3838670":1,"v1-activity:3839048":1,"v1-activity:3844557":1,"v1-activity:3848172":1,"v1-activity:3848796":2,"v1-activity:3849828":1,"v1-activity:3850045":1,"v1-activity:3855936":1,"v1-activity:3856076":4,"v1-activity:3856920":14,"v1-activity:3857043":1,"v1-activity:3858420":1,"v1-activity:3858432":1,"v1-activity:3860443":1,"v1-activity:3861797":1,"v1-activity:3862031":1,"v1-activity:3862453":1,"v1-activity:3863765":1,"v1-activity:3863968":1,"v1-activity:3864195":1,"v1-activity:3864325":2,"v1-activity:3865327":6,"v1-activity:3865707":1,"v1-activity:3866622":1,"v1-activity:3866901":1,"v1-activity:3866992":1,"v1-activity:3867911":2,"v1-activity:3867947":4,"v1-activity:3868568":1,"v1-activity:3868859":1,"v1-activity:3868894":1,"v1-activity:3869964":1,"v1-activity:3869983":1,"v1-activity:3870348":1,"v1-activity:3870453":1,"v1-activity:3870543":1,"v1-activity:3871178":4,"v1-activity:3871743":2,"v1-activity:3872364":8,"v1-activity:3873211":3,"v1-activity:3874396":1,"v1-activity:3876478":1,"v1-activity:3876897":1,"v1-activity:3877314":1,"v1-activity:3877471":1,"v1-activity:3877961":2,"v1-activity:3879047":1,"v1-activity:3880259":7,"v1-activity:3880366":3,"v1-activity:3880466":6,"v1-activity:3880781":1,"v1-activity:3880813":1,"v1-activity:3881620":3,"v1-activity:3881681":2,"v1-activity:3881849":1,"v1-activity:3882250":1,"v1-activity:3882343":1,"v1-activity:3882475":1,"v1-activity:3882746":2,"v1-activity:3883202":1,"v1-activity:3883429":2,"v1-activity:3883443":1,"v1-activity:3883466":1,"v1-activity:3883671":6,"v1-activity:3883911":1,"v1-activity:3883957":1,"v1-activity:3883967":1,"v1-activity:3884027":1,"v1-activity:3884162":1,"v1-activity:3885031":1,"v1-activity:3885189":1,"v1-activity:3885399":7,"v1-activity:3886017":2,"v1-activity:3886398":1,"v1-activity:3886416":1,"v1-activity:3886436":1,"v1-activity:3887247":1,"v1-activity:3887430":1,"v1-activity:3887441":1,"v1-activity:3887552":2,"v1-activity:3887659":1,"v1-activity:3887738":1,"v1-activity:3887789":1,"v1-activity:3887879":1,"v1-activity:3887956":1,"v1-activity:4043":1,"v1-activity:5517":1,"v1-activity:620769":4,"v1-activity:744494":1}}]][[HTTP/1.1 200 OK
2024-05-16T05:53:24.126599225Z Content-Length: 3733
2024-05-16T05:53:24.126606788Z Date: Thu, 16 May 2024 05:53:24 GMT
2024-05-16T05:53:24.126638228Z Content-Type: application/json; charset=utf-8
2024-05-16T05:53:24.126641633Z
2024-05-16T05:54:24.187044176Z ,"slivepc":1,"weblive":2},"events":{"event-activity:59687":1,"slive-activity:103168":1,"slive-activity:103229":1,"userId-11559815":1,"userId-15699313":2,"userId-18571700":1,"userId-19231667":1,"userId-20693312":1,"userId-20890820":1,"userId-22902473":1,"userId-23372277":1,"userId-24252961":1,"userId-2483962":1,"userId-24843661":1,"userId-26415630":1,"userId-3257":1,"userId-33285536":1,"userId-33302546":1,"userId-33745548":1,"userId-35442807":1,"userId-482920":1,"userId-4850757":1,"userId-4995677":1,"userId-5088355":1,"userId-5202492":1,"userId-5651741":1,"userId-7055680":1,"userId-7415523":1,"userId-7423148":1,"userId-8272202":1,"userId-9319621":1,"v1-activity:1454508":1,"v1-activity:1454527":1,"v1-activity:2020955":1,"v1-activity:2263287":1,"v1-activity:2485907":1,"v1-activity:2679949":17,"v1-activity:2704469":1,"v1-activity:2750308":1,"v1-activity:2798831":1,"v1-activity:2803860":1,"v1-activity:2979330":1,"v1-activity:3023583":1,"v1-activity:3156127":1,"v1-activity:3156263":1,"v1-activity:3226903":1,"v1-activity:3261504":1,"v1-activity:3275691":1,"v1-activity:3285308":1,"v1-activity:3329309":1,"v1-activity:3378452":1,"v1-activity:3457007":1,"v1-activity:3492149":1,"v1-activity:3503576":2,"v1-activity:3507766":1,"v1-activity:3540676":1,"v1-activity:3573854":1,"v1-activity:3580595":1,"v1-activity:3605683":1,"v1-activity:3646950":1,"v1-activity:3724392":1,"v1-activity:3727324":1,"v1-activity:3785877":3,"v1-activity:3821090":1,"v1-activity:3826420":1,"v1-activity:3827042":1,"v1-activity:3828120":1,"v1-activity:3828193":7,"v1-activity:3833794":2,"v1-activity:3834632":1,"v1-activity:3836279":1,"v1-activity:3841932":1,"v1-activity:3842614":1,"v1-activity:3842643":1,"v1-activity:3842692":1,"v1-activity:3843445":1,"v1-activity:3845375":1,"v1-activity:3845630":1,"v1-activity:3852340":1,"v1-activity:3856076":1,"v1-activity:3856920":3,"v1-activity:3857237":1,"v1-activity:3858420":1,"v1-activity:3861546":1,"v1-activity:3861780":3,"v1-activity:3862735":1,"v1-activity:3864195":1,"v1-activity:3864325":1,"v1-activity:3864493":1,"v1-activity:3864918":1,"v1-activity:3865327":2,"v1-activity:3866883":1,"v1-activity:3866992":1,"v1-activity:3867911":1,"v1-activity:3867947":4,"v1-activity:3868462":4,"v1-activity:3868568":1,"v1-activity:3868894":1,"v1-activity:3869359":1,"v1-activity:3869964":1,"v1-activity:3869983":1,"v1-activity:3870453":1,"v1-activity:3870938":1,"v1-activity:3870953":1,"v1-activity:3871178":1,"v1-activity:3872364":5,"v1-activity:3873011":1,"v1-activity:3873211":1,"v1-activity:3876679":1,"v1-activity:3876897":2,"v1-activity:3877314":1,"v1-activity:3877375":1,"v1-activity:3877555":1,"v1-activity:3877811":1,"v1-activity:3877861":1,"v1-activity:3878204":1,"v1-activity:3879081":1,"v1-activity:3879127":1,"v1-activity:3879634":1,"v1-activity:3879810":1,"v1-activity:3879857":1,"v1-activity:3879928":1,"v1-activity:3880259":6,"v1-activity:3880466":4,"v1-activity:3881106":1,"v1-activity:3881620":1,"v1-activity:3881681":1,"v1-activity:3881716":2,"v1-activity:3881849":1,"v1-activity:3882746":1,"v1-activity:3882984":2,"v1-activity:3883126":1,"v1-activity:3883203":1,"v1-activity:3883317":2,"v1-activity:3883388":1,"v1-activity:3883466":2,"v1-activity:3883671":2,"v1-activity:3885189":1,"v1-activity:3885253":2,"v1-activity:3885399":4,"v1-activity:3885506":1,"v1-activity:3885871":2,"v1-activity:3886681":1,"v1-activity:3887230":1,"v1-activity:3887246":1,"v1-activity:3887456":1,"v1-activity:3887552":1,"v1-activity:3887683":1,"v1-activity:3887897":1,"v1-activity:3888084":120,"v1-activity:3888121":6,"v1-activity:3888132":1,"v1-activity:620769":2,"v1-activity:6291":1}}]][[HTTP/1.1 200 OK
2024-05-16T05:54:24.187105229Z Content-Length: 3760
2024-05-16T05:54:24.187109557Z Date: Thu, 16 May 2024 05:54:24 GMT
2024-05-16T05:54:24.187112829Z Content-Type: application/json; charset=utf-8
2024-05-16T05:54:24.187115855Z
2024-05-16T05:54:54.221531804Z ,"slivepc":1,"weblive":2},"events":{"event-activity:59687":1,"slive-activity:103168":1,"slive-activity:103229":1,"userId-11559815":1,"userId-15699313":2,"userId-18571700":1,"userId-19231667":1,"userId-20890820":1,"userId-22902473":1,"userId-23372277":1,"userId-24252961":1,"userId-2483962":1,"userId-24843661":1,"userId-26415630":1,"userId-3257":1,"userId-33285536":1,"userId-33302546":1,"userId-33745548":1,"userId-35442807":1,"userId-482920":1,"userId-4850757":1,"userId-4995677":1,"userId-5088355":1,"userId-5202492":1,"userId-5651741":1,"userId-7055680":1,"userId-7415523":1,"userId-7423148":1,"userId-8272202":1,"userId-9319621":1,"v1-activity:196579":1,"v1-activity:2020955":1,"v1-activity:2263287":1,"v1-activity:2485907":1,"v1-activity:2679949":17,"v1-activity:2704469":1,"v1-activity:2750308":1,"v1-activity:2798831":1,"v1-activity:2803860":1,"v1-activity:2979330":1,"v1-activity:3023583":1,"v1-activity:3156127":1,"v1-activity:3156263":1,"v1-activity:3226903":1,"v1-activity:3261504":1,"v1-activity:3275691":1,"v1-activity:3285308":1,"v1-activity:3317617":1,"v1-activity:3329309":1,"v1-activity:3378452":1,"v1-activity:3457007":1,"v1-activity:3492149":1,"v1-activity:3503576":2,"v1-activity:3507766":1,"v1-activity:3540676":1,"v1-activity:3573854":1,"v1-activity:3580595":1,"v1-activity:3605683":1,"v1-activity:3646950":1,"v1-activity:3724392":1,"v1-activity:3785877":3,"v1-activity:3821090":1,"v1-activity:3826420":1,"v1-activity:3827042":1,"v1-activity:3828120":1,"v1-activity:3828193":7,"v1-activity:3833794":2,"v1-activity:3834632":1,"v1-activity:3836279":1,"v1-activity:3841932":1,"v1-activity:3842614":1,"v1-activity:3842643":1,"v1-activity:3842692":1,"v1-activity:3843445":1,"v1-activity:3845375":1,"v1-activity:3845630":1,"v1-activity:3852340":1,"v1-activity:3856076":2,"v1-activity:3856920":3,"v1-activity:3857237":1,"v1-activity:3858420":1,"v1-activity:3861546":1,"v1-activity:3861780":3,"v1-activity:3862735":1,"v1-activity:3863533":1,"v1-activity:3864195":1,"v1-activity:3864325":2,"v1-activity:3864493":1,"v1-activity:3864918":1,"v1-activity:3865327":2,"v1-activity:3866883":1,"v1-activity:3866992":1,"v1-activity:3867911":3,"v1-activity:3867947":4,"v1-activity:3868462":4,"v1-activity:3868568":1,"v1-activity:3868894":1,"v1-activity:3869359":1,"v1-activity:3869964":1,"v1-activity:3869983":1,"v1-activity:3870453":1,"v1-activity:3870938":1,"v1-activity:3870953":1,"v1-activity:3871178":1,"v1-activity:3871743":1,"v1-activity:3872364":4,"v1-activity:3873011":1,"v1-activity:3873211":1,"v1-activity:3876679":1,"v1-activity:3876897":1,"v1-activity:3877314":1,"v1-activity:3877375":1,"v1-activity:3877555":1,"v1-activity:3877811":1,"v1-activity:3877861":1,"v1-activity:3877961":1,"v1-activity:3878204":1,"v1-activity:3879081":1,"v1-activity:3879127":1,"v1-activity:3879634":1,"v1-activity:3879810":1,"v1-activity:3879857":1,"v1-activity:3879928":1,"v1-activity:3880259":6,"v1-activity:3880466":4,"v1-activity:3881106":1,"v1-activity:3881620":1,"v1-activity:3881681":1,"v1-activity:3881716":2,"v1-activity:3881849":1,"v1-activity:3882746":1,"v1-activity:3882984":2,"v1-activity:3883126":1,"v1-activity:3883203":1,"v1-activity:3883317":2,"v1-activity:3883388":1,"v1-activity:3883466":2,"v1-activity:3883671":2,"v1-activity:3885189":1,"v1-activity:3885253":2,"v1-activity:3885399":4,"v1-activity:3885506":1,"v1-activity:3885871":1,"v1-activity:3886681":1,"v1-activity:3887230":1,"v1-activity:3887246":1,"v1-activity:3887456":1,"v1-activity:3887552":2,"v1-activity:3887683":1,"v1-activity:3887897":1,"v1-activity:3888084":118,"v1-activity:3888121":5,"v1-activity:3888132":1,"v1-activity:620769":2,"v1-activity:6291":1}}]][[HTTP/1.1 200 OK
2024-05-16T05:54:54.221626146Z Content-Length: 3737
2024-05-16T05:54:54.221631733Z Date: Thu, 16 May 2024 05:54:54 GMT
2024-05-16T05:54:54.221635069Z Content-Type: application/json; charset=utf-8
2024-05-16T05:54:54.221638180Z
2024-05-16T06:00:24.670435800Z ,"slivepc":1,"weblive":2},"events":{"event-activity:59687":1,"slive-activity:103168":1,"slive-activity:103229":1,"userId-11559815":1,"userId-15699313":2,"userId-18571700":1,"userId-19231667":1,"userId-20890820":1,"userId-22902473":1,"userId-23372277":1,"userId-24252961":1,"userId-2483962":1,"userId-24843661":1,"userId-26415630":1,"userId-3257":1,"userId-33285536":1,"userId-33302546":1,"userId-33745548":1,"userId-35442807":1,"userId-482920":1,"userId-4850757":1,"userId-4995677":1,"userId-5088355":1,"userId-5202492":1,"userId-5651741":1,"userId-7055680":1,"userId-7415523":1,"userId-7423148":1,"userId-8272202":1,"userId-9319621":1,"v1-activity:2020955":1,"v1-activity:2263287":1,"v1-activity:2485907":1,"v1-activity:2679949":18,"v1-activity:2704469":1,"v1-activity:2750308":1,"v1-activity:2798831":1,"v1-activity:2803860":1,"v1-activity:2979330":1,"v1-activity:3023583":1,"v1-activity:3156127":1,"v1-activity:3156263":1,"v1-activity:3226903":1,"v1-activity:3261504":1,"v1-activity:3275691":1,"v1-activity:3285308":1,"v1-activity:3317617":1,"v1-activity:3329309":1,"v1-activity:3378452":1,"v1-activity:3457007":1,"v1-activity:3492149":1,"v1-activity:3503576":2,"v1-activity:3507766":1,"v1-activity:3540676":1,"v1-activity:3573854":1,"v1-activity:3580595":1,"v1-activity:3605683":1,"v1-activity:3646950":1,"v1-activity:3785877":3,"v1-activity:3821090":1,"v1-activity:3826420":1,"v1-activity:3827042":1,"v1-activity:3828120":1,"v1-activity:3828193":7,"v1-activity:3833794":2,"v1-activity:3834632":1,"v1-activity:3836279":1,"v1-activity:3841932":1,"v1-activity:3842614":1,"v1-activity:3842643":1,"v1-activity:3842692":1,"v1-activity:3843445":1,"v1-activity:3845375":1,"v1-activity:3845630":1,"v1-activity:3852340":1,"v1-activity:3856076":2,"v1-activity:3856920":3,"v1-activity:3857237":1,"v1-activity:3858420":1,"v1-activity:3861546":1,"v1-activity:3861780":3,"v1-activity:3861797":1,"v1-activity:3862735":1,"v1-activity:3863533":1,"v1-activity:3864195":1,"v1-activity:3864325":2,"v1-activity:3864493":1,"v1-activity:3864918":1,"v1-activity:3865327":2,"v1-activity:3866622":1,"v1-activity:3866883":1,"v1-activity:3866992":1,"v1-activity:3867911":3,"v1-activity:3867947":8,"v1-activity:3868462":4,"v1-activity:3868568":1,"v1-activity:3868894":1,"v1-activity:3869359":1,"v1-activity:3869964":1,"v1-activity:3869983":1,"v1-activity:3870453":1,"v1-activity:3870543":1,"v1-activity:3870953":1,"v1-activity:3871178":1,"v1-activity:3871743":1,"v1-activity:3872364":5,"v1-activity:3873011":1,"v1-activity:3873211":1,"v1-activity:3876679":1,"v1-activity:3876897":1,"v1-activity:3877314":1,"v1-activity:3877375":1,"v1-activity:3877555":1,"v1-activity:3877811":1,"v1-activity:3877861":1,"v1-activity:3877961":1,"v1-activity:3878204":1,"v1-activity:3879081":1,"v1-activity:3879127":1,"v1-activity:3879634":1,"v1-activity:3879810":1,"v1-activity:3879857":1,"v1-activity:3879928":1,"v1-activity:3880259":5,"v1-activity:3880466":4,"v1-activity:3881106":1,"v1-activity:3881620":1,"v1-activity:3881681":1,"v1-activity:3881716":2,"v1-activity:3881849":1,"v1-activity:3882746":1,"v1-activity:3882984":2,"v1-activity:3883126":1,"v1-activity:3883203":1,"v1-activity:3883317":1,"v1-activity:3883388":1,"v1-activity:3883466":2,"v1-activity:3883671":2,"v1-activity:3885189":1,"v1-activity:3885253":1,"v1-activity:3885399":4,"v1-activity:3885506":1,"v1-activity:3886681":1,"v1-activity:3887230":1,"v1-activity:3887246":1,"v1-activity:3887456":1,"v1-activity:3887552":1,"v1-activity:3887683":1,"v1-activity:3887897":1,"v1-activity:3888084":120,"v1-activity:3888121":6,"v1-activity:3888132":1,"v1-activity:620769":2,"v1-activity:6291":1}}]][[HTTP/1.1 200 OK
2024-05-16T06:00:24.670499273Z Content-Length: 4016
2024-05-16T06:00:24.670505893Z Date: Thu, 16 May 2024 06:00:24 GMT
2024-05-16T06:00:24.670510704Z Content-Type: application/json; charset=utf-8
2024-05-16T06:00:24.670514366Z
func onMessage(c *websocket.Conn, messageType websocket.MessageType, data []byte) {
connCtx := c.Session().(*wss.Conn)
// 业务处理
}
onMessage里处理完data不会继续在持有吧?例如传给其他地方留着用或者异步处理
这个data唯一使用的就是gjson.ParseBytes(data)
,后续都是获取json里的字段了,这些字段会存储到队列,整个过程应该是不涉及data
的后续引用。
请教各位大佬,这个 bug 到底意味着什么?是说 nbio 不能在生产环境使用吗?
@suconghou 可以升级到 v1.5.9试试, flush那块简化了挨个buffer write, 不用Writev了. 上次大版本改动巨大, 主要涉及4层flush, http body和ws的加锁/解析等相关的, 先排除法把flush这个简化掉, 如果还有问题, 我继续再挨个简化排除试试
请教各位大佬,这个 bug 到底意味着什么?是说 nbio 不能在生产环境使用吗?
1.3.21 没发现有这个问题, 1.5.6有bug, 1.5.9 我暂时还没有复现出来
@lesismal 1.5.9 问题仍然存在
1.5.6 有 panic 同时,基于系统监控,统计出错误请求较之前增加许多(ws/http请求)。