Description of problem: The original mirroring code ignored device failures. The current code raises an event and blocks I/O completion notices until a user-space daemon responds to the event. Old LVM code would not be listening for dm events, and would therefore leave the device in a blocking state. This is not a big problem for RHEL, as we ship a current LVM. However, the pvmove code has not yet been updated to take advantage of the event notifications - it just thinks it means the device is in-sync. This makes pvmove believe that its done its job, but the device is left in a blocking state. Since pvmove may be used to move data off of a failing device, this is not a good situation to have. The fix is to cause the mirror code to behave as before unless a flag is specified letting the kernel code know that it is ok to raise events and block I/O completion. The pvmove code (and previous versions of LVM) will not use this flag and will get the behaviour they expect. Current LVM code will use the flag and will be able to respond to the events. Version-Release number of selected component (if applicable): RHEL4-U2
Created attachment 119997 [details] proposed backwards compatibility patch This patch has not yet been reviewed or tested
*** Bug 173360 has been marked as a duplicate of this bug. ***
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2006-0132.html