golang / go

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

runtime: OOM in time_test.TestUnixMilli on solaris-amd64-oraclerel #52547

Open bcmills opened 2 years ago

bcmills commented 2 years ago
fatal error: runtime: out of memory

runtime stack:
runtime.throw({0x5ba386?, 0x0?})
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/panic.go:1000 +0x71 fp=0x7fff969ffd60 sp=0x7fff969ffd30 pc=0x434f71
runtime.sysMapOS(0xc000400000, 0x400000?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mem_bsd.go:71 +0x11b fp=0x7fff969ffda8 sp=0x7fff969ffd60 pc=0x41783b
runtime.sysMap(0x1?, 0x7fff969ffe90?, 0x7fffbf2b97bf?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mem.go:118 +0x35 fp=0x7fff969ffdd8 sp=0x7fff969ffda8 pc=0x4175f5
runtime.(*mheap).grow(0x782880, 0xc0000f5378?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mheap.go:1405 +0x225 fp=0x7fff969ffe38 sp=0x7fff969ffdd8 pc=0x426a45
runtime.(*mheap).allocSpan(0x782880, 0x1, 0x0, 0x6)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mheap.go:1171 +0x18d fp=0x7fff969ffeb0 sp=0x7fff969ffe38 pc=0x42636d
runtime.(*mheap).alloc.func1()
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mheap.go:913 +0x65 fp=0x7fff969ffef8 sp=0x7fff969ffeb0 pc=0x425e45
runtime.systemstack()
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/asm_amd64.s:492 +0x52 fp=0x7fff969fff00 sp=0x7fff969ffef8 pc=0x463712

goroutine 120 [running]:
runtime.systemstack_switch()
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/asm_amd64.s:459 fp=0xc0000d95e0 sp=0xc0000d95d8 pc=0x4636a0
runtime.(*mheap).alloc(0x7fff97c1ff00?, 0x0?, 0x90?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mheap.go:907 +0x65 fp=0xc0000d9628 sp=0xc0000d95e0 pc=0x425d85
runtime.(*mcentral).grow(0x2000?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mcentral.go:244 +0x5b fp=0xc0000d9670 sp=0xc0000d9628 pc=0x41703b
runtime.(*mcentral).cacheSpan(0x792f40)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mcentral.go:164 +0x306 fp=0xc0000d96c8 sp=0xc0000d9670 pc=0x416e86
runtime.(*mcache).refill(0x7fffbf67f108, 0x6)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/mcache.go:162 +0xaf fp=0xc0000d9700 sp=0xc0000d96c8 pc=0x41650f
runtime.(*mcache).nextFree(0x7fffbf67f108, 0x6)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/malloc.go:812 +0x85 fp=0xc0000d9748 sp=0xc0000d9700 pc=0x40c345
runtime.mallocgc(0x18, 0x5b3b40, 0x1)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/malloc.go:1011 +0x4c8 fp=0xc0000d97c0 sp=0xc0000d9748 pc=0x40c9a8
runtime.makeslice(0x5882e0?, 0xc0003fea88?, 0x1?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/slice.go:103 +0x52 fp=0xc0000d97e8 sp=0xc0000d97c0 pc=0x44bc12
reflect.Value.call({0x58ae00?, 0x6310c8?, 0x5882e0?}, {0x5b4512, 0x4}, {0xc0003a24f8, 0x1, 0xc0003a24f8?})
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/reflect/value.go:609 +0x8a5 fp=0xc0000d9dd8 sp=0xc0000d97e8 pc=0x4a55e5
reflect.Value.Call({0x58ae00?, 0x6310c8?, 0x4d2760?}, {0xc0003a24f8, 0x1, 0x1})
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/reflect/value.go:370 +0xbf fp=0xc0000d9e50 sp=0xc0000d9dd8 pc=0x4a4c7f
testing/quick.Check({0x58ae00?, 0x6310c8?}, 0x337e9?)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/quick/quick.go:290 +0x233 fp=0xc0000d9f10 sp=0xc0000d9e50 pc=0x5262f3
time_test.TestUnixMilli(0xc0000f9d40)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/time/time_test.go:212 +0x65 fp=0xc0000d9f70 sp=0xc0000d9f10 pc=0x565da5
testing.tRunner(0xc0000f9d40, 0x6310d0)
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:1449 +0x10b fp=0xc0000d9fc0 sp=0xc0000d9f70 pc=0x4d286b
testing.(*T).Run.func1()
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:1496 +0x2a fp=0xc0000d9fe0 sp=0xc0000d9fc0 pc=0x4d370a
runtime.goexit()
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000d9fe8 sp=0xc0000d9fe0 pc=0x4657c1
created by testing.(*T).Run
    /tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/testing/testing.go:1496 +0x35f

greplogs --dashboard -md -l -e '\Asolaris-amd64-oraclerel.*(?:\n.*)*runtime: out of memory' --since=2022-01-01

2022-04-22T04:42:23-1e59876/solaris-amd64-oraclerel

bcmills commented 2 years ago

It isn't clear to me whether this is an overloaded or misconfigured builder or bug in the underlying platform (CC @rorth), or a bug in the runtime itself (such as #52433; CC @golang/runtime).

(It could also potentially be a bug in the time package or its tests, but that seems much less likely to me given how simple the test is.)