oxidecomputer / oxidecomputer/crucible
Crucible panicked after hitting IO completion error
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 260
- Forks
- 34
- Avg merge
- 2d 1h
- Merged PRs (30d)
- 8
Description
I have some running instances returned "Failed Dependency" error when I tried to stop or reboot them (see https://github.com/oxidecomputer/omicron/issues/5705 for the context).
Looking at the propolis log for one of them, I saw that it panicked at one point:
BRM42220009 # grep IO /pool/ext/d0584f4a-20ba-436d-a75b-7709e80deb79/crypt/debug/oxz_propolis-server_5317472d-c334-451e-ad6a-7c184289bbf7/system-illumos-propolis-server:default.log.1714980545 | looker
07:23:48.646Z INFO propolis-server (crucible-fda6b60b-1ea5-4d90-8610-64e691b45879): Scrubs from block 0 to 4194304 in (256) 131072 size IOs pm:25
07:29:03.883Z ERRO propolis-server (crucible-fda6b60b-1ea5-4d90-8610-64e691b45879): IO completion error: missing 14411
= downstairs
client = 2
session_id = 023341a5-1224-42d4-a5eb-30244dae3a60
The complete log file is attached here:
system-illumos-propolis-server:default.log.1714980545.log
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 attached propolis log and the related oxidecomputer/omicron#5705 issue, focusing on the IO completion error reporting a missing request before the panic. Trace that failure through Crucible's IO completion handling, then define done as reproducing the panic or identifying its cause and adding a fix with regression coverage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100