oxidecomputer / oxidecomputer/omicron

wicket/wicketd: show how old SP data is

Open
#6,257 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

wicket
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

At the moment, on the dogfood rack's switch 1/sled 16, wicket says:

image

But this data is actually outdated and has been for a while. In the switch zone, /var/svc/log/oxide-wicketd:default.log is filled with messages of the form:

18:39:26.400Z WARN wicketd (wicketd MgsManager): Failed to get state for SP
    err = Error Response: status: 503 Service Unavailable; headers: {"content-type": "application/json", "x-request-id": "32a8fd38-c9f2-4142-a550-36351bece7ce", "content-length": "224", "date": "Wed, 07 Aug 2024 18:39:26 GMT"}; value: Error { error_code: Some("SpCommunicationFailed"), message: "error communicating with SP SpIdentifier { typ: Power, slot: 0 }: RPC call failed (gave up after 5 attempts)", request_id: "32a8fd38-c9f2-4142-a550-36351bece7ce" }
    file = wicketd/src/mgs/inventory.rs:306
    sp = SpIdentifier { slot: 0, type_: Power }

The fact that the data is shown, especially in green, makes it feel fresh and current even though it's been stale for a while. We should consider:

  • showing the age of SP data
  • making it yellow if it's too stale

cc @rmustacc, @andrewjstone, @jgallagher

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

Start with the failed SP-state handling at wicketd/src/mgs/inventory.rs:306 and compare it with the data shown for the dogfood rack's switch 1/sled 16. Trace how that state reaches wicket's display, then define and implement how its age is shown and when stale data should appear yellow. Done means outdated SP data is visibly distinguished from fresh data.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.