runtime: goroutine stack exceeds 1000000000-byte limit fatal error: stack overflow
runtime stack: runtime.throw(0x784d03, 0xe) /usr/local/go/src/runtime/panic.go:605 +0x95 runtime.newstack(0x0) /usr/local/go/src/runtime/stack.go:1050 +0x6e1 runtime.morestack() /usr/local/go/src/runtime/asm_amd64.s:415 +0x86
goroutine 35 [running]: runtime.newobject(0x772c40, 0x0) /usr/local/go/src/runtime/malloc.go:835 +0x51 fp=0xc440300370 sp=0xc440300368 pc=0x412511 reflect.mapiterinit(0x721360, 0xc420127ce0, 0x15) /usr/local/go/src/runtime/hashmap.go:1239 +0x2d fp=0xc4403003a0 sp=0xc440300370 pc=0x40c74d reflect.Value.MapKeys(0x721360, 0xc420127ce0, 0x15, 0x0, 0x409c09, 0xc440300538) /usr/local/go/src/reflect/value.go:1092 +0xcc fp=0xc440300450 sp=0xc4403003a0 pc=0x4ae34c encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:666 +0xad fp=0xc4403005c0 sp=0xc440300450 pc=0x4ecc6d encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440300600 sp=0xc4403005c0 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440300638 sp=0xc440300600 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5d40, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440300678 sp=0xc440300638 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403007e8 sp=0xc440300678 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440300828 sp=0xc4403007e8 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440300860 sp=0xc440300828 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5cd0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403008a0 sp=0xc440300860 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440300a10 sp=0xc4403008a0 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440300a50 sp=0xc440300a10 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440300a88 sp=0xc440300a50 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5c60, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440300ac8 sp=0xc440300a88 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440300c38 sp=0xc440300ac8 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440300c78 sp=0xc440300c38 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440300cb0 sp=0xc440300c78 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5bf0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440300cf0 sp=0xc440300cb0 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440300e60 sp=0xc440300cf0 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440300ea0 sp=0xc440300e60 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440300ed8 sp=0xc440300ea0 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5b80, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440300f18 sp=0xc440300ed8 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301088 sp=0xc440300f18 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc4403010c8 sp=0xc440301088 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301100 sp=0xc4403010c8 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5b10, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440301140 sp=0xc440301100 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403012b0 sp=0xc440301140 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc4403012f0 sp=0xc4403012b0 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301328 sp=0xc4403012f0 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5aa0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440301368 sp=0xc440301328 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403014d8 sp=0xc440301368 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301518 sp=0xc4403014d8 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301550 sp=0xc440301518 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5a30, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440301590 sp=0xc440301550 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301700 sp=0xc440301590 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301740 sp=0xc440301700 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301778 sp=0xc440301740 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a59c0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403017b8 sp=0xc440301778 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301928 sp=0xc4403017b8 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301968 sp=0xc440301928 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc4403019a0 sp=0xc440301968 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5950, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403019e0 sp=0xc4403019a0 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301b50 sp=0xc4403019e0 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301b90 sp=0xc440301b50 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301bc8 sp=0xc440301b90 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a58e0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440301c08 sp=0xc440301bc8 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301d78 sp=0xc440301c08 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301db8 sp=0xc440301d78 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440301df0 sp=0xc440301db8 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5870, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440301e30 sp=0xc440301df0 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440301fa0 sp=0xc440301e30 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440301fe0 sp=0xc440301fa0 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302018 sp=0xc440301fe0 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5800, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440302058 sp=0xc440302018 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403021c8 sp=0xc440302058 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302208 sp=0xc4403021c8 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302240 sp=0xc440302208 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5790, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440302280 sp=0xc440302240 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403023f0 sp=0xc440302280 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302430 sp=0xc4403023f0 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302468 sp=0xc440302430 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5720, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403024a8 sp=0xc440302468 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440302618 sp=0xc4403024a8 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302658 sp=0xc440302618 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302690 sp=0xc440302658 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a56b0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403026d0 sp=0xc440302690 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440302840 sp=0xc4403026d0 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302880 sp=0xc440302840 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc4403028b8 sp=0xc440302880 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5640, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403028f8 sp=0xc4403028b8 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440302a68 sp=0xc4403028f8 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302aa8 sp=0xc440302a68 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302ae0 sp=0xc440302aa8 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a55d0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440302b20 sp=0xc440302ae0 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440302c90 sp=0xc440302b20 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302cd0 sp=0xc440302c90 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302d08 sp=0xc440302cd0 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5560, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440302d48 sp=0xc440302d08 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440302eb8 sp=0xc440302d48 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440302ef8 sp=0xc440302eb8 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440302f30 sp=0xc440302ef8 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a54f0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440302f70 sp=0xc440302f30 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc4403030e0 sp=0xc440302f70 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440303120 sp=0xc4403030e0 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440303158 sp=0xc440303120 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5480, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440303198 sp=0xc440303158 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440303308 sp=0xc440303198 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440303348 sp=0xc440303308 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc440303380 sp=0xc440303348 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5410, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403033c0 sp=0xc440303380 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440303530 sp=0xc4403033c0 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440303570 sp=0xc440303530 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc4403035a8 sp=0xc440303570 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a53a0, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc4403035e8 sp=0xc4403035a8 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440303758 sp=0xc4403035e8 pc=0x4ed081 encoding/json.(*mapEncoder).(encoding/json.encode)-fm(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:698 +0x64 fp=0xc440303798 sp=0xc440303758 pc=0x4f59a4 encoding/json.(*encodeState).reflectValue(0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0xc420120100) /usr/local/go/src/encoding/json/encode.go:323 +0x82 fp=0xc4403037d0 sp=0xc440303798 pc=0x4ea562 encoding/json.interfaceEncoder(0xc4201d8000, 0x719fc0, 0xc43a4a5330, 0x94, 0xc43a4a0100) /usr/local/go/src/encoding/json/encode.go:609 +0xdb fp=0xc440303810 sp=0xc4403037d0 pc=0x4ec4ab encoding/json.(*mapEncoder).encode(0xc4201da058, 0xc4201d8000, 0x721360, 0xc420127ce0, 0x15, 0x720100) /usr/local/go/src/encoding/json/encode.go:682 +0x4c1 fp=0xc440303980 sp=0xc440303810 pc=0x4ed081 ...additional frames elided... created by net/http.(*Server).Serve /usr/local/go/src/net/http/server.go:2711 +0x288
goroutine 1 [IO wait]: internal/poll.runtime_pollWait(0x7f924a7e3ee8, 0x72, 0xffffffffffffffff) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(*pollDesc).wait(0xc420196018, 0x72, 0xc42016fa00, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae internal/poll.(*pollDesc).waitRead(0xc420196018, 0xffffffffffffff00, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(*FD).Accept(0xc420196000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:333 +0x1d7 net.(*netFD).accept(0xc420196000, 0x0, 0x3, 0xc420000180) /usr/local/go/src/net/fd_unix.go:238 +0x42 net.(*TCPListener).accept(0xc42018a010, 0xc420026670, 0xc420026600, 0x7499c0) /usr/local/go/src/net/tcpsock_posix.go:136 +0x2e net.(*TCPListener).AcceptTCP(0xc42018a010, 0xc42018c0f0, 0xc420000180, 0x79af88) /usr/local/go/src/net/tcpsock.go:234 +0x49 main.tcpKeepAliveListener.Accept(0xc42018a010, 0x0, 0x0, 0x0, 0x0) /home/ubuntu/mew/mew_server/src/mew.go:27 +0x8e net/http.(*Server).Serve(0xc420192000, 0x90bd40, 0xc42018a010, 0x0, 0x0) /usr/local/go/src/net/http/server.go:2686 +0x1b2 main.run() /home/ubuntu/mew/mew_server/src/mew.go:49 +0x330 main.main() /home/ubuntu/mew/mew_server/src/mew.go:15 +0x3b
goroutine 27 [IO wait]: internal/poll.runtime_pollWait(0x7f924a7e3e28, 0x72, 0x0) /usr/local/go/src/runtime/netpoll.go:173 +0x57 internal/poll.(*pollDesc).wait(0xc420196098, 0x72, 0xffffffffffffff00, 0x909080, 0x9055e8) /usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0xae internal/poll.(*pollDesc).waitRead(0xc420196098, 0xc420180200, 0x1, 0x1) /usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x3d internal/poll.(*FD).Read(0xc420196080, 0xc420180281, 0x1, 0x1, 0x0, 0x0, 0x0) /usr/local/go/src/internal/poll/fd_unix.go:125 +0x17b net.(*netFD).Read(0xc420196080, 0xc420180281, 0x1, 0x1, 0x0, 0x0, 0x0) /usr/local/go/src/net/fd_unix.go:202 +0x52 net.(*conn).Read(0xc42018a020, 0xc420180281, 0x1, 0x1, 0x0, 0x0, 0x0) /usr/local/go/src/net/net.go:176 +0x6d net/http.(*connReader).backgroundRead(0xc420180270) /usr/local/go/src/net/http/server.go:656 +0x62 created by net/http.(*connReader).startBackgroundRead /usr/local/go/src/net/http/server.go:652 +0xd8
goroutine 15 [chan receive]: database/sql.(*DB).connectionOpener(0xc420098e60) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 16 [chan receive]: database/sql.(*DB).connectionOpener(0xc420098f00) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 18 [chan receive]: database/sql.(*DB).connectionOpener(0xc420098fa0) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 19 [chan receive]: database/sql.(*DB).connectionOpener(0xc420099040) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 20 [chan receive]: database/sql.(*DB).connectionOpener(0xc4200990e0) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 21 [chan receive]: database/sql.(*DB).connectionOpener(0xc420099180) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 22 [chan receive]: database/sql.(*DB).connectionOpener(0xc420099220) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 23 [chan receive]: database/sql.(*DB).connectionOpener(0xc4200992c0) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 24 [chan receive]: database/sql.(*DB).connectionOpener(0xc420099360) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
goroutine 25 [chan receive]: database/sql.(*DB).connectionOpener(0xc420099400) /usr/local/go/src/database/sql/sql.go:871 +0x53 created by database/sql.Open /usr/local/go/src/database/sql/sql.go:609 +0x1ee
原因:手误打错了一个变量导致map递归
var a = map[string]interface{}
a["a"]=a
然后执行 json.Marshal(a) panic 了
map递归了,marshal时就一直在读内存,最后超过限制goroutine stack exceeds 1000000000-byte limit
|
请发表评论