oxidecomputer / oxidecomputer/omicron
oxide hardware switch-port status returns 500 error when querying unconfigured port
Open
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
On the colo rack, we have both qsfp8 ports populated, but the qsfp9 ports are empty:
✕ treyaspelund@Tallon-IV 01:05:31 PM | ~/Downloads
‣ ./oxide --profile colo-admin system hardware switch-port show-status | grep 'qsfp[89]'
qsfp8 true true a8:40:25:05:15:43 false RS up/LinkUp Optical Speed100G
qsfp9 false - - - - - - -
qsfp8 true true a8:40:25:05:0f:43 false RS up/LinkUp Optical Speed100G
qsfp9 false - - - - - - -
If we query qsfp8, we get a valid response:
✕ treyaspelund@Tallon-IV 01:05:08 PM | ~/Downloads
‣ ./oxide --profile colo-admin system hardware switch-port status --port qsfp8 --switch-location switch1 --rack-id 48759651-d754-43e2-ad49-64dde3adc1c2
{
"link": {
"address": {
"a": [
168,
64,
37,
5,
15,
67
]
},
"asic_id": 136,
"autoneg": false,
"enabled": true,
"fec": "RS",
"fsm_state": "LinkUp",
"ipv6_enabled": false,
"kr": false,
"link_id": 0,
"link_state": "up",
"media": "Optical",
"port_id": "qsfp8",
"prbs": "Mission",
"presence": true,
"speed": "Speed100G",
"tofino_connector": 41
},
"monitors": {
"receiver_power": [
{
"average": 1.2298001050949097
},
{
"average": 0.8708999752998352
},
{
"average": 0.9979000091552734
},
{
"average": 1.1165000200271606
}
],
"transmitter_bias_current": [
47.880001068115234,
47.880001068115234,
47.880001068115234,
47.880001068115234
],
"transmitter_power": [
0.959600031375885,
0.7152000069618225,
0.8762000203132629,
1.259200096130371
]
}
}
However, if we query qsfp9 we get a 500 error:
treyaspelund@Tallon-IV 01:05:12 PM | ~/Downloads
‣ ./oxide --profile colo-admin system hardware switch-port status --port qsfp9 --switch-location switch1 --rack-id 48759651-d754-43e2-ad49-64dde3adc1c2
error
Error Response: status: 500 Internal Server Error; headers: {"content-type": "application/json", "x-request-id": "598d70b2-76dd-465f-afe8-5d605aaf689f", "content-length": "124", "date": "Fri, 22 Nov 2024 20:05:31 GMT"}; value: Error { error_code: Some("Internal"), message: "Internal Server Error", request_id: "598d70b2-76dd-465f-afe8-5d605aaf689f" }
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 by reproducing the switch-port status command for the unconfigured qsfp9 port and trace the API path that handles the request. Compare it with the successful qsfp8 response; done means querying an unconfigured port no longer returns a 500 Internal Server Error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100