oxidecomputer / oxidecomputer/crucible

crucible-downstairs verify continue in the face of errors

Open
#1,804 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
260
Forks
34
Avg merge
2d 1h
Merged PRs (30d)
8

Description

If crucible-downstairs verify finds a context slot it can't read, it bails early:

BRM42220006 # /tmp/crucible-downstairs verify -d /pool/ext/cf5f8849-0c5a-475b-8683-6d17da88d1d1/crypt/zone/oxz_crucible_af8a8712-457c-4ea7-a8b6-aecb04761c1b/root/data/regions/67f34c5a-7205-49af-b440-3c0218ed2b19
Error: missing context slot for block 49360 in extent 18

Ideally, it could continue and scan the rest of the extents, but just mark the one it failed to read as failed when it gets to it.
This would help to verify a region that is open an active.

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

Reproduce the failure with the shown crucible-downstairs verify -d command and locate the verify implementation and its handling of the missing context slot for block 49360 in extent 18. The work is done when verification continues through the remaining extents, records the unreadable extent or slot as failed, and reports the failure instead of exiting early.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.