Skip to content

Instantly share code, notes, and snippets.

@vinibaggio
Created December 22, 2014 23:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vinibaggio/0e8be5f07b81dbdb49d6 to your computer and use it in GitHub Desktop.
Save vinibaggio/0e8be5f07b81dbdb49d6 to your computer and use it in GitHub Desktop.
GC crash in 1.4
$ go run bla.go
runtime: garbage collector found invalid heap pointer *(0x2081ce020+0x0)=0x1 s=nil
runtime: found *(0x2081b9ce0+0x28) = 0x2081ce020+0x0
fatal error: bad pointer
runtime stack:
runtime.throw(0x151ab9)
/usr/local/Cellar/go/1.4/libexec/src/runtime/panic.go:491 +0xad fp=0x7fff5fbff1a0 sp=0x7fff5fbff170
scanblock(0x2081b9ce0, 0x240, 0x1065e8)
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:412 +0x989 fp=0x7fff5fbff2e0 sp=0x7fff5fbff1a0
scanframe(0x7fff5fbff3e8, 0x0, 0x301)
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:719 +0x164 fp=0x7fff5fbff350 sp=0x7fff5fbff2e0
runtime.gentraceback(0x35ef0, 0x2081b9400, 0x0, 0x208188a20, 0x0, 0x0, 0x7fffffff, 0x7fff5fbff498, 0x0, 0x0, ...)
/usr/local/Cellar/go/1.4/libexec/src/runtime/traceback.go:311 +0x7a8 fp=0x7fff5fbff440 sp=0x7fff5fbff350
scanstack(0x208188a20)
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:777 +0x21c fp=0x7fff5fbff4b0 sp=0x7fff5fbff440
markroot(0x208198000, 0x9)
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:553 +0xe7 fp=0x7fff5fbff510 sp=0x7fff5fbff4b0
runtime.parfordo(0x208198000)
/usr/local/Cellar/go/1.4/libexec/src/runtime/parfor.c:76 +0xb2 fp=0x7fff5fbff590 sp=0x7fff5fbff510
gc(0x7fff5fbff6c8)
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:1439 +0x25e fp=0x7fff5fbff6a8 sp=0x7fff5fbff590
runtime.gc_m()
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:1368 +0xe0 fp=0x7fff5fbff6e0 sp=0x7fff5fbff6a8
runtime.onM(0x155470)
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:257 +0x68 fp=0x7fff5fbff6e8 sp=0x7fff5fbff6e0
runtime.mstart()
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.c:818 fp=0x7fff5fbff6f0 sp=0x7fff5fbff6e8
goroutine 5 [garbage collection]:
runtime.switchtoM()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:198 fp=0x2081b9408 sp=0x2081b9400
runtime.gogc(0x2200000000)
/usr/local/Cellar/go/1.4/libexec/src/runtime/malloc.go:469 +0x1cf fp=0x2081b9440 sp=0x2081b9408
runtime.mallocgc(0x80, 0xc7bc0, 0x0, 0x2081de028)
/usr/local/Cellar/go/1.4/libexec/src/runtime/malloc.go:341 +0x391 fp=0x2081b94f0 sp=0x2081b9440
runtime.newarray(0xc7bc0, 0x4, 0x2081de3f5)
/usr/local/Cellar/go/1.4/libexec/src/runtime/malloc.go:365 +0xc1 fp=0x2081b9528 sp=0x2081b94f0
runtime.makeslice(0x9fb00, 0x4, 0x4, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/runtime/slice.go:32 +0x15c fp=0x2081b9570 sp=0x2081b9528
time.loadZoneData(0x2081de000, 0x3f9, 0x400, 0x3f9, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/time/zoneinfo_read.go:133 +0x620 fp=0x2081b97c8 sp=0x2081b9570
time.loadZoneFile(0x0, 0x0, 0xe4970, 0xe, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/time/zoneinfo_read.go:210 +0x1dc fp=0x2081b9838 sp=0x2081b97c8
time.initLocal()
/usr/local/Cellar/go/1.4/libexec/src/time/zoneinfo_unix.go:59 +0x84 fp=0x2081b98a8 sp=0x2081b9838
sync.(*Once).Do(0x15c3e8, 0x107e20)
/usr/local/Cellar/go/1.4/libexec/src/sync/once.go:44 +0xd4 fp=0x2081b98c0 sp=0x2081b98a8
time.(*Location).get(0x155220, 0x8)
/usr/local/Cellar/go/1.4/libexec/src/time/zoneinfo.go:76 +0x5f fp=0x2081b98d8 sp=0x2081b98c0
time.Time.abs(0xecc2a98dd, 0x11390e6, 0x155220, 0x10)
/usr/local/Cellar/go/1.4/libexec/src/time/time.go:251 +0xc8 fp=0x2081b9928 sp=0x2081b98d8
time.Time.date(0xecc2a98dd, 0x11390e6, 0x155220, 0x2ffffff01, 0xd202, 0x2208189010, 0x208192266, 0x2081c6000)
/usr/local/Cellar/go/1.4/libexec/src/time/time.go:674 +0x3a fp=0x2081b9960 sp=0x2081b9928
time.Time.Date(0xecc2a98dd, 0x11390e6, 0x155220, 0x0, 0xda09, 0x208192260)
/usr/local/Cellar/go/1.4/libexec/src/time/time.go:291 +0x3f fp=0x2081b99a8 sp=0x2081b9960
log.(*Logger).formatHeader(0x2081d80a0, 0x2081d80d0, 0xecc2a98dd, 0x11390e6, 0x155220, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/log/log.go:84 +0x1f6 fp=0x2081b9a78 sp=0x2081b99a8
log.(*Logger).Output(0x2081d80a0, 0x2, 0x208192260, 0x6, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/log/log.go:148 +0x20c fp=0x2081b9b40 sp=0x2081b9a78
log.Println(0x2081b9bc8, 0x1, 0x1)
/usr/local/Cellar/go/1.4/libexec/src/log/log.go:282 +0x73 fp=0x2081b9b88 sp=0x2081b9b40
main.handler(0x1)
/Users/vinnyfuentes/code/tmp/bla.go:47 +0xda fp=0x2081b9bf8 sp=0x2081b9b88
runtime.call16(0x107af8, 0x2081ce020, 0x800000008)
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:401 +0x45 fp=0x2081b9c10 sp=0x2081b9bf8
reflect.Value.call(0xa64a0, 0x107af8, 0x13, 0xdd510, 0x4, 0x2081a6060, 0x1, 0x1, 0x0, 0x0, ...)
/usr/local/Cellar/go/1.4/libexec/src/reflect/value.go:419 +0x10e5 fp=0x2081b9f28 sp=0x2081b9c10
reflect.Value.Call(0xa64a0, 0x107af8, 0x13, 0x2081a6060, 0x1, 0x1, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.4/libexec/src/reflect/value.go:296 +0xbc fp=0x2081b9f88 sp=0x2081b9f28
main.func·001()
/Users/vinnyfuentes/code/tmp/bla.go:39 +0x4e fp=0x2081b9fe0 sp=0x2081b9f88
runtime.goexit()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:2232 +0x1 fp=0x2081b9fe8 sp=0x2081b9fe0
created by main.(*Bus).Emit
/Users/vinnyfuentes/code/tmp/bla.go:41 +0x393
goroutine 1 [semacquire]:
runtime.gopark(0x2e3d0, 0x15ac80, 0xe9b10, 0xa)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:130 +0x105 fp=0x2081a56a0 sp=0x2081a5670
runtime.goparkunlock(0x15ac80, 0xe9b10, 0xa)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:136 +0x48 fp=0x2081a56c8 sp=0x2081a56a0
runtime.semacquire(0x208192228, 0x208192201)
/usr/local/Cellar/go/1.4/libexec/src/runtime/sema.go:89 +0x22f fp=0x2081a5700 sp=0x2081a56c8
runtime.asyncsemacquire(0x208192228)
/usr/local/Cellar/go/1.4/libexec/src/runtime/sema.go:43 +0x2d fp=0x2081a5718 sp=0x2081a5700
sync.(*WaitGroup).Wait(0x2081a6080)
/usr/local/Cellar/go/1.4/libexec/src/sync/waitgroup.go:132 +0x169 fp=0x2081a5740 sp=0x2081a5718
main.main()
/Users/vinnyfuentes/code/tmp/bla.go:57 +0xf4 fp=0x2081a5798 sp=0x2081a5740
runtime.main()
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:63 +0xf3 fp=0x2081a57e0 sp=0x2081a5798
runtime.goexit()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:2232 +0x1 fp=0x2081a57e8 sp=0x2081a57e0
goroutine 2 [force gc (idle)]:
runtime.gopark(0x2e3d0, 0x155090, 0xe7730, 0xf)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:130 +0x105 fp=0x2081a2798 sp=0x2081a2768
runtime.goparkunlock(0x155090, 0xe7730, 0xf)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:136 +0x48 fp=0x2081a27c0 sp=0x2081a2798
runtime.forcegchelper()
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:99 +0xce fp=0x2081a27e0 sp=0x2081a27c0
runtime.goexit()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:2232 +0x1 fp=0x2081a27e8 sp=0x2081a27e0
created by runtime.init·4
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:87 +0x25
goroutine 3 [GC sweep wait]:
runtime.gopark(0x2e3d0, 0x15c338, 0xe4ef0, 0xd)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:130 +0x105 fp=0x2081a5f98 sp=0x2081a5f68
runtime.goparkunlock(0x15c338, 0xe4ef0, 0xd)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:136 +0x48 fp=0x2081a5fc0 sp=0x2081a5f98
runtime.bgsweep()
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.go:98 +0xbc fp=0x2081a5fe0 sp=0x2081a5fc0
runtime.goexit()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:2232 +0x1 fp=0x2081a5fe8 sp=0x2081a5fe0
created by gc
/usr/local/Cellar/go/1.4/libexec/src/runtime/mgc0.c:1383
goroutine 4 [finalizer wait]:
runtime.gopark(0x2e3d0, 0x15c330, 0xe72b0, 0xe)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:130 +0x105 fp=0x2081a1730 sp=0x2081a1700
runtime.goparkunlock(0x15c330, 0xe72b0, 0xe)
/usr/local/Cellar/go/1.4/libexec/src/runtime/proc.go:136 +0x48 fp=0x2081a1758 sp=0x2081a1730
runtime.runfinq()
/usr/local/Cellar/go/1.4/libexec/src/runtime/malloc.go:727 +0xba fp=0x2081a17e0 sp=0x2081a1758
runtime.goexit()
/usr/local/Cellar/go/1.4/libexec/src/runtime/asm_amd64.s:2232 +0x1 fp=0x2081a17e8 sp=0x2081a17e0
created by runtime.createfing
/usr/local/Cellar/go/1.4/libexec/src/runtime/malloc.go:707 +0x5e
exit status 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment