oxidecomputer / oxidecomputer/omicron

[sled agent] Disk expungement should unmount filesystem paths

Open
#7,388 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Sled Agent
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

Control plane disks have a 1:1 mapping with zpools, which are mounted under `/pool/ext.

Tools like oxlog read from /pool/ext to find logs, and access file system paths.

As implemented today, the sled agent API to configure which disks are active (omicron_physical_disks PUT) does not attempt to unmount filesystems for these paths, when disks are expunged.

As a result, it's possible to have /pool/ext paths lying around after expungement, which are visible to tools reading from the filesystem.

Though the risk for oxlog is relatively low, this behavior is arguably wrong - sled agent should probably take a more active role attempting to remove these filesystem paths from the namespace for expunged disks.

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.

Research direction

Start with the sled agent API handling the omicron_physical_disks PUT operation and trace the expungement path. Check how /pool/ext filesystem paths are handled when disks are removed; done means expunged disks no longer leave those paths mounted or visible to filesystem-reading tools.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
infrastructure, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.