From mboxrd@z Thu Jan 1 00:00:00 1970 From: jbrassow@sourceware.org Date: 27 Nov 2006 22:36:49 -0000 Subject: [Cluster-devel] cluster/cmirror-kernel/src dm-cmirror-client.c Message-ID: <20061127223649.24377.qmail@sourceware.org> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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;