oxidecomputer / oxidecomputer/omicron
wicket/wicketd: show how old SP data is
Nobody has claimed this yet.
- 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:
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
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 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