Degraded array check, may not do what it says it's doing
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mdadm (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Degraded array check in the initramfs currently does:
mdadm --misc --scan --detail --test
and checks the return code. I happen to be using Intel Matrix Raid (container type), thus as it happens the container, and arrays are already assembled -> all arrays active, one disk active, one spare and rebuilding. At this state mdadm --misc --scan --detail --test returns error code 2, but it is to late to do anything but simply use that active array and continue to boot...
So degraded_array question should die.
We should attempt starting arrays with --no-degraded a few times, and after a timeout assemble them with --run, and if we don't have enough drives to start the array only then fall through to initramfs recovery shell.
This bug was fixed in the package mdadm - 3.2.5-5ubuntu3
---------------
mdadm (3.2.5-5ubuntu3) trusty; urgency=medium
* Drop precise- sru-reverts. patch, which disabled imsm/ddf raid assembly.
* Take kernel cmdline parameters "nomdmonisw" and "nomdmonddf" into
account, when assembling imsm/ddf arrays. This defaults to assembling
those arrays using mdmon/mdadm, with a fallback to dmraid upon
request.
* Add breaks on dmraid, of versions that assemble fakeraid devices by
default.
* Drop degraded array questions, since the degraded check results in
false negatives (e.g. all drives present & started arrays, yet
resyncing) assemble arrays as best as is possible. (LP: #1279741)
* Use default/grub.d snippet to continue using dmraid to assemble
fakeraid arrays.
-- Dimitri John Ledkov <email address hidden> Tue, 18 Feb 2014 09:12:20 +0000