oxidecomputer / oxidecomputer/helios
nvme-loadgen does not handle drives that aren't formatted
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 481
- Forks
- 21
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 2
Description
The implementation of the nvme-loadgen logic requires that a pool exists. When the p0 minor doesn't exist, because say the drive came from the factory and never had anything on it, it'll fail. I manually just created a zpool and then destroyed it to get the right whole disk partitioning. We should consider doing something like this. The error when this fails looks something like:
[ Dec 28 04:17:21 Executing start method ("/usr/lib/compliance-nvme-loadgen seqread N0"). ]
[ Dec 28 04:17:34 Method "start" exited with status 0. ]
Starting 1 process
fio: failed opening chardev /dev/rdsk/c9t0014EE8401CE2900d0p0 for size check
file:filesetup.c:795, func=open(/dev/rdsk/c9t0014EE8401CE2900d0p0), error=No such device or address
fio: pid=0, err=6/file:filesetup.c:795, func=open(/dev/rdsk/c9t0014EE8401CE2900d0p0), error=No such device or address
Run status group 0 (all jobs):
[ Dec 28 04:17:34 Stopping because all processes in service exited. ]
[ Dec 28 04:17:34 Executing stop method (:kill). ]
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Locate the nvme-loadgen implementation and trace how it selects the p0 device when no pool has previously existed. Reproduce the failure with an unformatted drive or absent p0 minor, then verify that nvme-loadgen prepares or handles the device successfully without the fio open error shown here.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100