oxidecomputer / oxidecomputer/sush

Locker should recover from a wiped slot

Open
#87 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
3
Forks
0
Avg merge
9d 12h
Merged PRs (30d)
11

Description

If one deletes a locker file while sush is running, it currently wedges closed. But it could heal around it, though some caution is required, because we want to distinguish between "slot directory vanished" and "dataset unmounted". The safe path is probably to capture an open dirfd on the cluster dataset root at startup and recreate the wiped directory with mkdirat through that fd.

Contributor guide

No contributing guide indexed for this repository

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 by tracing the locker code that handles the cluster dataset root and wiped slot, then inspect how it distinguishes a vanished slot directory from an unmounted dataset. Evaluate the proposed startup dirfd and mkdirat approach; done means a wiped slot recovers without treating an unmounted dataset as recoverable, with tests covering both cases.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.