Repository navigation
Conversation
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
2 times, most recently
from
October 9, 2026 19:08
822e10d to
8f95fdf
Compare
g-carre
force-pushed
the
test/ARTESCA-17960-megaraid-disk-failure-scenario
branch
from
October 9, 2026 19:15
14ede3a to
1f7e333
Compare
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
from
October 9, 2026 19:15
8f95fdf to
b95587e
Compare
g-carre
force-pushed
the
test/ARTESCA-17960-megaraid-disk-failure-scenario
branch
from
October 9, 2026 19:21
1f7e333 to
2e737a1
Compare
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
2 times, most recently
from
October 9, 2026 21:36
a20e355 to
009eba2
Compare
g-carre
force-pushed
the
test/ARTESCA-17960-megaraid-disk-failure-scenario
branch
from
October 9, 2026 21:41
e7d17c7 to
ce633e6
Compare
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
from
October 9, 2026 21:41
009eba2 to
578d3d4
Compare
When the drive of a single-drive RAID0 volume fails, the volume goes offline and is no longer a block device of the host: it has no by-id link, and the paths of its failed drive cannot be computed. getPaths returned an error, which failed LogicalVolumes for the whole controller, so the healthy drives of that controller lost their paths too (RD-2154). - A volume whose "Exposed to OS" is "No" gets empty paths without error. Only this explicit value skips the resolution, as older storcli versions may not report the field. - An offline volume (OfLn) is reported Failed instead of Unknown. - Volume creation still waits for the new volume: a volume listed before it is exposed to the OS has no paths yet, so it is not settled and creation keeps rescanning and retrying. DESIGN.md states that getter read paths degrade gracefully while the create path stays strict. The failed phase of the megaraid-disk-failure scenario now reports its expected table: its knownBug block is removed. Fixes: ARTESCA-17960
A failed or pulled drive whose device node has disappeared made the lsblk lookup of its Disk Name fail, which aborted the physical drive inventory of the whole controller. The lookup only refines the status, so its failure no longer aborts the inventory. Instead: - the usage of the device is unknown, and a free drive whose usage is unknown is reported Unknown, never UnassignedGood, so a drive that may carry data is never offered for a new volume; - the device path is dropped, as the kernel can reuse a vanished /dev/sdX name for another disk. Array members and failed drives keep the status ssacli reports. Refs: ARTESCA-17960
… resolved A JBOD drive whose by-id link cannot be resolved, for instance because udev has not settled yet, failed the physical drive inventory of the whole controller. Keep it with empty paths instead. Also cover a degraded RAID volume, whose paths come from the controller output only. Refs: ARTESCA-17960
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
from
October 9, 2026 21:51
578d3d4 to
7619662
Compare
The storcli2 volume getter read the device path of a volume from its OS drive name and built its permanent path from its NAA Id. The offline RAID0 volume of a failed drive keeps its NAA Id, and may keep a stale OS drive name, but it is not exposed to the OS: it has no block device and no by-id link, so both paths named nothing, or another disk. A volume whose "Exposed to OS" is "No" now has no paths; only this explicit value drops them, as older storcli2 versions may not report the field. The failed phase of the storcli2-disk-failure scenario now reports its expected table: its knownBug block is removed. Fixes: ARTESCA-17960
g-carre
force-pushed
the
fix/ARTESCA-17960-megaraid-offline-volume
branch
from
October 9, 2026 21:56
7619662 to
39c3e55
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Commits, one per adapter fix: megaraid, ssacli, storcli2 drives, storcli2 volumes.
Fixes ARTESCA-17960 (RD-2154). Stacked on #102: it targets #102's branch, so the diff only shows the fix. Retarget it to
mainonce #102 is merged. It supersedes #91.Problem
One unhealthy drive could fail the inventory of its whole controller, so every healthy drive on that controller lost its device paths. On the RD-2154 node this blanked all disks in the UI.
Fixes
OfLn,Exposed to OS: No) and is no longer a block device.getPathsstill tried to resolve its paths, failed, and failedLogicalVolumesfor the whole controller.Exposed to OS: Nonow gets empty paths without error. Only this explicit value skips resolution, since older storcli versions may not report the field.OfLnis now reportedFailedinstead ofUnknown./devnode is gone made thelsblklookup fail, which aborted the whole inventory. A lookup failure now marks the device's usage as unknown instead. A free drive whose usage is unknown is reportedUnknown, neverUnassignedGood, so a drive that may carry data is never offered for a new volume.UsedJBOD drive whose by-id link cannot be resolved is kept with empty paths instead of failing the whole inventory.Exposed to OS: Nonow has no paths: neither the permanent path built from its NAA Id, nor a device path from a possibly stale OS drive name.DESIGN.md. Documents the contract that getter read paths degrade gracefully. The megaraid create/settle path is deliberately stricter.#91's change for multi-drive megaraid volumes is not carried over, since ARTESCA does not use them.
Tests
failedphases ofmegaraid-disk-failureandstorcli2-disk-failurenow report their expected tables, so bothknownBugblocks are removed. Until they were removed, the tests failed with "the bug looks fixed". All 8 phases pass, for example:getPathswithExposed to OSset toNo(empty paths, no error),Yes, or empty (paths still resolved);OfLn→Failed.lsblklookup does not abort the inventory, and a free drive whose device could not be inspected is reportedUnknown.permanentPathcoversExposed to OSset toNo,Yesand missing.Delivery
disk-management-agent picks this up once raidmgmt is released and the agent bumps it. scality/disk-management-agent#74 marks its
failedphase as a known bug, so it will fail and ask for the marker to be removed at that point.