用golang编写的游戏服务器程序,在接受来自客户端的链接请求时有一定概率崩溃,崩溃时的打印如下:
fatal error: runtime: out of memory
runtime stack:
runtime.throw(0x81b890, 0x16)
/usr/local/go/src/runtime/panic.go:527 +0x90
runtime.sysMap(0xc8530d0000, 0x72730000, 0x9b8f00, 0x9d7b58)
/usr/local/go/src/runtime/mem_linux.go:203 +0x9b
runtime.mHeap_SysAlloc(0x9b8f00, 0x72730000, 0xc820000a80)
/usr/local/go/src/runtime/malloc.go:426 +0x160
runtime.mHeap_Grow(0x9b8f00, 0x39398, 0x0)
/usr/local/go/src/runtime/mheap.go:628 +0x63
runtime.mHeap_AllocSpanLocked(0x9b8f00, 0x39394, 0xc82009edc0)
/usr/local/go/src/runtime/mheap.go:532 +0x5f1
runtime.mHeap_Alloc_m(0x9b8f00, 0x39394, 0xffffff0100000000, 0xc820037ec8)
/usr/local/go/src/runtime/mheap.go:425 +0x1ac
runtime.mHeap_Alloc.func1()
/usr/local/go/src/runtime/mheap.go:484 +0x41
runtime.systemstack(0xc820037ee0)
/usr/local/go/src/runtime/asm_amd64.s:278 +0xab
runtime.mHeap_Alloc(0x9b8f00, 0x39394, 0x10100000000, 0xc82009e000)
/usr/local/go/src/runtime/mheap.go:485 +0x63
runtime.largeAlloc(0x72726f4c, 0xc800000001, 0x44fcc0)
/usr/local/go/src/runtime/malloc.go:748 +0xb3
runtime.mallocgc.func3()
/usr/local/go/src/runtime/malloc.go:637 +0x33
runtime.systemstack(0xc82001e000)
/usr/local/go/src/runtime/asm_amd64.s:262 +0x79
runtime.mstart()
/usr/local/go/src/runtime/proc1.go:668
goroutine 211 [running]:
runtime.systemstack_switch()
/usr/local/go/src/runtime/asm_amd64.s:216 fp=0xc820040890 sp=0xc820040888
runtime.mallocgc(0x72726f4c, 0x6ef040, 0x1, 0xc852bbe630)
/usr/local/go/src/runtime/malloc.go:638 +0x9c4 fp=0xc820040960 sp=0xc820040890
runtime.newarray(0x6ef040, 0x72726f4c, 0x40d5e6)
/usr/local/go/src/runtime/malloc.go:780 +0xc9 fp=0xc8200409a0 sp=0xc820040960
runtime.makeslice(0x6e1a80, 0x72726f4c, 0x72726f4c, 0x0, 0x0, 0x0)
/usr/local/go/src/runtime/slice.go:32 +0x165 fp=0xc8200409f0 sp=0xc8200409a0
github.com/chronicaww/gomsg.SingleRead(0xc84daaa798, 0x0, 0x0, 0x0, 0x0)
/Users/chro