oxidecomputer / oxidecomputer/humility
`lookup_variant_by_tag()` doesn't handle dead codes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 584
- Forks
- 63
- Avg merge
- 3h
- Merged PRs (30d)
- 2
Description
We bumped into this while testing #307. If an idol call returns a dead code with a task generation number (e.g., 0xffffff01) and that value gets passed as the tag to lookup_variant_by_tag(), we will erroneously return a tagless variant if one exists.
Correctly fixing this may be tricky - we should check for replies being represented by Result( .., err: CLike(..)) when we're interpreting error types, and possible add special dead code detection in the immediate term. This is an area that could use some more significant rework.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in humility-core/src/hubris.rs at lookup_variant_by_tag() and reproduce the dead-code case described while testing #307, such as 0xffffff01 passed as a tag. Trace how replies and error types are interpreted, especially Result(..., err: CLike(...)). Done means a dead code does not incorrectly resolve to a tagless variant.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100