Single machine mirroring is unaffected by this bug. When a device fails in a mirror, dmeventd is called to handle the event. This in turn calls the mirror specific DSO. The DSO determines that a device has failed and calls 'vgreduce --removemissing <vg>'. When that command (run through the liblvm2cmd interface) is called, it loads the cluster locking library. Upon the very first call into the locking library, the program dies. I haven't determined the cause. All pointers to functions seem to be fine, but when _lock_fn is called, dmeventd mysteriously dies. A _very_ simple workaround is to use 'system()' rather than calling 'lvm2_run'. I've tested this, and it works. I realize that there are memory issues involved in the forking/etc of this new process, but we have memory issues with the logging anyway and it's better than having the program die. Certainly, we will have to fix liblvm2cmd, but I don't understand the problem there and that could take some time.
This should be considered a blocker. However, if we get the simple fix in, we could probably reduce the severity.
We have identified some things that need fixing with the library but have opted to use the workaround for this release.
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/RHBA-2006-0434.html