Skip to content

Crash -- program exceeds 10000-thread limit #12826

Open
@keithchew

Description

Running on v2.60.9, just encountered this:

runtime: program exceeds 10000-thread limit
fatal error: thread exhaustion

runtime stack:
runtime.throw({0x298f5ef?, 0x4a2ac0?})
	runtime/panic.go:1023 +0x5c fp=0x7f9710072cb8 sp=0x7f9710072c88 pc=0x468c5c
runtime.checkmcount()
	runtime/proc.go:868 +0x8e fp=0x7f9710072ce0 sp=0x7f9710072cb8 pc=0x46dace
runtime.mReserveID()
	runtime/proc.go:884 +0x2f fp=0x7f9710072d08 sp=0x7f9710072ce0 pc=0x46db0f
runtime.startm(0xc000064008?, 0x0, 0x0)
	runtime/proc.go:2862 +0x111 fp=0x7f9710072d58 sp=0x7f9710072d08 pc=0x4710b1
runtime.handoffp(0x7f97ffffffff?)
	runtime/proc.go:2911 +0x336 fp=0x7f9710072d80 sp=0x7f9710072d58 pc=0x4715b6
runtime.retake(0x3b71e6e03ef1)
	runtime/proc.go:6165 +0x23d fp=0x7f9710072de0 sp=0x7f9710072d80 pc=0x4793dd
runtime.sysmon()
	runtime/proc.go:6071 +0x345 fp=0x7f9710072e48 sp=0x7f9710072de0 pc=0x479085
runtime.mstart1()
	runtime/proc.go:1729 +0x93 fp=0x7f9710072e70 sp=0x7f9710072e48 pc=0x46f5f3
runtime.mstart0()
	runtime/proc.go:1686 +0x76 fp=0x7f9710072ea0 sp=0x7f9710072e70 pc=0x46f536
runtime.mstart()
	runtime/asm_amd64.s:394 +0x5 fp=0x7f9710072ea8 sp=0x7f9710072ea0 pc=0x4a2ac5

goroutine 1 gp=0xc0000081c0 m=nil [chan receive, 497 minutes]:
runtime.gopark(0xc002bed788?, 0x475f0b?, 0x68?, 0xd7?, 0x475f40?)
	runtime/proc.go:402 +0xce fp=0xc0f31d9750 sp=0xc0f31d9730 pc=0x46c84e
runtime.chanrecv(0xc000f86060, 0x0, 0x1)
	runtime/chan.go:583 +0x3bf fp=0xc0f31d97c8 sp=0xc0f31d9750 pc=0x4352ff
runtime.chanrecv1(0xc0007dc0e0?, 0xc000a337c0?)
	runtime/chan.go:442 +0x12 fp=0xc0f31d97f0 sp=0xc0f31d97c8 pc=0x434f12
github.com/ledgerwatch/erigon/node.(*Node).Wait(...)
	github.com/ledgerwatch/erigon/node/node.go:272
github.com/ledgerwatch/erigon/turbo/node.(*ErigonNode).Serve(0xc0fee219a0)
	github.com/ledgerwatch/erigon/turbo/node/node.go:34 +0x6e fp=0xc0f31d9840 sp=0xc0f31d97f0 pc=0x224adee
main.runErigon(0xc000f71f40)
	github.com/ledgerwatch/erigon/cmd/erigon/main.go:74 +0x405 fp=0xc0f31d9ab8 sp=0xc0f31d9840 pc=0x2266c45
github.com/ledgerwatch/erigon/turbo/app.MakeApp.func1(0xc000f71f40)
	github.com/ledgerwatch/erigon/turbo/app/make_app.go:54 +0x17f fp=0xc0f31d9be0 sp=0xc0f31d9ab8 pc=0x225b0ff
github.com/urfave/cli/v2.(*Command).Run(0xc000b411e0, 0xc000f71f40, {0xc000138008, 0x21, 0x23})
	github.com/urfave/cli/v2@v2.27.2/command.go:276 +0x97d fp=0xc0f31d9e68 sp=0xc0f31d9be0 pc=0x80537d
github.com/urfave/cli/v2.(*App).RunContext(0xc000f78800, {0x31eb760, 0x52181e0}, {0xc000138008, 0x21, 0x23})
	github.com/urfave/cli/v2@v2.27.2/app.go:333 +0x58b fp=0xc0f31d9ec8 sp=0xc0f31d9e68 pc=0x801cab
github.com/urfave/cli/v2.(*App).Run(...)
	github.com/urfave/cli/v2@v2.27.2/app.go:307
main.main()
	github.com/ledgerwatch/erigon/cmd/erigon/main.go:34 +0x85 fp=0xc0f31d9f50 sp=0xc0f31d9ec8 pc=0x2266765
runtime.main()
	runtime/proc.go:271 +0x29d fp=0xc0f31d9fe0 sp=0xc0f31d9f50 pc=0x46c3fd
runtime.goexit({})
	runtime/asm_amd64.s:1695 +0x1 fp=0xc0f31d9fe8 sp=0xc0f31d9fe0 pc=0x4a4b81

goroutine 2 gp=0xc000008c40 m=nil [force gc (idle), 497 minutes]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:402 +0xce fp=0xc000076fa8 sp=0xc000076f88 pc=0x46c84e
runtime.goparkunlock(...)
	runtime/proc.go:408
runtime.forcegchelper()
	runtime/proc.go:326 +0xb3 fp=0xc000076fe0 sp=0xc000076fa8 pc=0x46c6b3
runtime.goexit({})
	runtime/asm_amd64.s:1695 +0x1 fp=0xc000076fe8 sp=0xc000076fe0 pc=0x4a4b81
created by runtime.init.6 in goroutine 1
	runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000009180 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
	runtime/proc.go:402 +0xce fp=0xc000077780 sp=0xc000077760 pc=0x46c84e
runtime.goparkunlock(...)
	runtime/proc.go:408
runtime.bgsweep(0xc0000a0000)
	runtime/mgcsweep.go:318 +0xdf fp=0xc0000777c8 sp=0xc000077780 pc=0x45525f
runtime.gcenable.gowrap1()
	runtime/mgc.go:203 +0x25 fp=0xc0000777e0 sp=0xc0000777c8 pc=0x449a85
runtime.goexit({})
	runtime/asm_amd64.s:1695 +0x1 fp=0xc0000777e8 sp=0xc0000777e0 pc=0x4a4b81
created by runtime.gcenable in goroutine 1
	runtime/mgc.go:203 +0x66

...

goroutine 92605051 gp=0xc146e9b340 m=3853 mp=0xc16db1e008 [syscall, locked to thread]:
runtime.cgocall(0x226b190, 0xc0a719ebd8)
	runtime/cgocall.go:157 +0x4b fp=0xc0a719ebb0 sp=0xc0a719eb78 pc=0x432ceb
github.com/erigontech/mdbx-go/mdbx._Cfunc_mdbx_txn_begin(0x7f96fc0192d0, 0x0, 0x0, 0xc0e723dd48)
	_cgo_gotypes.go:939 +0x4b fp=0xc0a719ebd8 sp=0xc0a719ebb0 pc=0x9ee3ab
github.com/erigontech/mdbx-go/mdbx.beginTxn.func1(0xa4d225?, 0x0, 0x0, 0x43585e?)
	github.com/erigontech/mdbx-go@v0.27.24/mdbx/txn.go:103 +0xb2 fp=0xc0a719ec30 sp=0xc0a719ebd8 pc=0x9f5272
github.com/erigontech/mdbx-go/mdbx.beginTxn(0xc10199d1d0, 0x0, 0x0)
	github.com/erigontech/mdbx-go@v0.27.24/mdbx/txn.go:103 +0x176 fp=0xc0a719ec78 sp=0xc0a719ec30 pc=0x9f5076
github.com/erigontech/mdbx-go/mdbx.(*Env).BeginTxn(...)
	github.com/erigontech/mdbx-go@v0.27.24/mdbx/env.go:528
github.com/ledgerwatch/erigon-lib/kv/mdbx.(*MdbxKV).beginRw(0xc100560f00, {0x31ebc08, 0xc10199e6e0}, 0x0)
	github.com/ledgerwatch/erigon-lib@v1.0.0/kv/mdbx/kv_mdbx.go:798 +0x90 fp=0xc0a719ed30 sp=0xc0a719ec78 pc=0xa4de50
github.com/ledgerwatch/erigon-lib/kv/mdbx.(*MdbxKV).BeginRw(...)
	github.com/ledgerwatch/erigon-lib@v1.0.0/kv/mdbx/kv_mdbx.go:780
