letsfire / factory

Go语言的协程池 , 节省内存 , 减少GC压力
MIT License
15 stars 0 forks source link

runtime: goroutine stack exceeds 1000000000-byte limit fatal error: stack overflow #7

Open mylxy opened 3 years ago

mylxy commented 3 years ago

line.go 31 陷入死循环,使用场景是协程池保存tsdb数据,当tsdb不可用时,报这个错误

runtime stack: runtime.throw(0x16bbd89, 0xe) /root/.gvm/gos/go1.13/src/runtime/panic.go:774 +0x72 runtime.newstack() /root/.gvm/gos/go1.13/src/runtime/stack.go:1046 +0x6e9 runtime.morestack() /root/.gvm/gos/go1.13/src/runtime/asm_amd64.s:449 +0x8f

goroutine 1 [running]: runtime.heapBitsSetType(0xc0020564b0, 0x30, 0x30, 0x1583560) /root/.gvm/gos/go1.13/src/runtime/mbitmap.go:938 +0xa4e fp=0xc02763a3a8 sp=0xc02763a3a0 pc=0x42428e runtime.mallocgc(0x30, 0x1583560, 0xc02763a401, 0x262f7e0) /root/.gvm/gos/go1.13/src/runtime/malloc.go:1052 +0x53e fp=0xc02763a448 sp=0xc02763a3a8 pc=0x41a00e runtime.newobject(0x1583560, 0xc00040c0c0) /root/.gvm/gos/go1.13/src/runtime/malloc.go:1151 +0x38 fp=0xc02763a478 sp=0xc02763a448 pc=0x41a658 github.com/letsfire/utils.newCall(...) /go/pkg/mod/github.com/letsfire/utils@v0.0.0-20200331101103-1ea3f3e4b618/guard.go:45 github.com/letsfire/utils.(Guard).Run(0xc000158d80, 0x16b7ddf, 0xa, 0xc02763a510, 0x0, 0xc02763a500, 0x14adf00, 0xc02763a558) /go/pkg/mod/github.com/letsfire/utils@v0.0.0-20200331101103-1ea3f3e4b618/guard.go:27 +0xfe fp=0xc02763a4c8 sp=0xc02763a478 pc=0x1353e4e github.com/letsfire/factory.(Master).getWorker(0xc0001b4050, 0xc047639f90) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/master.go:81 +0xdf fp=0xc02763a530 sp=0xc02763a4c8 pc=0x1354e9f github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:20 +0x32 fp=0xc02763a580 sp=0xc02763a530 pc=0x13543f2 github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a5d0 sp=0xc02763a580 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a620 sp=0xc02763a5d0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a670 sp=0xc02763a620 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a6c0 sp=0xc02763a670 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a710 sp=0xc02763a6c0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a760 sp=0xc02763a710 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a7b0 sp=0xc02763a760 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a800 sp=0xc02763a7b0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a850 sp=0xc02763a800 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a8a0 sp=0xc02763a850 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a8f0 sp=0xc02763a8a0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a940 sp=0xc02763a8f0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a990 sp=0xc02763a940 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763a9e0 sp=0xc02763a990 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763aa30 sp=0xc02763a9e0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763aa80 sp=0xc02763aa30 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763aad0 sp=0xc02763aa80 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ab20 sp=0xc02763aad0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ab70 sp=0xc02763ab20 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763abc0 sp=0xc02763ab70 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ac10 sp=0xc02763abc0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ac60 sp=0xc02763ac10 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763acb0 sp=0xc02763ac60 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ad00 sp=0xc02763acb0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ad50 sp=0xc02763ad00 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ada0 sp=0xc02763ad50 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763adf0 sp=0xc02763ada0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ae40 sp=0xc02763adf0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763ae90 sp=0xc02763ae40 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763aee0 sp=0xc02763ae90 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763af30 sp=0xc02763aee0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763af80 sp=0xc02763af30 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763afd0 sp=0xc02763af80 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b020 sp=0xc02763afd0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b070 sp=0xc02763b020 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b0c0 sp=0xc02763b070 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b110 sp=0xc02763b0c0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b160 sp=0xc02763b110 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b1b0 sp=0xc02763b160 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b200 sp=0xc02763b1b0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b250 sp=0xc02763b200 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b2a0 sp=0xc02763b250 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b2f0 sp=0xc02763b2a0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b340 sp=0xc02763b2f0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b390 sp=0xc02763b340 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b3e0 sp=0xc02763b390 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b430 sp=0xc02763b3e0 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0) /go/pkg/mod/github.com/letsfire/factory@v0.0.0-20200620052814-eea92cf1bf9e/line.go:31 +0x1ae fp=0xc02763b480 sp=0xc02763b430 pc=0x135456e github.com/letsfire/factory.(Line).Submit(0xc00022ad00, 0x145f5e0, 0xc000ee0aa0)

letsfire commented 3 years ago

您的line处理函数我不清楚,死循环的话是你的协程池已达到上限且所有协程都在工作中。没有可用的供分配。这需要你自己根据情况调高上限或者缩短处理函数的处理时间吧。

letsfire commented 3 years ago

有什么好的解决建议也可以反馈,你可以更新最新版本的代码库,应该是兼容的。