golang 程序莫名的死掉

2019-04-22 13:17:51 +08:00
 noble4cc

一个简单的短链服务,使用的 fasthttp,五台机器但是发现最近进程会莫名的死掉,机器为 docker,上面跑了两个服务,有一个服务会莫名的挂了,cpu、内存均不高,qps 100 多吧,也不高 死在了 fasthttp receive chan 上了,但是按理说不应该发生异常的

日志如下:

goroutine 105232869 [chan receive]:
project_path/vendor/github.com/valyala/fasthttp.(*workerPool).workerFunc(0xc4210ada00, 0xc42092a560)
	pproject_path/vendor/github.com/valyala/fasthttp/workerpool.go:205 +0x7d
project_path/vendor/github.com/valyala/fasthttp.(*workerPool).getCh.func1(0xc4210ada00, 0xc42092a560, 0xa2f1c0, 0xc42092a560)
	project_path/vendor/github.com/valyala/fasthttp/workerpool.go:182 +0x35
project_path/vendor/github.com/valyala/fasthttp.(*workerPool).getCh
	project_path/vendor/github.com/valyala/fasthttp/workerpool.go:184 +0x135

3423 次点击
所在节点    Go 编程语言
7 条回复
pmispig
2019-04-22 14:09:55 +08:00
肯定是 panic 了,有完整日志么,从小处说是肯定有 err 被忽略没检测
noble4cc
2019-04-22 16:01:37 +08:00
@pmispig 从上面的日志看死从 fasthttp 这个框架跑出来的,这个我们没有改动过代码,按道理来说它是个 server,不应该抛日志的,所有的日志有用的只有这些
pmispig
2019-04-22 16:16:15 +08:00
@noble4cc 后面肯定还有吧? go 的异常有完整的调用堆栈 0.0,你在哪个地方引入的 fasthttp 会出现在异常的顶层里呀
goofool
2019-04-22 21:12:40 +08:00
你传给 workerpool 的 WorkerFunc panic 了吧
noble4cc
2019-04-22 22:29:27 +08:00
@pmispig 没有这个是最底部的日志
noble4cc
2019-04-22 22:29:59 +08:00
@goofool 这个是 fasthttp 这个框架做的,不是我控制传递的,这个 bug 的确莫名其妙
abel1989
2019-04-23 16:42:51 +08:00
看一下源码( workerpool.go)的实现吧

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

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

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

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

© 2021 V2EX