5.48. device-mapper-multipath
Updated device-mapper-multipath packages that fix one bug are now available for Red Hat Enterprise Linux 6.
The device-mapper-multipath packages provide tools for managing multipath devices using the device-mapper multipath kernel module.
Bug Fix
- BZ#837594
- When a multipath vector (a dynamically allocated array) was resized to a smaller size, device-mapper-multipath did not reassign the pointer to the array. If the array location was changed by reducing its size, device-mapper-multipath corrupted its memory. With this update, device-mapper-multipath correctly reassigns the pointer in this scenario, and memory corruption no longer occurs.
All users of device-mapper-multipath are advised to upgrade to these updated packages, which fix this bug.
Updated device-mapper-multipath packages that fix several bugs and add various enhancements are now available for Red Hat Enterprise Linux 6.
The device-mapper-multipath packages provide tools to manage multipath devices using the device-mapper multipath kernel module.
Bug Fixes
- BZ#812832
- The
multipathd
daemon was not correctly stopping waiter threads during shutdown. The waiter threads could access freed memory and cause the daemon to terminate unexpectedly during shutdown. With this update, themutlipathd
daemon now correctly stops the waiter threads before they can access any freed memory and no longer crashes during shutdown. - BZ#662433
- When Device Mapper Multipath was stopped,
multipathd
did not disable thequeue_if_no_path
option on multipath devices by default. Whenmultipathd
was stopped during shutdown, I/O of the device was added to the queue if all paths to a device were lost, and the shutdown process became unresponsive. With this update, multipathd now sets thequeue_without_daemon
option tono
by default. As a result, all multipath devices stop queueing whenmultipathd
is stopped and multipath now shuts down as expected. - BZ#752989
- Device Mapper Multipath uses regular expressions in built-in device configurations to determine a multipath device so as to apply the correct configuration to the device. Previously, some regular expressions for resolving the device vendor name and product ID were not specific enough. As a consequence, some devices could be matched with incorrect device configurations. With this update, the product and vendor regular expressions have been modified so that all multipath devices are now configured properly.
- BZ#754586
- After renaming a device, there was a race condition between
multipathd
and udev to rename the new multipath device nodes. If udev renamed the device node first,multipathd
removed the device created by udev and failed to create the new device node. With this update,multipathd
immediately creates the new device nodes, and the race condition no longer occurs. As a result, the renamed device is now available as expected. - BZ#769527
- Previously, the
flush_on_last_dev
handling code did not implement handling of the queue feature properly. Consequently, even though theflush_on_last_del
feature was activated,multipathd
re-enabled queueing on multipath devices that could not be removed immediately after the last path device was deleted. With this update, the code has been fixed and when the user setsflush_on_last_del
, their multipath devices correctly disable queueing, even if the devices cannot be closed immediately. - BZ#796384
- Previously, Device Mapper Multipath used a fixed-size buffer to read the Virtual Device Identification page [0x83]. The buffer size was sometimes insufficient to accommodate the data sent by devices and the ALUA (Asymmetric Logical Unit Access) prioritizer failed. Device Mapper Multipath now dynamically allocates a buffer large enough for the Virtual Device Identification page and the ALUA prioritizer no longer fails in the scenario described.
- BZ#744210
- Previously,
multipathd
did not set themax_fds
option by default, which sets the maximum number of file descriptors thatmultipathd
can open. Also, theuser_friendly_names
setting could only be configured in thedefaults
section of/etc/multipath.conf
. The user had to setmax_fds
manually and override thedefault user_friendly_names
value in their device-specific configurations. With this update, multipath now setsmax_fds
to the system maximum by default, anduser_friendly_names
can be configured in thedevices
section ofmultipath.conf
. Users no longer need to set max_fds for large setups, and they are able to select user_friendly_names per device type. - BZ#744756
- Previously, to modify a built-in configuration, the vendor and product strings of the user's configuration had to be identical to the vendor and product strings of the built-in configuration. The vendor and product strings are regular expressions, and the user did not always know the correct vendor and product strings needed to modify a built-in configuration. With this update, the
hwtable_regex_match
option was added to the defaults section ofmultipath.conf
. If it is set toyes
, Multipath uses regular-expression matching to determine if the user's vendor and product strings match the built-in device configuration strings: the user can use the actual vendor and product information from their hardware in their device configuration, and it will modify the default configuration for that device. The option is set tono
by default. - BZ#750132
- Previously,
multipathd
was using a deprecated Out-of-Memory (OOM) adjustment interface. Consequently, the daemon was not protected from the OOM killer properly; the OOM killer could kill the daemon when memory was low and the user was unable to restore failed paths. With this update,multipathd
now uses the new Out-of-Memory adjustment interface and can no longer be killed by the Out-of-Memory killer. - BZ#702222
- The
multipath.conf
file now contains a comment which informs the user that the configuration must be reloaded for any changes to take effect. - BZ#751938
- The
multipathd
daemon incorrectly exited with code1
whenmultipath -h
(print usage) was run. With this update, the underlying code has been modified andmultipathd
now returns code0
as expected in the scenario described. - BZ#751039
- Some
multipathd
threads did not check ifmultipathd
was shutting down before they started their execution. Consequently, themultipathd
daemon could terminate unexpectedly with a segmentation fault on shutdown. With this update, themultipathd
threads now check ifmultipathd
is shutting down before triggering their execution, andmultipathd
no longer terminates with a segmentation fault on shutdown. - BZ#467709
- The
multipathd
daemon did not have a failover method to handle switching of path groups when multiple nodes were using the same storage. Consequently, if one node lost access to the preferred paths to a logical unit, while the preferred path of the other node was preserved,multipathd
could end up switching back and forth between path groups. This update adds thefollowover
failback method to device-mapper-multipath. If thefollowover
failback method is set,multipathd
does not fail back to the preferred path group, unless it just came back online. When multiple nodes are using the same storage, a path failing on one machine now no longer causes the path groups to continually switch back and forth.
Enhancements
- BZ#737051
- The NetApp brand name has been added to the documentation about the RDAC (Redundant Disk Array Controller) checker and prioritizer.
- BZ#788963
- The built-in device configuration for Fujitsu ETERNUS has been added.
- BZ#760852
- If the multipath checker configuration was set to
tur
, the checks were not performed asynchronously. If a device failed and the checker was waiting for the SCSI layer to fail back, the checks on other paths were kept waiting. The checker has been rewritten so as to check the paths asynchronously, and the path checking on other paths continues as expected. - BZ#799908
- A built-in configuration for IBM XIV Storage System has been added.
- BZ#799842
- The NetApp LUN built-in configuration now uses the
tur
path checker by default. Also flush_on_last_del has been enabled, dev_loss_tmo has been set toinfinity
, fast_io_fail_tmo has been set to5
, and pg_init_retries has been set to50
.
Users of device-mapper-multipath should upgrade to these updated packages, which fix these bugs and add these enhancements.