oxidecomputer / oxidecomputer/steno

gracefully handle invalid DAGs from the database

Open
#106 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
170
Forks
15
PR merge metrics
No merged PRs in 30d

Description

See https://github.com/oxidecomputer/steno/blob/0c71fe504878c63b03f3ff5bd73fdd0283d04e9c/src/saga_exec.rs#L1072-L1074

It's unclear how high priority this is. This should be impossible because we validate DAGs before we write them to the database. And we only intend to run a given saga with a given Nexus version. However, if we ever did mess this up, a Nexus instance running that saga would wind up in a panic loop, which is pretty bad.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at src/saga_exec.rs lines 1072-1074 and trace how a DAG loaded from the database reaches the saga executor. Review the existing error path and determine how an invalid DAG should be handled so it does not cause a panic loop; done means the failure is handled gracefully rather than panicking repeatedly.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.