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: Increase GC concurrency commit results in crash. #9560

Closed
dajohi opened this issue Jan 10, 2015 · 1 comment
Closed

runtime: Increase GC concurrency commit results in crash. #9560

dajohi opened this issue Jan 10, 2015 · 1 comment

Comments

@dajohi
Copy link

dajohi commented Jan 10, 2015

Commit db7fd1c causes a runtime failure on startup of btcd. The previous commit of f21ee1e works fine.

This is on OpenBSD 5.7-beta as of this morning.

16:06:18 2015-01-10 [INF] BTCD: Version 0.9.0-beta
16:06:18 2015-01-10 [INF] BTCD: Profile server listening on :6061
16:06:18 2015-01-10 [INF] BTCD: Loading block database from '/btcd/testnet/blocks_leveldb'
16:06:18 2015-01-10 [INF] BTCD: Block database loaded with block height 317698
16:06:18 2015-01-10 [INF] BMGR: Generating initial block node index.  This may take a while...
runtime:greyobject: checkmarks finds unexpected unmarked object obj=0xc208b81060, mbits->bits=0x1 *mbits->bitp=0xf9
runtime: found obj at *(0xc208b35a40+0x8)
runtime:greyobject Span: obj=0xc208b81060 k=0x61045c0 s.start=0xc208b80000 s.limit=0xc208b82000 s.sizeclass=1 s.elemsize=8
 *(obj+0) = 0xc208b35b20
fatal error: checkmark found unmarked object
runtime stack:
runtime.throw(0xb92ed0, 0x1f)
        /home/dhill/git/go/src/runtime/panic.go:508 +0x98 fp=0x297018270 sp=0x297018258
runtime.greyobject(0xc208b81060, 0xc208b35a40, 0x8, 0x297018360, 0x2a04d9000, 0x2a04d9000)
        /home/dhill/git/go/src/runtime/mgc.go:440 +0x2c9 fp=0x2970182d0 sp=0x297018270
runtime.scanobject(0xc208b35a40, 0xca5c0, 0x0, 0x2a04d9000, 0x2a04d9000)
        /home/dhill/git/go/src/runtime/mgc.go:573 +0x3f0 fp=0x297018380 sp=0x2970182d0
runtime.drainworkbuf(0x2a04d9000, 0x0)
        /home/dhill/git/go/src/runtime/mgc.go:650 +0x184 fp=0x2970183b0 sp=0x297018380
runtime.scanblock(0xc208439608, 0x28, 0xc39510)
        /home/dhill/git/go/src/runtime/mgc.go:610 +0xe5 fp=0x2970183f8 sp=0x2970183b0
runtime.scanframe(0x297018548, 0x0, 0x101)
        /home/dhill/git/go/src/runtime/mgc.go:998 +0x1d0 fp=0x297018490 sp=0x2970183f8
runtime.gentraceback(0x48a220, 0xc2084393f8, 0x0, 0xc208000240, 0x0, 0x0, 0x7fffffff, 0xc6d050, 0x0, 0x0, ...)
        /home/dhill/git/go/src/runtime/traceback.go:282 +0x7cd fp=0x2970185a0 sp=0x297018490
runtime.scanstack(0xc208000240)
        /home/dhill/git/go/src/runtime/mgc.go:1032 +0x214 fp=0x297018618 sp=0x2970185a0
runtime.gcphasework(0xc208000240)
        /home/dhill/git/go/src/runtime/mgc.go:1178 +0x9c fp=0x297018630 sp=0x297018618
runtime.stopg(0xc208000240, 0x1)
        /home/dhill/git/go/src/runtime/proc1.go:447 +0x91 fp=0x297018650 sp=0x297018630
runtime.markroot(0xc20800e000, 0x5)
        /home/dhill/git/go/src/runtime/mgc.go:747 +0x161 fp=0x2970186c0 sp=0x297018650
runtime.parfordo(0xc20800e000)
        /home/dhill/git/go/src/runtime/parfor.go:84 +0x1af fp=0x297018730 sp=0x2970186c0
runtime.gchelper()
        /home/dhill/git/go/src/runtime/mgc.go:1560 +0x4b fp=0x297018760 sp=0x297018730
runtime.stopm()
        /home/dhill/git/go/src/runtime/proc1.go:1052 +0x164 fp=0x297018788 sp=0x297018760
runtime.exitsyscall0(0xc2080b0b40)
        /home/dhill/git/go/src/runtime/proc1.go:1859 +0x153 fp=0x2970187b8 sp=0x297018788
runtime.mcall(0x2d99ebecc)
        /home/dhill/git/go/src/runtime/asm_amd64.s:187 +0x5a fp=0x2970187c8 sp=0x2970187b8

goroutine 1 [runnable]:
runtime.newobject(0xa8de00, 0xc20839fb40)
        /home/dhill/git/go/src/runtime/malloc.go:413 fp=0xc208439400 sp=0xc2084393f8
