一个简单的短链服务,使用的 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
|  |      1pmispig      2019-04-22 14:09:55 +08:00 肯定是 panic 了,有完整日志么,从小处说是肯定有 err 被忽略没检测 | 
|  |      2noble4cc OP @pmispig 从上面的日志看死从 fasthttp 这个框架跑出来的,这个我们没有改动过代码,按道理来说它是个 server,不应该抛日志的,所有的日志有用的只有这些 | 
|  |      3pmispig      2019-04-22 16:16:15 +08:00 @noble4cc 后面肯定还有吧? go 的异常有完整的调用堆栈 0.0,你在哪个地方引入的 fasthttp  会出现在异常的顶层里呀 | 
|  |      4goofool      2019-04-22 21:12:40 +08:00 你传给 workerpool 的 WorkerFunc  panic 了吧 | 
|      7abel1989      2019-04-23 16:42:51 +08:00 看一下源码( workerpool.go)的实现吧 |