[DRBD-cvs] svn commit by phil - r2966 - branches/drbd-8.0/drbd - From: "Montrose, Ernest" Hi all, We are seeing a proble

drbd-cvs at lists.linbit.com drbd-cvs at lists.linbit.com
Tue Jul 10 15:46:14 CEST 2007


Author: phil
Date: 2007-07-10 15:46:08 +0200 (Tue, 10 Jul 2007)
New Revision: 2966

Modified:
   branches/drbd-8.0/drbd/drbd_receiver.c
Log:
From:  "Montrose, Ernest"

Hi all,
We are seeing a problem where while syncing if the sync target detaches
then attempts to attach, both nodes end up in cs:WABitMapT state.  This
happens if both nodes where in Secondary/Secondary state and the dettach
happened on the SyncTarget.

The cause for this was that...

Node1:       C:0:H:H
Node2:       C:0:H:H

upon start of resync an "S" gets created.

sync target: S:0:C:H
sync source: C:S:H:H

but it should be

sync target: S:0:H:H
sync source: C:S:H:H

On the sync target side we got S left of C while on the sync 
source side we had C left of S. This was bad. The should not
appear in different order!

C should be left of S on sync source, and nowhere on the sync
target. (= even further left = in the future )

Ok, I guess the explanation is sufficient incomprehensible ;)

-Phil


Modified: branches/drbd-8.0/drbd/drbd_receiver.c
===================================================================
--- branches/drbd-8.0/drbd/drbd_receiver.c	2007-07-03 12:27:25 UTC (rev 2965)
+++ branches/drbd-8.0/drbd/drbd_receiver.c	2007-07-10 13:46:08 UTC (rev 2966)
@@ -2474,7 +2474,9 @@
 	if (drbd_recv(mdev, h->payload, h->length) != h->length)
 		return FALSE;
 
-	drbd_uuid_set(mdev,Current,be64_to_cpu(p->uuid));
+	/* Here the _drbd_uuid_ functions are right, current should
+	   _not_ be rotated into the history */
+	_drbd_uuid_set(mdev,Current,be64_to_cpu(p->uuid));
 	_drbd_uuid_set(mdev,Bitmap,0UL);
 
 	drbd_start_resync(mdev,SyncTarget);



More information about the drbd-cvs mailing list