`Destructor` can unwrap a failed channel send
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
Research direction
Start with illumos-utils/src/destructor.rs around lines 144-150 and read the Destructor worker and channel-send path. Check how the Tokio runtime shutdown can close the channel, then run the relevant existing tests or test command for illumos-utils. Done means a failed send no longer unwraps and panics, while the object is handled as described in the issue.
Written by the indexing model from the issue text.
Description
I'm working on #11395, which is intended to resolve #7726 by continually attempting to delete OPTE ports. That uses the the Destructor type which sends an object to a spawned worker task on a channel, where the actual deletions occur. There's a safety note here:
I don't think that's quite right. The other thing that can shut down the worker is the Tokio runtime itself shutting down, which has no guaranteed order in which it stops its tasks. That means we could be attempting to send on a closed channel here, which would then unwrap and panic. We should handle this possibility, though there's not much we can do except maybe log an error and return the object.
- Dominant language
- Rust
- Stars
- 610
- Forks
- 104
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 101
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing 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.
More from oxidecomputer/omicron
-
fault-management
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
oxidecomputer/omicron#11444 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
oxidecomputer/omicron#11390 ·
Maintainers usually reply within 2 days
-
non-important non-blocker Testing & Analysis
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
oxidecomputer/omicron#11374 ·
Maintainers usually reply within 2 days
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
oxidecomputer/omicron#11269 ·
Maintainers usually reply within 2 days
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
oxidecomputer/omicron#11266 ·
Maintainers usually reply within 2 days
All issues in oxidecomputer/omicron
Similar issues
-
good first issue gpu serve
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
documentation E-easy good first issue help wanted
Difficulty 1/5 1-3 hours Newbie friendliness 91/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
charles-hood/DiagramCraft#73 ·
-
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
ontologyportal/sigma-rs#200 ·
Maintainers usually reply within 1 day