graphprotocol / graphprotocol/graph-node
Error retries seem to lose the Firehose cursor
Nessuno ha ancora preso questa issue.
- Lingua principale
- Rust
- Stelle
- 3.2k
- Fork
- 1.1k
- Merge medio
- 4g 1h
- PR unite (30g)
- 1
Descrizione
We're seeing logs like this one frequently:
WARN Firehose selected first streamed block's parent should match subgraph start block, reverting to last know final chain segment,
firehose_start_block: #18746373 (5ca99c16915d2cd025e4fc1b3962c08eb75d171840d70116d2ff9204d3a1c5cc), subgraph_current_block: #18746373 (ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
The subgraph will then revert by exactly 200 blocks which is a hardcoded value in FirehoseMapper::final_block_ptr_for.
I think this reproduces when a subgraph retries a deterministic error, so it may be that we're losing the current block hash in this retry process. Given that those retries happen frequently and reverting makes the retry process more expensive, it would be good to look into how we can avoid this situation.
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia tracciando la gestione dei retry in caso di errori deterministici e il modo in cui l’hash del blocco corrente arriva a FirehoseMapper::final_block_ptr_for. Riproduci, se possibile, la discrepanza del cursore Firehose registrata nei log e verifica che i retry mantengano il cursore invece di attivare il revert hardcoded di 200 blocchi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rust
- Ambito
- backend, blockchain
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 30/100