During normal mirror operation (i.e. when the devices are in-sync), a write is preceded by marking the log and is followed by clearing the log. However, when the mirror is in recovery, the marks and clears are not performed. For single machine mirroring, this is fine; because the mirroring code can control conflicts between writes and re-syncing via the region hashing code. However, this is not possible in a cluster. If a remote machine does not mark the log for a non-sync'ed write, it is impossible to tell when/if there will be a conflict with the re-syncing process. [RHEL 4 must currently delay writes to non-synced regions until they have been recovered - a sometimes excessive delay.] Marking/clearing regions that are not-in-sync will allow the (cluster) logging code to avoid handing out re-sync work that might conflict with an outstanding write. It can also delay writes briefly to a region that is being resync'ed.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
assigned -> post
This request was evaluated by Red Hat Kernel Team for inclusion in a Red Hat Enterprise Linux maintenance release, and has moved to bugzilla status POST.
committed in stream U6 build 55.15. A test kernel with this patch is available from http://people.redhat.com/~jbaron/rhel4/
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-2007-0791.html