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

debug_traceBlockByNumber method handler crashed with callTracer and block 0x511b860 #169

Closed
pc-quiknode opened this issue Jul 10, 2024 · 1 comment

Comments

@pc-quiknode
Copy link

pc-quiknode commented Jul 10, 2024

Describe the bug

Version

$ sonicd version
Sonic
Version: 1.2.1-d
Git Commit: 350f8b77bfa3060340ea650d25a16a8517f21007
Git Commit Date: 1718888037
Architecture: amd64
Protocol Versions: [63]
Go Version: go1.21.6
Operating System: linux
GOPATH=
GOROOT=/home/pchung/.gvm/gos/go1.21.6

Request Payload

{
   "method":"debug_traceBlockByNumber",
   "params":[
      "0x511b860",
      {
         "tracer":"callTracer"
      }
   ],
   "id":1,
   "jsonrpc":"2.0"
}

Stacktrace

ERROR[07-10|03:45:37.458] RPC method debug_traceBlockByNumber crashed: runtime error: invalid memory address or nil pointer dereference
goroutine 31261877 [running]:
github.com/ethereum/go-ethereum/rpc.(*callback).call.func1()
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/service.go:201 +0x85
panic({0x14b3660?, 0x23a5400?})
        /home/pchung/.gvm/gos/go1.21.6/src/runtime/panic.go:914 +0x21f
github.com/Fantom-foundation/go-opera/ethapi.(*PublicDebugAPI).traceTx(0xc00095ace0, {0x193f138, 0xc394654380}, {0x1948ff0?, 0xc416fecc60?}, 0xc394679268, 0xc53d483400?, {0x195a2f0, 0xc6266334c0}, 0xc60150cbe0)
        /home/pchung/source/Sonic/ethapi/api.go:2200 +0xdf1
github.com/Fantom-foundation/go-opera/ethapi.(*PublicDebugAPI).traceBlock(0xc00095ace0, {0x193f138, 0xc394654380}, 0xc2723ef340, 0x1520700?)
        /home/pchung/source/Sonic/ethapi/api.go:2272 +0x5a5
github.com/Fantom-foundation/go-opera/ethapi.(*PublicDebugAPI).TraceBlockByNumber(0xc00095ace0, {0x193f138, 0xc394654380}, 0x5?, 0x8?)
        /home/pchung/source/Sonic/ethapi/api.go:2230 +0x66
reflect.Value.call({0xc00046a540?, 0xc07968f3b0?, 0x7fa24aa15948?}, {0x16d6e83, 0x4}, {0xc555363aa0, 0x4, 0x428fb2?})
        /home/pchung/.gvm/gos/go1.21.6/src/reflect/value.go:596 +0xce7
reflect.Value.Call({0xc00046a540?, 0xc07968f3b0?, 0x7fa243160aa8?}, {0xc555363aa0?, 0x10?, 0xc29d154400?})
        /home/pchung/.gvm/gos/go1.21.6/src/reflect/value.go:380 +0xb9
github.com/ethereum/go-ethereum/rpc.(*callback).call(0xc23cf1ca20, {0x193f138?, 0xc394654380}, {0xc646a46a80, 0x18}, {0xc30184f290, 0x2, 0x45d964b800?})
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/service.go:207 +0x379
github.com/ethereum/go-ethereum/rpc.(*handler).runMethod(0x193f0c8?, {0x193f138?, 0xc394654380?}, 0xc394654310, 0x2?, {0xc30184f290?, 0xc3df0d8120?, 0x90?})
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:405 +0x3c
github.com/ethereum/go-ethereum/rpc.(*handler).handleCall(0xc3df0d8000, 0xc30184f230, 0xc394654310)
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:353 +0x270
github.com/ethereum/go-ethereum/rpc.(*handler).handleCallMsg(0xc3df0d8000, 0x30?, 0xc394654310)
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:310 +0xbd
github.com/ethereum/go-ethereum/rpc.(*handler).handleMsg.func1(0xc30184f230)
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:148 +0x2f
github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc.func1()
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:238 +0xeb
created by github.com/ethereum/go-ethereum/rpc.(*handler).startCallProc in goroutine 31135388
        /home/pchung/.gvm/pkgsets/go1.21.6/global/pkg/mod/github.com/!fantom-foundation/go-ethereum-substate@v1.1.1-0.20240523185630-b058188a043a/rpc/handler.go:232 +0x95
@jmpike
Copy link
Collaborator

jmpike commented Jul 10, 2024

The Opera tx tracer code used to implement tracing expected the recipient address to always exist, but it actually can be nil value on some cases. Pull request #170 should address the issue.

@jmpike jmpike closed this as completed Jul 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants