Product SiteDocumentation Site

4.166. mdadm

An updated mdadm package that fixes several bugs is now available for Red Hat Enterprise Linux 6.
The mdadm package contains a utility for creating, managing, and monitoring Linux MD (multiple disk) devices.
Bug Fixes
BZ#692261
The mdadm utility incorrectly detected an IMSM (Intel Matrix Storage Manager) RAID device that was in the resync status, as being in the reshape status. As a consequence, mdadm rejected to assemble the IMSM RAID device as an external data file is needed to reassemble a device in the reshape status. If booting from the IMSM RAID device, the boot process could fail under these circumstances. With this update, mdadm detects that an IMSM RAID device is in the resync mode, assembles the device correctly, and launches its synchronization.
BZ#694083
When an array was changing the RAID level from redundant to non-redundant, the mdmon monitoring tool failed to close. As a consequence, mdmon applied the initial structure to the new array and mdadm could terminate with a segmentation fault. With this update, the underlying code has been modified and mdmon closes under these circumstances.
BZ#702270
The resync progress of an array, which was already partially resynchronized, was reset to zero and the resync process was restarted. This occurred if a newly-assembled array requested resync and reset the progress of another array from the container which was already partially resynchronized. With this update, the underlying code has been modified and a degraded RAID continues its resync from the point it had reached on previous resynchronizing.
BZ#598513
The mdadm utility handled the udev incremental rules incorrectly. As a consequence, it failed to handle incremental assembly of RAID devices built on top of logical multipath devices and a RAID device configured on top of a multipath device did not assemble during the boot process. With this update, mdadm handles the udev incremental rules file correctly and such devices are assembled as expected.
BZ#733153
Due to unexpected attributes in RAID metadata, the assembly of a RAID device could fail and the device was not available to the system. With this update, the metadata attributes are ignored and the RAID device is assembled as expected during boot.
BZ#695336
The mdadm utility calculated the data disks number during a reshape restart incorrectly and due to this miscalculation could attempt to divide by 0. As a result, reassembly of a migrated array could cause a floating point exception. With this update, the underlying code has been modified and the number of data disks is calculated correctly.
BZ#694103
Buffer size used on double-degraded RAID6 devices was insufficient. As a result, the RAID recovery failed and mdadm terminated unexpectedly. This happened because the buffer could not write data back to a stripe size if the recovered stripe was larger than the original stripe and the buffer overran. With this update, mdadm checks the size of the requested buffer and allocates a larger buffer for the stripe under these circumstances, and the recovery of double-degraded RAID6 completes successfully.
BZ#694121
If an array was created using the --size option with no chunk size specified, the mdadm utility rounded the default chunk size incorrectly. With this update, the rounding process has been modified and arrays are created with the correct size alignment.
BZ#694779
When expansion or reshape of RAID0 volume was restarted, mdadm failed to assemble the array because it failed to restore a critical section of the backup file and exited with the following message:
mdadm: Failed to restore critical section for reshape - sorry
This happened because during the process, the RAID level for RAID0 devices is temporarily changed to RAID4; however, the Grow_restart() function called on restart did not allow any RAID level changes. With this update, the level change has been allowed and the problem no longer occurs.
BZ#609122, BZ#6674703
The udev scripts did not add encrypted devices to a RAID device because encrypted devices were ready only after they had been unlocked. As a consequence, a RAID device created on top of one or more encrypted block devices failed to assemble. With this update, the underlying code has been changed and the script unlocks encrypted devices and add them to the respective RAID device as expected.
BZ#706500
Due to incorrect internal accounting of disks, the mdadm utility failed to re-add a disk, which was previously marked as faulty and removed. With this update, the underlying code has been modified and such disk is re-added as expected.
BZ#727212
The output of the mdstat --examine command contained incorrect status information. This happened because the DELAYED/PENDING status of a RAID device during resync was translated to an incorrect status. An upstream patch that fixes this bug has been applied and the mdstat --examine command now returns correct status information.
BZ#716413
Version 0.90 arrays have the metadata_version value set to NULL while newer versions set the metadata to the respective version. When the mdmonitor utility was restarted, it attempted to dereference the metadata value and terminated with a segmentation fault when the value was NULL. As a consequence, the RAID device became inaccessible. With this update, the NULL pointer dereference for metadata_version has been fixed.
BZ#694092
The mdadm tool did not handle expansion of arrays which were not chunk size aligned. This happened because mdadm left the array prepared for reshape when the array expansion returned a message that the new chunk size was not divisible by the component size, which could prevent the array from being reassembled again later on. This update applies an upstream patch, which checks the alignment before preparing the array for expansion. The mdadm tool now rejects expansion of an array with incorrect chunk size alignment and the array can be reassembled later.
Users are advised to upgrade to this updated mdadm package, which resolves these bugs.
An updated mdadm package that fixes several bugs is now available for Red Hat Enterprise Linux 6.
The mdadm package contains a utility for creating, managing, and monitoring Linux MD (multiple disk) devices.

Bug Fixes

BZ#723135
When an array was changing level from redundant to non-redundant such as RAID 0, mdadm failed to exit and remained in memory. This caused a variety of issues, including a termination with a segmentation fault when two array transitions were executed sequentially. With this update, a patch has been provided to address this issue, and the monitor is now properly removed from memory after the backward takeover operation.
BZ#723137
If an array size was not properly aligned to the chunk size, the expansion process failed to start and the "New chunk size does not divide component size" error message was returned. This bug has been fixed, and the array alignment is now checked before the expansion process begins.
BZ#723139
Previously, when a volume was created with the "--size" option but without providing a chunk size and a container, mdadm used the "UnSet=65534" option for rounding the volume size before setting the default chunk size. This caused the new volume to be created with an incorrect size. This bug has been fixed, and the volume size is now properly rounded to the chunk size.
BZ#723140
When the expansion process of a RAID 0 volume was restarted, mdadm failed to correctly assemble the array because the critical section could not be restored from a backup file, and the "mdadm: Failed to restore critical section for reshape - sorry" error message was returned. A patch has been provided to address this issue, and now, the RAID 0 expansion process cannot be restarted, thus fixing this bug.
BZ#723141
Previously, mdadm incorrectly calculated reshape start data disks number (0) during the reshape restart operation and used it for calculations. This caused a variety of issues; for example, when two disks were added to the 3-disk RAID 5 array and the array under migration was disassembled and then assembled again, mdadm terminated unexpectedly. A set of patches has been provided to address this issue, and the reshape process is now properly restarted in the described scenario.
BZ#723142
When two arrays were configured in a container and the arrays were reassembled during a rebuild or initialization process, the stored checkpoint for one of the arrays was sometimes lost. Consequently, the restarted process did not use the checkpoint information and started from zero position instead. A patch has been provided to address this issue, and the restarted process now properly continues from the stored checkpoint.
Users of mdadm are advised to upgrade to this updated package, which fixes these bugs.