Locker should recover from a wiped slot

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

Nobody has claimed this yet.

Assessment

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

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.

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.

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

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.

More from oxidecomputer/sush

All issues in oxidecomputer/sush

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.