github.com/conformal/btcdb/ldb.(*LevelDb).FetchBlockHeaderBySha(0xc20806e000, 0xc20839fb40, 0x0, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcdb/ldb/block.go:64 +0x151 fp=0xc208439498 sp=0xc208439400
github.com/conformal/btcchain.(*BlockChain).loadBlockNode(0xc208086320, 0xc20839fb40, 0xc2083b5b20, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcchain/chain.go:404 +0x7d fp=0xc208439608 sp=0xc208439498
github.com/conformal/btcchain.(*BlockChain).GenerateInitialIndex(0xc208086320, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcchain/chain.go:381 +0x279 fp=0xc208439728 sp=0xc208439608
main.newBlockManager(0xc2080b1200, 0xc2080b1308, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcd/blockmanager.go:1366 +0x404 fp=0xc2084398f8 sp=0xc208439728
main.newServer(0xc2080b42a0, 0x2, 0x2, 0x2a04de9d0, 0xc20806e000, 0xf59e60, 0x8, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcd/server.go:1236 +0x110c fp=0xc208439e30 sp=0xc2084398f8
main.btcdMain(0x0, 0x0, 0x0)
        /home/dhill/.go/src/github.com/conformal/btcd/btcd.go:91 +0x805 fp=0xc208439f40 sp=0xc208439e30
main.main()
        /home/dhill/.go/src/github.com/conformal/btcd/btcd.go:151 +0x62 fp=0xc208439f98 sp=0xc208439f40
runtime.main()
        /home/dhill/git/go/src/runtime/proc.go:86 +0x1d3 fp=0xc208439fe0 sp=0xc208439f98
runtime.goexit()
        /home/dhill/git/go/src/runtime/asm_amd64.s:2430 +0x1 fp=0xc208439fe8 sp=0xc208439fe0

goroutine 2 [force gc (idle)]:
runtime.gopark(0xc6d028, 0xf62a30, 0xb34650, 0xf)
        /home/dhill/git/go/src/runtime/proc.go:151 +0x108 fp=0xc208018798 sp=0xc208018768
runtime.goparkunlock(0xf62a30, 0xb34650, 0xf)
        /home/dhill/git/go/src/runtime/proc.go:157 +0x48 fp=0xc2080187c0 sp=0xc208018798
runtime.forcegchelper()
        /home/dhill/git/go/src/runtime/proc.go:120 +0xce fp=0xc2080187e0 sp=0xc2080187c0
runtime.goexit()
        /home/dhill/git/go/src/runtime/asm_amd64.s:2430 +0x1 fp=0xc2080187e8 sp=0xc2080187e0
created by runtime.init·4
        /home/dhill/git/go/src/runtime/proc.go:108 +0x33
goroutine 3 [garbage collection]:
runtime.systemstack_switch()
        /home/dhill/git/go/src/runtime/asm_amd64.s:199 fp=0xc208018f48 sp=0xc208018f40
runtime.gcwork(0x0)
        /home/dhill/git/go/src/runtime/malloc.go:583 +0x2b9 fp=0xc208018fc0 sp=0xc208018f48
runtime.backgroundgc()
        /home/dhill/git/go/src/runtime/mgc0.go:87 +0x62 fp=0xc208018fe0 sp=0xc208018fc0
runtime.goexit()
        /home/dhill/git/go/src/runtime/asm_amd64.s:2430 +0x1 fp=0xc208018fe8 sp=0xc208018fe0
created by runtime.gogc
        /home/dhill/git/go/src/runtime/malloc.go:501 +0xe2

goroutine 4 [finalizer wait]:
runtime.gopark(0xc6d028, 0xf77d28, 0xb33af0, 0xe)
        /home/dhill/git/go/src/runtime/proc.go:151 +0x108 fp=0xc208019748 sp=0xc208019718
runtime.goparkunlock(0xf77d28, 0xb33af0, 0xe)
        /home/dhill/git/go/src/runtime/proc.go:157 +0x48 fp=0xc208019770 sp=0xc208019748
runtime.runfinq()
        /home/dhill/git/go/src/runtime/malloc.go:959 +0xb7 fp=0xc2080197e0 sp=0xc208019770
runtime.goexit()
        /home/dhill/git/go/src/runtime/asm_amd64.s:2430 +0x1 fp=0xc2080197e8 sp=0xc2080197e0
created by runtime.createfing
        /home/dhill/git/go/src/runtime/malloc.go:939 +0x68

....
@minux
Copy link
Member

minux commented Jan 10, 2015

We know that issue and people are working hard on it.
See #9309, Russ doesn't want issues opened for this.

The GC concurrency CL just exposes the underlying
issue better.

PS: Don't use tip in production.

@minux minux closed this as completed Jan 10, 2015
@mikioh mikioh changed the title Increase GC concurrency commit results in crash. runtime: Increase GC concurrency commit results in crash. Jan 11, 2015
@golang golang locked and limited conversation to collaborators Jun 25, 2016
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

3 participants