oxidecomputer / oxidecomputer/omicron
Mechanism for managing inline command concurrency in inventory collection
@davepacheco is already working on this.
Since Feb 27, 2026.
- Dominant language
- Rust
- Stars
- 572
- Forks
- 97
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 96
Description
Every time an inventory collection is triggered, a series of inline requests is made to collect system information. An inventory collection does not finish until every request has returned. This causes a problem if one of the requests hangs indefinitely. We've already seen this behaviour with zpool list, so it is not a hypothetical problem. Additionally, repeated inventory collection requests could bog down the system.
A proposed solution is to ensure at most one of the same command to retrieve information (e.g. zpool list) is running at any given time. This means if there is an outstanding process, there will be no new forks. New commands will queue up until the previous one is finished, we will introduce timeouts and report if some of the information was unable to be collected.
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.
Assessment
This issue has not been assessed yet.