Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime: munmap failure in program with very large heap (dup #12233?) #13227

Closed
kortschak opened this issue Nov 13, 2015 · 16 comments
Closed

runtime: munmap failure in program with very large heap (dup #12233?) #13227

kortschak opened this issue Nov 13, 2015 · 16 comments

Comments

@kortschak
Copy link
Contributor

One of my users reported this panic to me.

Expect normal successful completion, got "fatal error: unexpected signal during runtime execution".

Go version is go1.5.1.

See https://groups.google.com/d/topic/golang-nuts/Men8KFhERN0/discussion

$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/terryb/gospace"
GORACE=""
GOROOT="/home/terryb/go"
GOTOOLDIR="/home/terryb/go/pkg/tool/linux_amd64"
GO15VENDOREXPERIMENT=""
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

OS:
3.2.0-26-generic #41-Ubuntu x86_64 GNU/Linux

$ igor -in pogona_krishna80_gffs -out pogona_igor_strict0
-overlap-strictness 0 -threads=10
2015/11/11 13:58:08 reading PALS features from "pogona_krishna80_gffs"
2015/11/11 13:58:08 writing to "pogona_igor_strict0"
2015/11/11 13:58:08 generating piles ... piling.
fatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0xf1 pc=0x45addb]

runtime stack:
runtime.throw(0x6357c0, 0x2a)
        /home/terryb/go/src/runtime/panic.go:527 +0x90 fp=0x7fffeedbf6e8
sp=0x7fffeedbf6d0
runtime.sigpanic()
        /home/terryb/go/src/runtime/sigpanic_unix.go:12 +0x5a
fp=0x7fffeedbf738 sp=0x7fffeedbf6e8
runtime.munmap(0x7f8f9bf91000, 0x1a3f348, 0x41c41f, 0x7f8f9bf91000,
0x1a3f348, 0x723960, 0x7f8f9bf91000, 0x347e69, 0x36bc9a, 0x41bc3c, ...)
        /home/terryb/go/src/runtime/sys_linux_amd64.s:266 +0x1b
fp=0x7fffeedbf740 sp=0x7fffeedbf738
runtime.sysFree(0x7f8f9bf91000, 0x1a3f348, 0x723960)
        /home/terryb/go/src/runtime/mem_linux.go:103 +0x34
fp=0x7fffeedbf758 sp=0x7fffeedbf740
runtime.gcCopySpans()
        /home/terryb/go/src/runtime/mgc.go:1600 +0xdf fp=0x7fffeedbf790
sp=0x7fffeedbf758
runtime.gcMark(0x7cb400254e9ddc)
        /home/terryb/go/src/runtime/mgc.go:1415 +0x5c fp=0x7fffeedbf7f8
sp=0x7fffeedbf790
runtime.gc.func3()
        /home/terryb/go/src/runtime/mgc.go:1089 +0x23 fp=0x7fffeedbf808
sp=0x7fffeedbf7f8
runtime.systemstack(0x6fd880)
        /home/terryb/go/src/runtime/asm_amd64.s:262 +0x79
fp=0x7fffeedbf810 sp=0x7fffeedbf808
runtime.mstart()
        /home/terryb/go/src/runtime/proc1.go:674 fp=0x7fffeedbf818
sp=0x7fffeedbf810

goroutine 5 [garbage collection]:
runtime.systemstack_switch()
        /home/terryb/go/src/runtime/asm_amd64.s:216 fp=0xc820095c98
sp=0xc820095c90
runtime.gc(0x0)
        /home/terryb/go/src/runtime/mgc.go:1097 +0x3d0 fp=0xc820095f90
sp=0xc820095c98
runtime.backgroundgc()
        /home/terryb/go/src/runtime/mgc.go:897 +0x3d fp=0xc820095fc0
sp=0xc820095f90
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820095fc8 sp=0xc820095fc0
created by runtime.startGC
        /home/terryb/go/src/runtime/mgc.go:870 +0x186

goroutine 1 [sleep]:
runtime.gopark(0x64d7a0, 0x6fd4a0, 0x5f47f0, 0x5, 0x2179813, 0x2)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xd664048b98
sp=0xd664048b70
runtime.goparkunlock(0x6fd4a0, 0x5f47f0, 0x5, 0x13, 0x2)
        /home/terryb/go/src/runtime/proc.go:191 +0x54 fp=0xd664048bd0
sp=0xd664048b98
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:59 +0xf9 fp=0xd664048c18
sp=0xd664048bd0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664048c78 sp=0xd664048c18
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664048d48
sp=0xd664048c78
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664048d70
sp=0xd664048d48
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664048db8
sp=0xd664048d70
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664048e18 sp=0xd664048db8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664048ee8
sp=0xd664048e18
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664048f10
sp=0xd664048ee8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664048f58
sp=0xd664048f10
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664048fb8 sp=0xd664048f58
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049088
sp=0xd664048fb8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd6640490b0
sp=0xd664049088
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd6640490f8
sp=0xd6640490b0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049158 sp=0xd6640490f8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049228
sp=0xd664049158
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049250
sp=0xd664049228
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049298
sp=0xd664049250
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd6640492f8 sp=0xd664049298
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd6640493c8
sp=0xd6640492f8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd6640493f0
sp=0xd6640493c8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049438
sp=0xd6640493f0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049498 sp=0xd664049438
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049568
sp=0xd664049498
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049590
sp=0xd664049568
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd6640495d8
sp=0xd664049590
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049638 sp=0xd6640495d8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049708
sp=0xd664049638
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049730
sp=0xd664049708
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049778
sp=0xd664049730
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd6640497d8 sp=0xd664049778
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd6640498a8
sp=0xd6640497d8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd6640498d0
sp=0xd6640498a8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049918
sp=0xd6640498d0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049978 sp=0xd664049918
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049a48
sp=0xd664049978
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049a70
sp=0xd664049a48
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049ab8
sp=0xd664049a70
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049b18 sp=0xd664049ab8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049be8
sp=0xd664049b18
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049c10
sp=0xd664049be8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049c58
sp=0xd664049c10
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049cb8 sp=0xd664049c58
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049d88
sp=0xd664049cb8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049db0
sp=0xd664049d88
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049df8
sp=0xd664049db0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049e58 sp=0xd664049df8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd664049f28
sp=0xd664049e58
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd664049f50
sp=0xd664049f28
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd664049f98
sp=0xd664049f50
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd664049ff8 sp=0xd664049f98
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a0c8
sp=0xd664049ff8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a0f0
sp=0xd66404a0c8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a138
sp=0xd66404a0f0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a198 sp=0xd66404a138
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a268
sp=0xd66404a198
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a290
sp=0xd66404a268
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a2d8
sp=0xd66404a290
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a338 sp=0xd66404a2d8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a408
sp=0xd66404a338
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a430
sp=0xd66404a408
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a478
sp=0xd66404a430
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a4d8 sp=0xd66404a478
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a5a8
sp=0xd66404a4d8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a5d0
sp=0xd66404a5a8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a618
sp=0xd66404a5d0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a678 sp=0xd66404a618
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a748
sp=0xd66404a678
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a770
sp=0xd66404a748
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a7b8
sp=0xd66404a770
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a818 sp=0xd66404a7b8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404a8e8
sp=0xd66404a818
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404a910
sp=0xd66404a8e8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404a958
sp=0xd66404a910
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404a9b8 sp=0xd66404a958
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404aa88
sp=0xd66404a9b8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404aab0
sp=0xd66404aa88
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404aaf8
sp=0xd66404aab0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404ab58 sp=0xd66404aaf8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404ac28
sp=0xd66404ab58
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404ac50
sp=0xd66404ac28
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404ac98
sp=0xd66404ac50
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404acf8 sp=0xd66404ac98
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404adc8
sp=0xd66404acf8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404adf0
sp=0xd66404adc8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404ae38
sp=0xd66404adf0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404ae98 sp=0xd66404ae38
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404af68
sp=0xd66404ae98
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404af90
sp=0xd66404af68
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404afd8
sp=0xd66404af90
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404b038 sp=0xd66404afd8
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404b108
sp=0xd66404b038
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404b130
sp=0xd66404b108
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404b178
sp=0xd66404b130
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404b1d8 sp=0xd66404b178
runtime.mallocgc(0x40, 0x5ce820, 0x0, 0x2)
        /home/terryb/go/src/runtime/malloc.go:711 +0x535 fp=0xd66404b2a8
sp=0xd66404b1d8
runtime.newobject(0x5ce820, 0x5f47f0)
        /home/terryb/go/src/runtime/malloc.go:760 +0x42 fp=0xd66404b2d0
sp=0xd66404b2a8
time.Sleep(0x186a0)
        /home/terryb/go/src/runtime/time.go:53 +0x37 fp=0xd66404b318
sp=0xd66404b2d0
runtime.gcAssistAlloc(0x40, 0x1)
        /home/terryb/go/src/runtime/mgcmark.go:295 +0x23e
fp=0xd66404b378 sp=0xd66404b318
...additional frames elided...

goroutine 2 [force gc (idle), 527 minutes]:
runtime.gopark(0x64d7a0, 0x6fd2d0, 0x5f9cc0, 0xf, 0x14, 0x1)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820094758
sp=0xc820094730
runtime.goparkunlock(0x6fd2d0, 0x5f9cc0, 0xf, 0xc820000114, 0x1)
        /home/terryb/go/src/runtime/proc.go:191 +0x54 fp=0xc820094790
sp=0xc820094758
runtime.forcegchelper()
        /home/terryb/go/src/runtime/proc.go:152 +0xb8 fp=0xc8200947c0
sp=0xc820094790
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200947c8 sp=0xc8200947c0
created by runtime.init.4
        /home/terryb/go/src/runtime/proc.go:141 +0x2b

goroutine 3 [GC sweep wait, 3 minutes]:
runtime.gopark(0x64d7a0, 0x6fd480, 0x5f6d20, 0xd, 0x44d714, 0x1)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820094f48
sp=0xc820094f20
runtime.goparkunlock(0x6fd480, 0x5f6d20, 0xd, 0x14, 0x1)
        /home/terryb/go/src/runtime/proc.go:191 +0x54 fp=0xc820094f80
sp=0xc820094f48
runtime.bgsweep(0xc8200c4000)
        /home/terryb/go/src/runtime/mgcsweep.go:67 +0x14d
fp=0xc820094fb8 sp=0xc820094f80
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820094fc0 sp=0xc820094fb8
created by runtime.gcenable
        /home/terryb/go/src/runtime/mgc.go:206 +0x53

goroutine 4 [finalizer wait, 527 minutes]:
runtime.gopark(0x64d7a0, 0x720f00, 0x5f9920, 0xe, 0x14, 0x1)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820095718
sp=0xc8200956f0
runtime.goparkunlock(0x720f00, 0x5f9920, 0xe, 0x14, 0x1)
        /home/terryb/go/src/runtime/proc.go:191 +0x54 fp=0xc820095750
sp=0xc820095718
runtime.runfinq()
        /home/terryb/go/src/runtime/mfinal.go:154 +0xaa fp=0xc8200957c0
sp=0xc820095750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200957c8 sp=0xc8200957c0
created by runtime.createfing
        /home/terryb/go/src/runtime/mfinal.go:135 +0x60

goroutine 6 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b1680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820096750
sp=0xc820096728
runtime.gcBgMarkWorker(0xc820024000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200967b8
sp=0xc820096750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200967c0 sp=0xc8200967b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 17 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820ea8480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820090750
sp=0xc820090728
runtime.gcBgMarkWorker(0xc820025500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200907b8
sp=0xc820090750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200907c0 sp=0xc8200907b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 7 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820e76000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820096f50
sp=0xc820096f28
runtime.gcBgMarkWorker(0xc820026a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820096fb8
sp=0xc820096f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820096fc0 sp=0xc820096fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 18 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820601680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820090f50
sp=0xc820090f28
runtime.gcBgMarkWorker(0xc820028000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820090fb8
sp=0xc820090f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820090fc0 sp=0xc820090fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 8 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8213da000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820097750
sp=0xc820097728
runtime.gcBgMarkWorker(0xc820029500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200977b8
sp=0xc820097750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200977c0 sp=0xc8200977b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 33 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d2000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820504750
sp=0xc820504728
runtime.gcBgMarkWorker(0xc82002aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205047b8
sp=0xc820504750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205047c0 sp=0xc8205047b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 9 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d2d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820097f50
sp=0xc820097f28
runtime.gcBgMarkWorker(0xc82002c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820097fb8
sp=0xc820097f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820097fc0 sp=0xc820097fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 19 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820570d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820091750
sp=0xc820091728
runtime.gcBgMarkWorker(0xc82002d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200917b8
sp=0xc820091750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200917c0 sp=0xc8200917b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 10 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b0000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820500750
sp=0xc820500728
runtime.gcBgMarkWorker(0xc82002ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205007b8
sp=0xc820500750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205007c0 sp=0xc8205007b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 34 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820620900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820504f50
sp=0xc820504f28
runtime.gcBgMarkWorker(0xc820030000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820504fb8
sp=0xc820504f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820504fc0 sp=0xc820504fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 11 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d3b00, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820500f50
sp=0xc820500f28
runtime.gcBgMarkWorker(0xc820031500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820500fb8
sp=0xc820500f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820500fc0 sp=0xc820500fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 12 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820582000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820501750
sp=0xc820501728
runtime.gcBgMarkWorker(0xc820032a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205017b8
sp=0xc820501750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205017c0 sp=0xc8205017b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 13 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820596d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820501f50
sp=0xc820501f28
runtime.gcBgMarkWorker(0xc820034000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820501fb8
sp=0xc820501f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820501fc0 sp=0xc820501fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 14 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820601200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820502750
sp=0xc820502728
runtime.gcBgMarkWorker(0xc820035500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205027b8
sp=0xc820502750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205027c0 sp=0xc8205027b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 15 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820615680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820502f50
sp=0xc820502f28
runtime.gcBgMarkWorker(0xc820036a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820502fb8
sp=0xc820502f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820502fc0 sp=0xc820502fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 35 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f3680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820505750
sp=0xc820505728
runtime.gcBgMarkWorker(0xc820038000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205057b8
sp=0xc820505750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205057c0 sp=0xc8205057b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 36 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820124000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820505f50
sp=0xc820505f28
runtime.gcBgMarkWorker(0xc820039500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820505fb8
sp=0xc820505f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820505fc0 sp=0xc820505fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 37 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820e64000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820506750
sp=0xc820506728
runtime.gcBgMarkWorker(0xc82003aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205067b8
sp=0xc820506750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205067c0 sp=0xc8205067b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 16 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820620480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820503750
sp=0xc820503728
runtime.gcBgMarkWorker(0xc82003c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205037b8
sp=0xc820503750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205037c0 sp=0xc8205037b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 20 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f2000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820091f50
sp=0xc820091f28
runtime.gcBgMarkWorker(0xc82003d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820091fb8
sp=0xc820091f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820091fc0 sp=0xc820091fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 38 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820582900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820506f50
sp=0xc820506f28
runtime.gcBgMarkWorker(0xc82003ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820506fb8
sp=0xc820506f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820506fc0 sp=0xc820506fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 39 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820596900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820507750
sp=0xc820507728
runtime.gcBgMarkWorker(0xc820040000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205077b8
sp=0xc820507750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205077c0 sp=0xc8205077b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 40 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205bed80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820507f50
sp=0xc820507f28
runtime.gcBgMarkWorker(0xc820041500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820507fb8
sp=0xc820507f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820507fc0 sp=0xc820507fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 49 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820e4e000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820503f50
sp=0xc820503f28
runtime.gcBgMarkWorker(0xc820042a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820503fb8
sp=0xc820503f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820503fc0 sp=0xc820503fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 50 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820596480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820528750
sp=0xc820528728
runtime.gcBgMarkWorker(0xc820044000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205287b8
sp=0xc820528750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205287c0 sp=0xc8205287b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 51 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820596000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820528f50
sp=0xc820528f28
runtime.gcBgMarkWorker(0xc820045500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820528fb8
sp=0xc820528f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820528fc0 sp=0xc820528fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 52 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f2900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820529750
sp=0xc820529728
runtime.gcBgMarkWorker(0xc820046a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205297b8
sp=0xc820529750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205297c0 sp=0xc8205297b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 53 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d3680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820529f50
sp=0xc820529f28
runtime.gcBgMarkWorker(0xc820048000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820529fb8
sp=0xc820529f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820529fc0 sp=0xc820529fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 54 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc82009b680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82052a750
sp=0xc82052a728
runtime.gcBgMarkWorker(0xc820049500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82052a7b8
sp=0xc82052a750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82052a7c0 sp=0xc82052a7b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 55 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f2480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82052af50
sp=0xc82052af28
runtime.gcBgMarkWorker(0xc82004aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82052afb8
sp=0xc82052af50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82052afc0 sp=0xc82052afb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 56 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b0900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82052b750
sp=0xc82052b728
runtime.gcBgMarkWorker(0xc82004c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82052b7b8
sp=0xc82052b750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82052b7c0 sp=0xc82052b7b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 57 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205bf200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82052bf50
sp=0xc82052bf28
runtime.gcBgMarkWorker(0xc82004d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82052bfb8
sp=0xc82052bf50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82052bfc0 sp=0xc82052bfb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 58 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820ea8000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820524750
sp=0xc820524728
runtime.gcBgMarkWorker(0xc82004ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205247b8
sp=0xc820524750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205247c0 sp=0xc8205247b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 41 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820ed6000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820538750
sp=0xc820538728
runtime.gcBgMarkWorker(0xc820050000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205387b8
sp=0xc820538750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205387c0 sp=0xc8205387b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 59 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc82009b200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820524f50
sp=0xc820524f28
runtime.gcBgMarkWorker(0xc820051500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820524fb8
sp=0xc820524f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820524fc0 sp=0xc820524fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 60 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820582480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820525750
sp=0xc820525728
runtime.gcBgMarkWorker(0xc820052a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205257b8
sp=0xc820525750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205257c0 sp=0xc8205257b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 61 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820601b00, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820525f50
sp=0xc820525f28
runtime.gcBgMarkWorker(0xc820054000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820525fb8
sp=0xc820525f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820525fc0 sp=0xc820525fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 62 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820e3e000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820526750
sp=0xc820526728
runtime.gcBgMarkWorker(0xc820055500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205267b8
sp=0xc820526750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205267c0 sp=0xc8205267b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 21 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8200c6000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820092750
sp=0xc820092728
runtime.gcBgMarkWorker(0xc820056a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200927b8
sp=0xc820092750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200927c0 sp=0xc8200927b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 42 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820ec8000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820538f50
sp=0xc820538f28
runtime.gcBgMarkWorker(0xc820058000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820538fb8
sp=0xc820538f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820538fc0 sp=0xc820538fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 63 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205de000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820526f50
sp=0xc820526f28
runtime.gcBgMarkWorker(0xc820059500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820526fb8
sp=0xc820526f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820526fc0 sp=0xc820526fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 64 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205be480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820527750
sp=0xc820527728
runtime.gcBgMarkWorker(0xc82005aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205277b8
sp=0xc820527750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205277c0 sp=0xc8205277b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 65 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820597200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820527f50
sp=0xc820527f28
runtime.gcBgMarkWorker(0xc82005c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820527fb8
sp=0xc820527f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820527fc0 sp=0xc820527fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 22 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820614000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820092f50
sp=0xc820092f28
runtime.gcBgMarkWorker(0xc82005d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820092fb8
sp=0xc820092f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820092fc0 sp=0xc820092fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 23 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820570000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820093750
sp=0xc820093728
runtime.gcBgMarkWorker(0xc82005ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8200937b8
sp=0xc820093750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8200937c0 sp=0xc8200937b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 24 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f2000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820093f50
sp=0xc820093f28
runtime.gcBgMarkWorker(0xc820060000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820093fb8
sp=0xc820093f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820093fc0 sp=0xc820093fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 43 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820614480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820539750
sp=0xc820539728
runtime.gcBgMarkWorker(0xc820061500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205397b8
sp=0xc820539750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205397c0 sp=0xc8205397b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 44 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205be900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820539f50
sp=0xc820539f28
runtime.gcBgMarkWorker(0xc820062a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820539fb8
sp=0xc820539f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820539fc0 sp=0xc820539fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 45 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f3200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82053a750
sp=0xc82053a728
runtime.gcBgMarkWorker(0xc820064000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82053a7b8
sp=0xc82053a750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82053a7c0 sp=0xc82053a7b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 46 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205de900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82053af50
sp=0xc82053af28
runtime.gcBgMarkWorker(0xc820065500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82053afb8
sp=0xc82053af50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82053afc0 sp=0xc82053afb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 47 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d3200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82053b750
sp=0xc82053b728
runtime.gcBgMarkWorker(0xc820066a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82053b7b8
sp=0xc82053b750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82053b7c0 sp=0xc82053b7b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 48 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205d2900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82053bf50
sp=0xc82053bf28
runtime.gcBgMarkWorker(0xc820068000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82053bfb8
sp=0xc82053bf50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82053bfc0 sp=0xc82053bfb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 81 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820600480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820534750
sp=0xc820534728
runtime.gcBgMarkWorker(0xc820069500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205347b8
sp=0xc820534750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205347c0 sp=0xc8205347b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 82 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b1200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820534f50
sp=0xc820534f28
runtime.gcBgMarkWorker(0xc82006aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820534fb8
sp=0xc820534f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820534fc0 sp=0xc820534fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 83 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820600000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820535750
sp=0xc820535728
runtime.gcBgMarkWorker(0xc82006c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205357b8
sp=0xc820535750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205357c0 sp=0xc8205357b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 84 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820615200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820535f50
sp=0xc820535f28
runtime.gcBgMarkWorker(0xc82006d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820535fb8
sp=0xc820535f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820535fc0 sp=0xc820535fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 85 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b0d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820536750
sp=0xc820536728
runtime.gcBgMarkWorker(0xc82006ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205367b8
sp=0xc820536750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205367c0 sp=0xc8205367b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 86 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc821458000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820536f50
sp=0xc820536f28
runtime.gcBgMarkWorker(0xc820070000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820536fb8
sp=0xc820536f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820536fc0 sp=0xc820536fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 87 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc82009a900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820537750
sp=0xc820537728
runtime.gcBgMarkWorker(0xc820071500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205377b8
sp=0xc820537750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205377c0 sp=0xc8205377b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 88 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820614d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820537f50
sp=0xc820537f28
runtime.gcBgMarkWorker(0xc820072a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820537fb8
sp=0xc820537f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820537fc0 sp=0xc820537fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 25 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205f3b00, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820554750
sp=0xc820554728
runtime.gcBgMarkWorker(0xc820074000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205547b8
sp=0xc820554750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205547c0 sp=0xc8205547b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 89 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205be480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820550750
sp=0xc820550728
runtime.gcBgMarkWorker(0xc820075500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205507b8
sp=0xc820550750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205507c0 sp=0xc8205507b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 90 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205bf680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820550f50
sp=0xc820550f28
runtime.gcBgMarkWorker(0xc820076a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820550fb8
sp=0xc820550f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820550fc0 sp=0xc820550fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 91 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820614900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820551750
sp=0xc820551728
runtime.gcBgMarkWorker(0xc820078000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205517b8
sp=0xc820551750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205517c0 sp=0xc8205517b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 92 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820600d80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820551f50
sp=0xc820551f28
runtime.gcBgMarkWorker(0xc820079500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820551fb8
sp=0xc820551f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820551fc0 sp=0xc820551fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 93 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205be000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820552750
sp=0xc820552728
runtime.gcBgMarkWorker(0xc82007aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205527b8
sp=0xc820552750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205527c0 sp=0xc8205527b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 26 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205bf680, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820554f50
sp=0xc820554f28
runtime.gcBgMarkWorker(0xc82007c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820554fb8
sp=0xc820554f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820554fc0 sp=0xc820554fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 94 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820615b00, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820552f50
sp=0xc820552f28
runtime.gcBgMarkWorker(0xc82007d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820552fb8
sp=0xc820552f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820552fc0 sp=0xc820552fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 95 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205de480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820553750
sp=0xc820553728
runtime.gcBgMarkWorker(0xc82007ea00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205537b8
sp=0xc820553750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205537c0 sp=0xc8205537b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 96 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820614000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820553f50
sp=0xc820553f28
runtime.gcBgMarkWorker(0xc820080000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820553fb8
sp=0xc820553f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820553fc0 sp=0xc820553fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 97 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820570480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820562750
sp=0xc820562728
runtime.gcBgMarkWorker(0xc820081500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205627b8
sp=0xc820562750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205627c0 sp=0xc8205627b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 27 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820124900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820555750
sp=0xc820555728
runtime.gcBgMarkWorker(0xc820082a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205557b8
sp=0xc820555750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205557c0 sp=0xc8205557b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 98 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820571200, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820562f50
sp=0xc820562f28
runtime.gcBgMarkWorker(0xc820084000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820562fb8
sp=0xc820562f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820562fc0 sp=0xc820562fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 99 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc821312000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820563750
sp=0xc820563728
runtime.gcBgMarkWorker(0xc820085500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205637b8
sp=0xc820563750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205637c0 sp=0xc8205637b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 66 [mark worker (idle)]:
runtime.gopark(0x64d658, 0x6fdb80, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82055e750
sp=0xc82055e728
runtime.gcBgMarkWorker(0xc820086a00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82055e7b8
sp=0xc82055e750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82055e7c0 sp=0xc82055e7b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 67 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820e3c480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc82055ef50
sp=0xc82055ef28
runtime.gcBgMarkWorker(0xc820088000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc82055efb8
sp=0xc82055ef50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc82055efc0 sp=0xc82055efb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 28 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8213e4000, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820555f50
sp=0xc820555f28
runtime.gcBgMarkWorker(0xc820089500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820555fb8
sp=0xc820555f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820555fc0 sp=0xc820555fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 29 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820570900, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820556750
sp=0xc820556728
runtime.gcBgMarkWorker(0xc82008aa00)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205567b8
sp=0xc820556750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205567c0 sp=0xc8205567b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 30 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc8205b0480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820556f50
sp=0xc820556f28
runtime.gcBgMarkWorker(0xc82008c000)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc820556fb8
sp=0xc820556f50
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc820556fc0 sp=0xc820556fb8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 31 [mark worker (idle)]:
runtime.gopark(0x64d658, 0xc820124480, 0x61b430, 0x12, 0x14, 0x0)
        /home/terryb/go/src/runtime/proc.go:185 +0x163 fp=0xc820557750
sp=0xc820557728
runtime.gcBgMarkWorker(0xc82008d500)
        /home/terryb/go/src/runtime/mgc.go:1289 +0xf7 fp=0xc8205577b8
sp=0xc820557750
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205577c0 sp=0xc8205577b8
created by runtime.gcBgMarkStartWorkers
        /home/terryb/go/src/runtime/mgc.go:1239 +0x93

goroutine 113 [runnable]:
runtime.notetsleepg(0x6fd4b8, 0x17828, 0x16)
        /home/terryb/go/src/runtime/lock_futex.go:202 +0x4e
fp=0xc820561738 sp=0xc820561710
runtime.timerproc()
        /home/terryb/go/src/runtime/time.go:209 +0xde fp=0xc8205617c0
sp=0xc820561738
runtime.goexit()
        /home/terryb/go/src/runtime/asm_amd64.s:1696 +0x1
fp=0xc8205617c8 sp=0xc8205617c0
created by runtime.addtimerLocked
        /home/terryb/go/src/runtime/time.go:116 +0x11f
@ianlancetaylor ianlancetaylor added this to the Go1.5.2 milestone Nov 13, 2015
@ianlancetaylor
Copy link
Member

The crash is because munmap is failing. When munmap fails, the code in sys_linux_amd64.s crashes the program. This is simple but not especially helpful, especially since the errno value is lost.

Just from looking at the code I think it's suspicious that the call to sysFree in gcCopySpans uses len(work.spans). I think it needs to use cap(work.spans). I could imagine that that could cause this problem in certain circumstances.

CC @aclements @RLH

@kortschak
Copy link
Contributor Author

The user has re-run the above command with the same result, so this looks pretty reproducible. The input data file is large and closed so I can't post it here, but I can try fixes when they become available.

@mwhudson
Copy link
Contributor

I guess you could ask the user to run it under strace... Taking a quick squizz at the kernel source for munmap makes me thing it miiiiiiiiiight be a version of 12233 (esp if munmap is returning -ENOMEM)

@mwhudson
Copy link
Contributor

Ah yeah, you could also ask the user to try with a version built from current tip?

@kortschak
Copy link
Contributor Author

Today I asked him to try with the change Ian suggested, I'll post with the results of that when I hear back. I'll also ask if he's able to try the things you've suggested (I'll probably go over and do those).

@kortschak
Copy link
Contributor Author

The change of len(work.spans) => cap(work.spans) makes no difference.

@rsc
Copy link
Contributor

rsc commented Nov 17, 2015

I believe this is a duplicate of #12233. Looking at the Linux kernel source, the primary failure mode of munmap is EINVAL for invalid arguments, but these arguments look fine. A secondary failure mode, however, is ENOMEM when too many VMA segments would be created, and that's exactly the problem #12233 was running into that @aclements fixed. That fix will be in Go 1.5.2.

If you're feeling adventurous, you can 'git fetch && git checkout release-branch.go1.5' and make.bash to get Go 1.5.1 + some of the patches we've queued for 1.5.2, including the VMA fragmentation fix.

@rsc rsc changed the title runtime: munmap system call fails unexpectedly runtime: munmap failure in program with very large heap Nov 17, 2015
@kortschak
Copy link
Contributor Author

I've just started the run with strace, so I'll leave that going until failure. The failure takes more than six hours of run time, so I'll try the patches tomorrow. The user is being very patient with me.

@rsc rsc changed the title runtime: munmap failure in program with very large heap runtime: munmap failure in program with very large heap (dup #12233?) Nov 17, 2015
@aclements
Copy link
Member

I flipped through the munmap code and agree with Russ' assessment. The only other way I found for munmap to fail is for the kernel itself to run out of memory.

Another way you can test this without patching in 1.5.2 is to run sysctl vm.max_map_count=131072 as root. This will double the limit on the number of mapped areas. But patching in 1.5.2 would be a better test if that's easy enough.

@kortschak
Copy link
Contributor Author

I'll wait for the report back from the user and then organise this for later today.

@kortschak
Copy link
Contributor Author

No munmap returned non-success. Here is the ~100 strace lines prior to the panic:

futex(0xc820760110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc820760110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0xc82076c110, FUTEX_WAKE, 1)      = 1
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAIT, 2, NULL)    = -1 EAGAIN (Resource temporarily unavailable)
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0xc820760e90, FUTEX_WAKE, 1)      = 1
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
read(3, "\tpals\thit\t467808\t468458\t391.00\t+"..., 4087) = 4087
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
read(3, "90115\t277.00\t+\t.\tTarget scf00075"..., 4071) = 4071
read(3, "4726\t485384\t429.00\t+\t.\tTarget sc"..., 4075) = 4075
read(3, ".00\t+\t.\tTarget scf000755 377089 "..., 4058) = 4058
read(3, "341\t227.00\t+\t.\tTarget scf000755 "..., 4071) = 4071
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
read(3, "\thit\t1731687\t1732199\t256.00\t+\t.\t"..., 4082) = 4082
read(3, "0342\tpals\thit\t972611\t973017\t253."..., 4091) = 4091
read(3, "84\nscf000342\tpals\thit\t1314131\t13"..., 4010) = 4010
read(3, "19\t203.00\t+\t.\tTarget scf000075 1"..., 4066) = 4066
read(3, "628470\t1628951\t153.00\t+\t.\tTarget"..., 4076) = 4076
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
read(3, "it\t1246969\t1247461\t259.00\t+\t.\tTa"..., 4080) = 4080
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULL)    = 0
futex(0xc82009ae90, FUTEX_WAKE, 1)      = 1
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
read(3, "\thit\t141582\t142007\t240.00\t-\t.\tTa"..., 4082) = 4082
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
sched_yield()                           = 0
futex(0x6fd640, FUTEX_WAKE, 1)          = 0
futex(0x6fdc90, FUTEX_WAIT, 0, NULLfatal error: unexpected signal during runtime execution
[signal 0xb code=0x1 addr=0xf1 pc=0x45addb]

runtime stack:
runtime.throw(0x635900, 0x2a)
        /home/terryb/go/src/runtime/panic.go:527 +0x90 fp=0xc8208f1e68 sp=0xc8208f1e50
runtime.sigpanic()
        /home/terryb/go/src/runtime/sigpanic_unix.go:12 +0x5a fp=0xc8208f1eb8 sp=0xc8208f1e68
runtime.munmap(0x7f5e563b4000, 0x1a407b0, 0x41c41f, 0x7f5e563b4000, 0x1a407b0, 0x723960, 0x7f5e563b4000, 0x3480f6, 0x36bc9a, 0x41bc3c, ...)
        /home/terryb/go/src/runtime/sys_linux_amd64.s:266 +0x1b fp=0xc8208f1ec0 sp=0xc8208f1eb8
runtime.sysFree(0x7f5e563b4000, 0x1a407b0, 0x723960)
        /home/terryb/go/src/runtime/mem_linux.go:103 +0x34 fp=0xc8208f1ed8 sp=0xc8208f1ec0
runtime.gcCopySpans()
        /home/terryb/go/src/runtime/mgc.go:1600 +0xdf fp=0xc8208f1f10 sp=0xc8208f1ed8
runtime.gcMark(0x7e8b896198975e)
        /home/terryb/go/src/runtime/mgc.go:1415 +0x5c fp=0xc8208f1f78 sp=0xc8208f1f10
runtime.gc.func3()
        /home/terryb/go/src/runtime/mgc.go:1089 +0x23 fp=0xc8208f1f88 sp=0xc8208f1f78
runtime.systemstack(0xc820086a00)
        /home/terryb/go/src/runtime/asm_amd64.s:262 +0x79 fp=0xc8208f1f90 sp=0xc8208f1f88
runtime.mstart()
        /home/terryb/go/src/runtime/proc1.go:674 fp=0xc8208f1f98 sp=0xc8208f1f90

@aclements
Copy link
Member

Thanks for the strace output. Unfortunately, it looks like you ran strace without -f, so it only got the system calls from one thread and it wasn't the thread that caused the crash :(

In addition to -f, you may want to run with -e mmap,mmap2,munmap to filter down to just those calls. Otherwise your log may get very large after a few hours.

Alternatively, since it seems like this is fully reproducible (but somewhat painful) and it's highly likely 1.5.2 fixes this, you could just try 1.5.2.

@rsc
Copy link
Contributor

rsc commented Nov 18, 2015

Yes, don't worry about strace. Just run against release-branch.go1.5 (or wait for 1.5.2).

@rsc rsc closed this as completed Nov 18, 2015
@rsc
Copy link
Contributor

rsc commented Nov 18, 2015

Closing as dup of #12233.

@kortschak
Copy link
Contributor Author

Thanks for the strace output. Unfortunately, it looks like you ran strace without -f, so it only got the system calls from one thread and it wasn't the thread that caused the crash :(

Sorry about that; I don't often use strace. The program is running under the release branch as we speak, I will post back when I know the results.

@kortschak
Copy link
Contributor Author

The go1.5 release-branch patches fix the problem.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants