graphprotocol / graphprotocol/graph-node
[Bug] Graph-node save incorrect block cache during reorgs
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 3.2k
- フォーク
- 1.1k
- 平均マージ
- 4日 1時間
- マージ済み PR(30日)
- 1
説明
Bug report
In case reorg happend and graph-node has seen it we would have 2 entries in the cache table:
Example for reorg on ethereum mainnet on block 17820205 with depth=1
graph=# select hash, number, parent_hash from chain1.blocks where number=17820205 (https://etherscan.io/block/17820205/f)
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\xdcb02b80a71bb335a8247298cfde2af9f589b491a1eb794a88fa377fb00e6fb8 | 17820205 | \x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756
\xc0455fae763cd8d53bc294cbd32225f207dee56cb396aee84eaaa5011513731a | 17820205 | \x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756
(2 rows)
graph=# select hash, number, parent_hash from chain1.blocks where number=17820206;
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\x409c0bb686a5fac90e706a556d02cf99122b49c683374c82341cccc836807964 | 17820206 | \xc0455fae763cd8d53bc294cbd32225f207dee56cb396aee84eaaa5011513731a
(1 row)
graph=# select hash, number, parent_hash from chain1.blocks where number=17820204;
hash | number | parent_hash
--------------------------------------------------------------------+----------+--------------------------------------------------------------------
\x9432a65af5ecd186859c22bf4d809561aaa4daf3bf8101fccb3f228e34b64756 | 17820204 | \x737d8549261f685b18b6c6f2dac460c6dfc4b88bf16b03d2a813ed51f9c08c40
(1 row)
From our experience that sometimes cause errors in subgraphs, because the subgraph takes incorrect data from the cache (This need confirming)
We had a problem when the subgraph was stuck until we remove duplicates from the cache.
Relevant log output
No response
IPFS hash
No response
Subgraph name or link to explorer
No response
Some information to help us out
- Tick this box if this bug is caused by a regression found in the latest release.
- Tick this box if this bug is specific to the hosted service.
- I have searched the issue tracker to make sure this issue is not a duplicate.
OS information
None
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、ブロック 17820204–17820206 で発生した、報告されている reorg について、chain1.blocks キャッシュに対して報告された SQL クエリを再現します。reorg されたブロックがどのように保存・選択されるかを追跡し、重複したブロックエントリによって subgraph が誤ったデータを使用したり、停止したりする可能性があるかを確認します。キャッシュの動作が回帰テストまたは文書化された再現手順によって確認または反証されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- postgresql, rust
- 領域
- blockchain, databases
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100