[Cluster-devel] cluster/cmirror-kernel/src dm-cmirror-client.c
jbrassow at sourceware.org
jbrassow at sourceware.org
Mon Nov 27 22:36:49 UTC 2006
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: jbrassow at sourceware.org 2006-11-27 22:36:48
Modified files:
cmirror-kernel/src: dm-cmirror-client.c
Log message:
Bug 214517: hung cmirror operations due to looping mirror region requests
Once we've completed handling a new server, we must reset the 'new_server'
variable, so that if we need to retry a request we don't go through the
whole process again.
Also, added more error reporting for when a request must be retried.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/cmirror-kernel/src/dm-cmirror-client.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.1.2.27&r2=1.1.2.28
--- cluster/cmirror-kernel/src/Attic/dm-cmirror-client.c 2006/11/07 20:48:16 1.1.2.27
+++ cluster/cmirror-kernel/src/Attic/dm-cmirror-client.c 2006/11/27 22:36:48 1.1.2.28
@@ -406,6 +406,7 @@
if(len <= 0){
/* ATTENTION -- what do we do with this ? */
+ DMWARN("Error while listening for server response: %d", len);
error = len;
*retry = 1;
goto fail;
@@ -420,6 +421,8 @@
}
if (lr->u.lr_int_rtn == -ENXIO) {
+ DMDEBUG("Server (%u) says it no longer controls this log (%s)",
+ lc->server_id, lc->uuid + (strlen(lc->uuid) - 8));
lc->server_id = 0xDEAD;
*retry = 1;
goto fail;
@@ -540,6 +543,7 @@
(type == LRT_SELECTION)? "LRT_SELECTION": "UNKNOWN"
);
}
+ new_server = 0;
}
rs = NULL;
More information about the Cluster-devel
mailing list