Skip to content

Commit d7e2206

Browse files
g-carreclaude
andcommitted
docs(design): note graceful degradation of getter read paths
State the cross-adapter contract that a getter returns a drive or volume it cannot fully resolve (missing by-id link, failed JBOD device node, degraded array) with empty paths and its status, rather than failing and dropping the whole controller's inventory. Documents the behavior the megaraid, ssacli and storcli2 fixes now guarantee. Issue: ARTESCA-17960 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent cf64fb7 commit d7e2206

1 file changed

Lines changed: 10 additions & 0 deletions

File tree

‎DESIGN.md‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,16 @@ flags. This is not for idempotency but to minimize real mutations and to skip
127127
fields the (lossy) getter reports as `Unknown` when the caller did not change
128128
them — avoiding a spurious "unsettable" rejection on an untouched field.
129129

130+
Getter read paths degrade gracefully. When a drive or volume in a multi-member
131+
array cannot be fully resolved — e.g. a degraded-but-online array whose udev
132+
`by-id` link is missing, or a failed JBOD drive whose device node is gone — the
133+
getter returns that entity with its status and empty `DevicePath`/`PermanentPath`
134+
rather than failing, so one unhealthy drive does not drop a controller's whole
135+
inventory. (The megaraid create/settle path is deliberately stricter: a
136+
just-created volume whose device node has not yet appeared is treated as
137+
not-ready and retried after a bus rescan, so there a failed path resolution is
138+
still an error.)
139+
130140
### Adapters
131141

132142
#### MegaRAID / PERC (storcli, perccli)

0 commit comments

Comments
 (0)