oxidecomputer / oxidecomputer/humility

`lookup_variant_by_tag()` doesn't handle dead codes

Open
#309 0 comments 0 reactions 0 assignees View on GitHub

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

  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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.