golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
123.9k stars 17.65k forks source link

runtime/race: windows race out of memory allocating heap arena map #28497

Open bradfitz opened 6 years ago

bradfitz commented 6 years ago

https://build.golang.org/log/48dc600dd822d082a10c753b50f3123d8cb2e86d

...
FAIL    runtime/race    46.500s
==996==ERROR: ThreadSanitizer failed to allocate 0x000004000000 (67108864) bytes at 0x04008c000000 (error code: 1455)
runtime: newstack sp=0x588fe50 stack=[0xc002168000, 0xc00216c000]
    morebuf={pc:0x407319 sp:0x588fe60 lr:0x0}
    sched={pc:0x474370 sp:0x588fe58 lr:0x0 ctxt:0x0}
runtime: gp=0xc000026c00, goid=27, gp->status=0x2
 runtime: split stack overflow: 0x588fe50 < 0xc002168000
fatal error: runtime: split stack overflow

runtime stack:
runtime.throw(0x67ddba, 0x1d)
    C:/workdir/go/src/runtime/panic.go:608 +0x79
runtime.newstack()
    C:/workdir/go/src/runtime/stack.go:995 +0x86f
runtime.morestack()
    C:/workdir/go/src/runtime/asm_amd64.s:429 +0x97

goroutine 27 [running]:
runtime.sigpanic()
    C:/workdir/go/src/runtime/signal_windows.go:201 +0x170 fp=0x588fe60 sp=0x588fe58 pc=0x474370
created by testing.(*T).Run
    C:/workdir/go/src/testing/testing.go:901 +0x686

goroutine 1 [chan receive]:
testing.(*T).Run(0xc0000b6000, 0x679341, 0xf, 0x683df8, 0xc000075c01)
    C:/workdir/go/src/testing/testing.go:902 +0x6be
testing.runTests.func1(0xc0000b6000)
    C:/workdir/go/src/testing/testing.go:1142 +0xb0
testing.tRunner(0xc0000b6000, 0xc000075dd0)
    C:/workdir/go/src/testing/testing.go:850 +0x16a
testing.runTests(0xc000048460, 0x7f6e20, 0x9, 0x9, 0x80)
    C:/workdir/go/src/testing/testing.go:1140 +0x4f3
testing.(*M).Run(0xc0000a6000, 0x0)
    C:/workdir/go/src/testing/testing.go:1057 +0x2f7
main.main()
    _testmain.go:64 +0x229

goroutine 6 [select (no cases)]:
runtime/trace_test.TestTraceSymbolize.func1()
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:41 +0x37
created by runtime/trace_test.TestTraceSymbolize
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:40 +0x137

goroutine 7 [chan send (nil chan)]:
runtime/trace_test.TestTraceSymbolize.func2()
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:45 +0x52
created by runtime/trace_test.TestTraceSymbolize
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:43 +0x14f

goroutine 8 [chan receive (nil chan)]:
runtime/trace_test.TestTraceSymbolize.func3()
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:49 +0x3e
created by runtime/trace_test.TestTraceSymbolize
    C:/workdir/go/src/runtime/trace/trace_stack_test.go:47 +0x167

goroutine 130 [select (no cases)]:
runtime/trace_test.TestTraceStress.func9()
    C:/workdir/go/src/runtime/trace/trace_test.go:307 +0x3c
created by runtime/trace_test.TestTraceStress
    C:/workdir/go/src/runtime/trace/trace_test.go:305 +0x717
