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
The indexer object in the statediffing service holds a block number as a field. Since the same indexer is used in regular statediffing (WriteLoop) as well as to serve writeStateDiffAt API calls, the block number field sometimes gets overwritten in the middle of statediffing.
This was discovered while running a watcher against the v4 endpoints. On making multiple writeStateDiffAt API calls through ipld-eth-server to a head-tracking geth node for a missing block (12948382), it indexed data belonging to the missing block at two different heights (at 12948382 and at head 14972625). The same scenario happened with few other blocks as well (5 blocks out of ~100 older blocks).
The indexer object in the statediffing service holds a block number as a field. Since the same indexer is used in regular statediffing (
WriteLoop
) as well as to servewriteStateDiffAt
API calls, the block number field sometimes gets overwritten in the middle of statediffing.This was discovered while running a watcher against the v4 endpoints. On making multiple
writeStateDiffAt
API calls throughipld-eth-server
to a head-tracking geth node for a missing block (12948382
), it indexed data belonging to the missing block at two different heights (at12948382
and at head14972625
). The same scenario happened with few other blocks as well (5 blocks out of ~100 older blocks).Relevant code change: https://github.com/vulcanize/go-ethereum/pull/211/files#diff-94d8d9065b029905674a053b6f9eb87f9fa49dc82ff8191e7c899e35fd2fd66eR58
Tasks:
The text was updated successfully, but these errors were encountered: