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

geth crashes while tracing a specific transaction #16426

Closed
Har01d opened this issue Apr 1, 2018 · 4 comments · Fixed by #22857
Closed

geth crashes while tracing a specific transaction #16426

Har01d opened this issue Apr 1, 2018 · 4 comments · Fixed by #22857

Comments

@Har01d
Copy link

Har01d commented Apr 1, 2018

Hello,

There’s transaction 0x0c10fafe0cdbfff32abfe53d57ec861d09986cc1050c850481f79b1a862bb10a with many layers of calls (see https://etherscan.io/vmtrace?txhash=0x0c10fafe0cdbfff32abfe53d57ec861d09986cc1050c850481f79b1a862bb10a&type=parity), and when calling something like debug.traceTransaction("0x0c10fafe0cdbfff32abfe53d57ec861d09986cc1050c850481f79b1a862bb10a", {tracer: "callTracer"}), geth suddenly crashes.

System information

Geth version: geth 1.8.2 (with --syncmode full --gcmode archive flags)
OS & Version: Ubuntu

Backtrace

SIGABRT: abort
PC=0x7f440dd10428 m=34 sigcode=18446744073709551610
signal arrived during cgo execution

goroutine 6242 [syscall, locked to thread]:
runtime.cgocall(0xcf89a0, 0xc4ed87fe08, 0xf9ec98)
	/usr/lib/go-1.9/src/runtime/cgocall.go:132 +0xe4 fp=0xc4ed87fdc8 sp=0xc4ed87fd88 pc=0x416f04
github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape%2ev3._Cfunc_duk_json_encode(0x7f43a4005130, 0x7f43ffffffff, 0x0)
	github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape.v3/_obj/_cgo_gotypes.go:2104 +0x4e fp=0xc4ed87fe08 sp=0xc4ed87fdc8 pc=0xa8baae
github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape%2ev3.(*Context).JsonEncode.func1(0x7f43a4005130, 0xc4ffffffff, 0x7f4300000000)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape.v3/api.go:749 +0x68 fp=0xc4ed87fe40 sp=0xc4ed87fe08 pc=0xa9cab8
github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape%2ev3.(*Context).JsonEncode(0xc4e463b478, 0xffffffffffffffff, 0xc4e463b478, 0x0)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/vendor/gopkg.in/olebedev/go-duktape.v3/api.go:749 +0x3b fp=0xc4ed87fe68 sp=0xc4ed87fe40 pc=0xa92f4b
github.com/ethereum/go-ethereum/eth/tracers.(*Tracer).call(0xc4c7e5aaa0, 0xf7bb8c, 0x6, 0xc4ed87ffe8, 0x2, 0x2, 0x0, 0x0, 0x0, 0x0, ...)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/eth/tracers/tracer.go:485 +0x230 fp=0xc4ed87fed8 sp=0xc4ed87fe68 pc=0xaa7da0
github.com/ethereum/go-ethereum/eth/tracers.(*Tracer).GetResult(0xc4c7e5aaa0, 0x184cba0, 0xc4e13f8ea0, 0xc4e5266438, 0x0, 0x0)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/eth/tracers/tracer.go:609 +0x522 fp=0xc4ed880078 sp=0xc4ed87fed8 pc=0xaa9332
github.com/ethereum/go-ethereum/eth.(*PrivateDebugAPI).traceTx(0xc43e0473d0, 0x1848140, 0xc4dcb39880, 0x184cba0, 0xc4e13f8ea0, 0x10068b0, 0x10068b8, 0xc4e492d540, 0xbd355efba711ec62, 0x3a367f8b73e249e, ...)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/eth/api_tracer.go:606 +0x448 fp=0xc4ed885278 sp=0xc4ed880078 pc=0xaca928
github.com/ethereum/go-ethereum/eth.(*PrivateDebugAPI).TraceTransaction(0xc43e0473d0, 0x1848140, 0xc4dcb39880, 0xf3ffdb0cfefa100c, 0x1d86ec573de5bf2a, 0x4850c05c16c9809, 0xab12b861a9bf781, 0xc4dc5b8920, 0x0, 0x0, ...)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/eth/api_tracer.go:549 +0x27b fp=0xc4ed8854a8 sp=0xc4ed885278 pc=0xaca37b
runtime.call128(0xc4ddf26270, 0xc440640298, 0xc44054f740, 0x4000000060)
	/usr/lib/go-1.9/src/runtime/asm_amd64.s:511 +0x52 fp=0xc4ed885538 sp=0xc4ed8854a8 pc=0x4705b2
reflect.Value.call(0xc44049d680, 0xc440640298, 0x13, 0xf79134, 0x4, 0xc44054f6e0, 0x4, 0x4, 0x0, 0xc44054f6e0, ...)
	/usr/lib/go-1.9/src/reflect/value.go:434 +0x905 fp=0xc4ed885810 sp=0xc4ed885538 pc=0x4d0fb5
reflect.Value.Call(0xc44049d680, 0xc440640298, 0x13, 0xc44054f6e0, 0x4, 0x4, 0x2, 0x2, 0x2)
	/usr/lib/go-1.9/src/reflect/value.go:302 +0xa4 fp=0xc4ed885878 sp=0xc4ed885810 pc=0x4d0594
github.com/ethereum/go-ethereum/rpc.(*Server).handle(0xc4405f9ca0, 0x1848140, 0xc4dcb39880, 0x184ce60, 0xc4dc5a58b0, 0xc44054f680, 0xc4dc5a5920, 0x0, 0xe34040)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:311 +0x6ce fp=0xc4ed885a20 sp=0xc4ed885878 pc=0x830ebe
github.com/ethereum/go-ethereum/rpc.(*Server).exec(0xc4405f9ca0, 0x1848140, 0xc4dcb39880, 0x184ce60, 0xc4dc5a58b0, 0xc44054f680)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:333 +0x1ba fp=0xc4ed885a90 sp=0xc4ed885a20 pc=0x831aba
github.com/ethereum/go-ethereum/rpc.(*Server).serveRequest(0xc4405f9ca0, 0x184ce60, 0xc4dc5a58b0, 0xf81d01, 0x1, 0x0, 0x0)


	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:194 +0x38f fp=0xc4ed885be0 sp=0xc4ed885a90 pc=0x82fa7f
github.com/ethereum/go-ethereum/rpc.(*Server).ServeSingleRequest(0xc4405f9ca0, 0x184ce60, 0xc4dc5a58b0, 0x1)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/server.go:225 +0x4e fp=0xc4ed885c28 sp=0xc4ed885be0 pc=0x83034e
github.com/ethereum/go-ethereum/rpc.(*Server).ServeHTTP(0xc4405f9ca0, 0x1846d80, 0xc4db6a4d20, 0xc4da301e00)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/http.go:176 +0x39d fp=0xc4ed885cb8 sp=0xc4ed885c28 pc=0x82971d
github.com/ethereum/go-ethereum/rpc.(*virtualHostHandler).ServeHTTP(0xc440646b20, 0x1846d80, 0xc4db6a4d20, 0xc4da301e00)
	/build/ethereum-s2a8_D/ethereum-1.8.2+build12774+xenial/build/_workspace/src/github.com/ethereum/go-ethereum/rpc/http.go:244 +0x14a fp=0xc4ed885d18 sp=0xc4ed885cb8 pc=0x829fca
net/http.serverHandler.ServeHTTP(0xc440656ea0, 0x1846d80, 0xc4db6a4d20, 0xc4da301e00)
	/usr/lib/go-1.9/src/net/http/server.go:2619 +0xb4 fp=0xc4ed885d48 sp=0xc4ed885d18 pc=0x7ee024
net/http.(*conn).serve(0xc4dc590b40, 0x1848140, 0xc4dcb39700)
	/usr/lib/go-1.9/src/net/http/server.go:1801 +0x71d fp=0xc4ed885fc8 sp=0xc4ed885d48 pc=0x7ea21d
runtime.goexit()
	/usr/lib/go-1.9/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc4ed885fd0 sp=0xc4ed885fc8 pc=0x472d01
created by net/http.(*Server).Serve
	/usr/lib/go-1.9/src/net/http/server.go:2720 +0x288
@linuxion
Copy link

linuxion commented Apr 7, 2018

The problem solved.

@holiman
Copy link
Contributor

holiman commented Feb 7, 2019

Depends on olebedev/go-duktape#58

@stale
Copy link

stale bot commented Feb 8, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@easeev
Copy link

easeev commented Apr 8, 2021

Guys @holiman @linuxion @karalabe,

Any progress with this? AFAIK the upstream PR hasn't been merged and the problem still exists. We have a bunch of Geth nodes crashing due to traceTransaction calls.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants