0xPolygonHermez / zkevm-node

Go implementation of a node that operates the Polygon zkEVM Network
Other
531 stars 685 forks source link

synchronizer: panic runtime error syncing batches from trusted node #3581

Closed joanestebanr closed 5 months ago

joanestebanr commented 5 months ago

System information

zkEVM Node version: v0.6.7-RC12 Network: Internal

Expected behaviour

Don't panic

Actual behaviour

panic: runtime error: invalid memory address or nil pointer dereference

Steps to reproduce the behaviour

The idea is to protect code against this possible error from RPC checking that is not nil, and a minimum sanity check over the returned batch.

Backtrace

[backtrace]
Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
main.runSynchronizer({0x0, 0x0, 0x0, {{0xc000783260, 0xa}, {0xc000783270, 0x4}, {0xc0004447d0, 0x1, 0x1}}, ...}, ...)

Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/synchronizer.go:421 +0x1817

Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer.(*ClientSynchronizer).Sync(0xc0005ed180)

Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/synchronizer.go:766

Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer.(*ClientSynchronizer).syncTrustedState(...)

Apr 22 13:00:45.191
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/l2_sync/l2_shared/processor_trusted_batch_selector.go:67 +0x51

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer/l2_sync/l2_shared.(*SyncTrustedStateExecutorSelector).SyncTrustedState(0xc000c209d8?, {0x1d79d90, 0xc0005c6910}, 0x3?, 0x3?)

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/l2_sync/l2_shared/trusted_batches_retrieve.go:102 +0x27a

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer/l2_sync/l2_shared.(*TrustedBatchesRetrieve).SyncTrustedState(0xc0005c6cd0, {0x1d79d90, 0xc0005c6910}, 0x4def, 0xffffffffffffffff)

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/l2_sync/l2_shared/trusted_batches_retrieve.go:136 +0x3e7

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer/l2_sync/l2_shared.(*TrustedBatchesRetrieve).syncTrustedBatchesToFrom(0xc0005c6cd0, {0x1d79d90, 0xc0005c6910}, 0x4def, 0x4df1)

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
/src/synchronizer/l2_sync/l2_shared/processor_trusted_batch_sync.go:174 +0xab

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
github.com/0xPolygonHermez/zkevm-node/synchronizer/l2_sync/l2_shared.(*ProcessorTrustedBatchSync).ProcessTrustedBatch(0xc0005c6c80, {0x1d79d90, 0xc0005c6910}, 0x0, {{0xc00004a1d0, 0x2, 0x2}}, {0x1d852c0, 0xc001fb6930}, {0xc000beec00, ...})

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
goroutine 355 [running]:

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1478b2b]

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
panic: runtime error: invalid memory address or nil pointer dereference

Apr 22 13:00:45.190
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
gke-zkevm-internal-pool-large-1d09cab3-fvmt.europe-west2-b.c.prj-polygonlabs-zkevm-test.internal
zkevm-internal
Pending Flushid fullfiled: 4395, executor have write 4395

When submitting logs: please submit them as text and not screenshots.