Skip to content

runtime: crash in GC #7205

Closed
Closed
@randall77

Description

@randall77
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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions