Closed
Description
go test reflect, crashes occasionally (~1 in 20?). Stack trace below. Looks like it is crashing in gc because a GC_IFACE op finds an interface value with a tab or tab->type field which is junk. (linux/amd64) SIGSEGV: segmentation violation PC=0x40e191 scanblock(0x7fe3b7934000, 0x7fe3b7915d00) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/mgc0.c:948 +0x8c1 markroot(0xc210026000, 0x7) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/mgc0.c:1277 +0xd9 runtime.parfordo(0xc210026000) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/parfor.c:105 +0xa3 gc(0x7fe3b7a4d480) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/mgc0.c:2163 +0x259 mgc(0xc2100015a0) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/mgc0.c:2104 +0x2e runtime.mcall(0x427667) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/asm_amd64.s:181 +0x4b goroutine 57 [garbage collection]: runtime.gc(0x7fe300000000) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/mgc0.c:2075 +0x1b2 fp=0x7fe3b7a4d490 runtime.mallocgc(0x40, 0x0, 0x9) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/malloc.goc:211 +0x1b8 fp=0x7fe3b7a4d508 gostringsize(0x7fe3b7a4d558, 0x3c) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/string.goc:49 +0x5f fp=0x7fe3b7a4d540 concatstring(0x7fe3b7a4d5f8, 0x5, 0x7fe3b7a4d5a8) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/string.goc:171 +0x13c fp=0x7fe3b7a4d588 runtime.concatstring5(0x5dbcd0, 0xb, 0x5e2050, 0x11, 0x5c91d0, ...) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/string.goc:204 +0x28 fp=0x7fe3b7a4d5a8 reflect.funcLayout(0x592c40, 0x595bc0, 0x564960) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/type.go:1883 +0x9ce fp=0x7fe3b7a4d6c8 reflect.Value.call(0x595bc0, 0xc21004bea0, 0x0, 0x138, 0x5ca550, ...) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/value.go:535 +0xf99 fp=0x7fe3b7a4db00 reflect.Value.Call(0x595bc0, 0xc21004bea0, 0x0, 0x138, 0xc210095f40, ...) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/value.go:411 +0xb3 fp=0x7fe3b7a4db68 reflect_test.func·012(0x5c8fb0, 0x3, 0x595bc0, 0xc21004bea0, 0x0, ...) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/all_test.go:1803 +0x29e fp=0x7fe3b7a4dd10 reflect_test.func·013(0x5c8fb0, 0x3, 0x595bc0, 0xc21004bea0, 0x28) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/all_test.go:1818 +0xc0 fp=0x7fe3b7a4ddb8 reflect_test.TestMethod5(0xc210090900) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/reflect/all_test.go:1852 +0x8ad fp=0x7fe3b7a4df60 testing.tRunner(0xc210090900, 0x8cee38) /usr/local/google/home/khr/sandbox/go-ro/src/pkg/testing/testing.go:398 +0x8b fp=0x7fe3b7a4df90 runtime.goexit() /usr/local/google/home/khr/sandbox/go-ro/src/pkg/runtime/proc.c:1438 fp=0x7fe3b7a4df98 created by testing.RunTests /usr/local/google/home/khr/sandbox/go-ro/src/pkg/testing/testing.go:479 +0x978