oxidecomputer / oxidecomputer/omicron

RSS handoff error message drops important cause information

Open Beginner friendly
#8,224 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Good for new hires
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

My a4x2 is failing to set up, with only this log message:

18:01:04.828Z INFO SledAgent (RSS): Failed to handoff to nexus: Communication Error: error sending request for url (http://[fd00:1122:3344:101::6]:12221/racks/a6417c30-1748-45c8-b01e-caca9e11ec6c/initialization-complete)
    file = sled-agent/src/rack_setup/service.rs:1001

the full bunyan entry:

{"msg":"Failed to handoff to nexus: Communication Error: error sending request for url (http://[fd00:1122:3344:101::6]:12221/racks/a6417c30-1748-45c8-b01e-caca9e11ec6c/initialization-complete)","v":0,"name":"SledAgent","level":30,"time":"2025-05-27T18:01:04.828484117Z","hostname":"g0","pid":1312,"component":"RSS","file":"sled-agent/src/rack_setup/service.rs:1001"}

This error ought to have more information about what happened, but the cause is being dropped because we're just formatting the error as a string:
https://github.com/oxidecomputer/omicron/blob/37a2122e4be0d947c141833a695bf11a1c32f537/sled-agent/src/rack_setup/service.rs#L1001

We need to be using https://github.com/oxidecomputer/slog-error-chain here instead.

Contributor guide

Open the contributing guide

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

Read sled-agent/src/rack_setup/service.rs around line 1001 and inspect how the handoff error is formatted. Review the slog-error-chain usage linked in the issue, then verify that the RSS handoff log preserves the underlying cause information. Done means the logged error includes the relevant error chain rather than only the formatted top-level message.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
observability
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.