oxidecomputer / oxidecomputer/omicron

Mechanism for managing inline command concurrency in inventory collection

Open
#9,935 6 comments 0 reactions 1 assignee View on GitHub

@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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.