Comment 19 for bug 1847924

Revision history for this message
Guilherme G. Piccoli (gpiccoli) wrote :

Hi Robie and Łukasz, thanks again for your feedback and valid concerns. I've just updated the LP with new debdiffs for the modified SRU patch - this one won't change the mdadm behavior strictly more than necessary.

Basically, the code chunk added by this debdiff (in B/D/E) is:

++ /* This is to keep output compatibility
++ * in the SRU for B/D/E - we only change
++ * the state output in case it's "broken"
++ */
++ if (strcmp(arrayst, "broken"))
++ arrayst = "clean";

Summarizing the change: before the 'broken' state patch, "mdadm --detail" would only show 2 states for the arrays, either 'clean' or 'active'. This behavior was changed in the hereby SRUed patch: now, for RAID0/Linear arrays, in the state field on "mdadm --detail" we show the content of /sys/block/mdX/md/array_state. This is present in the upstream patch and the Focal merged version.

But given the concerns of behavior change in already released versions (specially the LTS one, Bionic), we added the small chunk above and for those releases, the behavior will be: in the state field of "mdadm --detail" output, we only have 3 alternatives, the old 'clean' and 'active', and the new 'broken'. Hence, the only modification on the behavior is when arrays are broken and mdadm will provide this information through the state field.

I've tested the version with the modified chunk and it's working as expected - also, I've commented this behavior difference in the patch description. The debdiffs were created against -proposed version of the packages (I expect them to get to -uploads soon, given the importance of the layout patch present there).

Thanks, please let me know any more questions or concerns you have.
Cheers,

Guilherme