You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Geth version: geth version 1.13.11-stable-8f7eb9cc
CL client & version: beacon-chain version Prysm/v4.2.1/59b310a2216c57fcf67ea0fdec739dad07aeec8b.
OS & Version: Linux Ubuntu 22.04.3 LTS amd64
Commit hash : (not develop)
Initially synced with --syncmode snap, switched to --syncmode full and --gcmode archive after initial sync completed. Always --state.scheme hash and --db.engine pebble.
I have an older Geth node synced the same way running version 1.12.0-stable-e501b3b0 that does not experience this issue.
Expected behaviour
eth_getTransactionByHash and eth_getTransactionReceipt should always return the correct data, including after a reorg.
Actual behaviour
Immediately & shortly after a reorg eth_getTransactionByHash and eth_getTransactionReceipt are incorrect. In some circumstances they remain incorrect forever. eth_getBlockByNumber and eth_getBlockReceipts return the correct data even when eth_getTransactionByHash and eth_getTransactionReceipt return incorrect data.
Last week I snap synced a new Geth node on version 1.13.11-stable-8f7eb9cc. After switching my application to use it and I started noticing the above inconsistencies. Yesterday I implemented extra checks that restart my application and rewind 10 blocks when the issue occurs and everything seemed fine after that (the correct data would be available from eth_getTransactionReceipt when requested after my application restarted). Moments ago I was digging deeper to understand the problem, hitting the node with lots of eth_getBlockReceipts requests after a reorg, and it appears to have caused the bad data to stick permanently.
System information
Geth version:
geth version 1.13.11-stable-8f7eb9cc
CL client & version:
beacon-chain version Prysm/v4.2.1/59b310a2216c57fcf67ea0fdec739dad07aeec8b.
OS & Version:
Linux Ubuntu 22.04.3 LTS amd64
Commit hash : (not develop)
Initially synced with
--syncmode snap
, switched to--syncmode full
and--gcmode archive
after initial sync completed. Always--state.scheme hash
and--db.engine pebble
.I have an older Geth node synced the same way running version
1.12.0-stable-e501b3b0
that does not experience this issue.Expected behaviour
eth_getTransactionByHash
andeth_getTransactionReceipt
should always return the correct data, including after a reorg.Actual behaviour
Immediately & shortly after a reorg
eth_getTransactionByHash
andeth_getTransactionReceipt
are incorrect. In some circumstances they remain incorrect forever.eth_getBlockByNumber
andeth_getBlockReceipts
return the correct data even wheneth_getTransactionByHash
andeth_getTransactionReceipt
return incorrect data.Last week I snap synced a new Geth node on version
1.13.11-stable-8f7eb9cc
. After switching my application to use it and I started noticing the above inconsistencies. Yesterday I implemented extra checks that restart my application and rewind 10 blocks when the issue occurs and everything seemed fine after that (the correct data would be available frometh_getTransactionReceipt
when requested after my application restarted). Moments ago I was digging deeper to understand the problem, hitting the node with lots ofeth_getBlockReceipts
requests after a reorg, and it appears to have caused the bad data to stick permanently.For reference, Etherscan keeps a list of recent reorgs here https://etherscan.io/blocks_forked
Steps to reproduce the behaviour
Subscribe to new blocks and check their receipts via
eth_getBlockReceipts
to see whether the block hashes match.For a minimal reproduction see https://github.com/NickKelly1/geth-rpc-tx-receipt-issue-reproduction.
The text was updated successfully, but these errors were encountered: