This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster/cmirror-kernel/src dm-cmirror-client.c ...
- From: jbrassow at sourceware dot org
- To: cluster-cvs at sources dot redhat dot com
- Date: 26 Apr 2007 16:55:51 -0000
- Subject: cluster/cmirror-kernel/src dm-cmirror-client.c ...
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL45
Changes by: jbrassow@sourceware.org 2007-04-26 17:55:51
Modified files:
cmirror-kernel/src: dm-cmirror-client.c dm-cmirror-server.c
Log message:
Bug 238031: cluster mirrors not handling all recovery/write conflicts
Problem is that the kernel (main mirror code) does not do any marks/clears when
writing to a region before its recovery. So, it is not possible for the server
to detect a conflict. Basically, we must turn back on the
'is_remote_recovering' function and disallow any writes to regions that are OR
WILL BE recovering.
It's really going to cause some pain during writes while mirrors are re-syncing.
The better fix for the future is to have the writes always mark/clear the
regions - then we can again remove the 'is_remote_recovering' function.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-client.c.diff?cvsroot=cluster&only_with_tag=RHEL45&r1=1.1.2.41.2.5&r2=1.1.2.41.2.6
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-server.c.diff?cvsroot=cluster&only_with_tag=RHEL45&r1=1.1.2.26.2.7&r2=1.1.2.26.2.8