graphprotocol / graphprotocol/graph-node

Make using an illegal enum value a deterministic error

Offen
#3,417 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

error-handling
Vorherrschende Sprache
Rust
Sterne
3.2k
Forks
1.1k
Ø Merge
4 T. 1 Std.
Gemergte PRs (30 T.)
1

Beschreibung

If an entity uses a value for an enum that is not part of the enum, the subgraph fails with a non-deterministic error along the lines of

Mar 31 23:48:52.214 ERRO Subgraph failed with non-deterministic error: Error while processing block stream for a subgraph: store error: invalid input value for enum sgd249350.contract_topic: "CAMANAGER", retry_delay_s: 1800, attempt: 8, sgd: 249350, subgraph_id: QmXW8msFbPZq2RNUHDk1RK1KBkRnj8R48HF3pkzhM2vq4t, component: SubgraphInstanceManager

which leads to attempts to retry the operation every 30 minutes. Those retries are futile - the subgraph has no chance of making progress.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne beim Verarbeitungsweg für block-stream im Subgraph-Teilgraphen und bei der Fehlerbehandlung des Stores rund um SubgraphInstanceManager; das Issue enthält keinen Datei- oder Testpfad. Erzeuge einen enum-Wert außerhalb des deklarierten enum und überprüfe, dass er als deterministischer Fehler gemeldet wird, statt alle 30 Minuten erneut versucht zu werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
graphql, rust
Bereich
backend, databases
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.