Repository: go
Issue: runtime/race: windows race out of memory allocating heap arena map
Labels: OS-Windows,NeedsInvestigation,compiler/runtime

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
...
```