>> Description of problem:
libblkid has recently been patch to improve performance when facing a lot of device-mapper devices :
bz672985 - blkid runs very slow with many dm devices and a large blkid.tab file
Without this patch, blkid loops on ioctl'ing device-mapper for hours.
Dump has static compilation against liblkid library.
Extract of compiling dump from source RPM :
checking for blkid/blkid.h... yes
checking for blkid_get_devname in -lblkid... yes
gcc -static -o dump [...] -lblkid [...]
It should simply be recompiled to get the patched library.
=> With a simple recompilation of the dump RPM with the current libblkid (e2fsprogs), we have gone from 33 minutes down to 9 seconds for dumping a small file.
Version-Release number of selected component (if applicable):
>> How reproducible:
100%, but you need a proper environment to reproduce the issue (apparently : boot on SAN with many multipath is the most affected).
>> Steps to Reproduce:
1. get a boot on SAN machine, with ~100 multipath devices
>> Actual results:
wait, again and again. stracing, you will see a huge number of ioctl to device-mapper.
>> Expected results:
>> Additional info:
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
Previously, dump was linked against the libblkid library, which processed many device-mapper devices inefficiently. With this update, dump has been rebuilt against an updated version of the libblkid library, and it is now able to process many device-mapper devices efficiently.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.