FAIL    runtime/trace   51.330s
ok      sort    2.255s
ok      strconv 8.116s
ok      strings 46.369s
--- FAIL: TestMutexMisuse (0.16s)
    mutex_test.go:176: Mutex.Unlock: did not find failure with message about unlocked lock: exit status 2
        fatal error: out of memory allocating heap arena map

        runtime stack:
        runtime.throw(0x675b79, 0x27)
            C:/workdir/go/src/runtime/panic.go:608 +0x79 fp=0x22fae0 sp=0x22fab0 pc=0x45f499
        runtime.(*mheap).sysAlloc(0x7fd740, 0x2000, 0x48, 0x48)
            C:/workdir/go/src/runtime/malloc.go:627 +0x4d7 fp=0x22fb70 sp=0x22fae0 pc=0x43c247
        runtime.(*mheap).grow(0x7fd740, 0x1, 0x0)
            C:/workdir/go/src/runtime/mheap.go:942 +0x49 fp=0x22fbc8 sp=0x22fb70 pc=0x454c09
        runtime.(*mheap).allocSpanLocked(0x7fd740, 0x1, 0x816fe8, 0x560010000a7)
            C:/workdir/go/src/runtime/mheap.go:866 +0x3c8 fp=0x22fc10 sp=0x22fbc8 pc=0x454ac8
        runtime.(*mheap).alloc_m(0x7fd740, 0x1, 0x23, 0x22fd90)
            C:/workdir/go/src/runtime/mheap.go:710 +0x100 fp=0x22fc50 sp=0x22fc10 pc=0x454280
        runtime.(*mheap).alloc.func1()
            C:/workdir/go/src/runtime/mheap.go:779 +0x53 fp=0x22fc88 sp=0x22fc50 pc=0x489db3
        runtime.(*mheap).alloc(0x7fd740, 0x1, 0x10023, 0x22fd10)
            C:/workdir/go/src/runtime/mheap.go:778 +0x91 fp=0x22fcd8 sp=0x22fc88 pc=0x4544d1
        runtime.(*mcentral).grow(0x7fe540, 0x0)
            C:/workdir/go/src/runtime/mcentral.go:256 +0x9a fp=0x22fd20 sp=0x22fcd8 pc=0x447eba
        runtime.(*mcentral).cacheSpan(0x7fe540, 0x2a60000)
            C:/workdir/go/src/runtime/mcentral.go:106 +0x2b4 fp=0x22fd68 sp=0x22fd20 pc=0x4479d4
        runtime.(*mcache).refill(0x2a60000, 0x23)
            C:/workdir/go/src/runtime/mcache.go:135 +0x8d fp=0x22fd88 sp=0x22fd68 pc=0x44749d
        runtime.(*mcache).nextFree(0x2a60000, 0x489223, 0x4000, 0x0, 0x817040)
            C:/workdir/go/src/runtime/malloc.go:749 +0x8f fp=0x22fdc0 sp=0x22fd88 pc=0x43c3df
        runtime.mallocgc(0x100, 0x63de60, 0x2a60001, 0x2a60000)
            C:/workdir/go/src/runtime/malloc.go:902 +0x7b8 fp=0x22fe60 sp=0x22fdc0 pc=0x43cd48
        runtime.newobject(0x63de60, 0x7f94a0)
            C:/workdir/go/src/runtime/malloc.go:1031 +0x3f fp=0x22fe90 sp=0x22fe60 pc=0x43d15f
        runtime.mcommoninit(0x7f94a0)
            C:/workdir/go/src/runtime/proc.go:635 +0x126 fp=0x22fec8 sp=0x22fe90 pc=0x462216
        runtime.schedinit()
            C:/workdir/go/src/runtime/proc.go:541 +0xb8 fp=0x22ff30 sp=0x22fec8 pc=0x461ea8
        runtime.rt0_go(0x22ff60, 0x773f59cd, 0x22ff60, 0x0, 0x773f59cd, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
            C:/workdir/go/src/runtime/asm_amd64.s:195 +0x126 fp=0x22ff38 sp=0x22ff30 pc=0x48bc86
...
bradfitz commented 5 years ago

More: https://build.golang.org/log/14152de23aad5b4eccde5850ed9369208700f6f6

bcmills commented 4 years ago

2020-05-07T20:50:54-480da3e/windows-amd64-race 2020-05-05T02:31:15-26f46d2/windows-amd64-race 2020-04-27T18:59:06-e0d5eeb/windows-amd64-race 2020-04-27T12:55:06-479cc23/windows-amd64-race 2020-04-23T20:44:50-38a97e0/windows-amd64-race 2020-04-23T18:13:49-a466788/windows-amd64-race 2020-04-21T14:47:19-26dd2a5/windows-amd64-race 2020-04-20T21:06:19-9f075f7/windows-amd64-race 2020-04-16T19:38:27-92fa1ff/windows-amd64-race 2020-04-15T03:45:06-5d8e189/windows-amd64-race 2019-05-20T18:16:09-776e170/windows-amd64-race