github.com/ledgerwatch/erigon-lib/kv/mdbx.(*MdbxKV).Update(0x10?, {0x31ebc08?, 0xc10199e6e0?}, 0xc0e723dd00)
	github.com/ledgerwatch/erigon-lib@v1.0.0/kv/mdbx/kv_mdbx.go:934 +0x45 fp=0xc0a719eda8 sp=0xc0a719ed30 pc=0xa4ebc5
github.com/ledgerwatch/erigon/p2p/enode.(*DB).storeInt64(0xc1019fedc0, {0xc0e721d980, 0x3f, 0x3f}, 0x95)
	github.com/ledgerwatch/erigon/p2p/enode/nodedb.go:263 +0x12c fp=0xc0a719ede8 sp=0xc0a719eda8 pc=0x13c0a8c
github.com/ledgerwatch/erigon/p2p/enode.(*DB).UpdateFindFails(0xc1019fedc0, {0xe5, 0xa0, 0x70, 0x50, 0x2f, 0x70, 0x11, 0x47, 0x30, ...}, ...)
	github.com/ledgerwatch/erigon/p2p/enode/nodedb.go:525 +0xf3 fp=0xc0a719ee58 sp=0xc0a719ede8 pc=0x13c3373
github.com/ledgerwatch/erigon/p2p/discover.(*lookup).query(0xc19ab5e120, 0xc15afbbc20, 0xc1b4d7f440)
	github.com/ledgerwatch/erigon/p2p/discover/lookup.go:171 +0x265 fp=0xc0a719efb8 sp=0xc0a719ee58 pc=0x13cff05
github.com/ledgerwatch/erigon/p2p/discover.(*lookup).startQueries.gowrap1()
	github.com/ledgerwatch/erigon/p2p/discover/lookup.go:128 +0x28 fp=0xc0a719efe0 sp=0xc0a719efb8 pc=0x13cfb08
runtime.goexit({})
	runtime/asm_amd64.s:1695 +0x1 fp=0xc0a719efe8 sp=0xc0a719efe0 pc=0x4a4b81
created by github.com/ledgerwatch/erigon/p2p/discover.(*lookup).startQueries in goroutine 92544942
	github.com/ledgerwatch/erigon/p2p/discover/lookup.go:128 +0x219

goroutine 92610822 gp=0xc146e9b500 m=nil [sync.Cond.Wait]:
runtime.gopark(0xc0803a9508?, 0xc162d88000?, 0x20?, 0x6f?, 0xc04a2d6f38?)
	runtime/proc.go:402 +0xce fp=0xc04a2d6eb8 sp=0xc04a2d6e98 pc=0x46c84e
runtime.goparkunlock(...)
	runtime/proc.go:408
sync.runtime_notifyListWait(0xc0e2fa6880, 0x0)
	runtime/sema.go:569 +0x159 fp=0xc04a2d6f08 sp=0xc04a2d6eb8 pc=0x4a0df9
sync.(*Cond).Wait(0x2e732a87e9d4940f?)
	sync/cond.go:70 +0x85 fp=0xc04a2d6f48 sp=0xc04a2d6f08 pc=0x4c4985
github.com/anacrolix/torrent/mse.(*handshake).writer(0xc0e2fa6780)
	github.com/anacrolix/torrent@v1.52.6-0.20231201115409-7ea994b6bbd8/mse/mse.go:261 +0x177 fp=0xc04a2d6fc8 sp=0xc04a2d6f48 pc=0xd6a6d7
github.com/anacrolix/torrent/mse.(*handshake).Do.gowrap1()
	github.com/anacrolix/torrent@v1.52.6-0.20231201115409-7ea994b6bbd8/mse/mse.go:517 +0x25 fp=0xc04a2d6fe0 sp=0xc04a2d6fc8 pc=0xd6d3e5
runtime.goexit({})
	runtime/asm_amd64.s:1695 +0x1 fp=0xc04a2d6fe8 sp=0xc04a2d6fe0 pc=0x4a4b81
created by github.com/anacrolix/torrent/mse.(*handshake).Do in goroutine 92610821
	github.com/anacrolix/torrent@v1.52.6-0.20231201115409-7ea994b6bbd8/mse/mse.go:517 +0xe5

Note that this erigon node is running in an AMD (Ryzen 5 7600x) system, other nodes on Intel were OK, although this could just be a coincidence...

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions