[Drbd-dev] DRBD-8: Patch to fix incorrect split-brain occurrence.

Lars Ellenberg Lars.Ellenberg at linbit.com
Tue Dec 19 17:13:48 CET 2006


/ 2006-12-19 10:45:04 -0500
\ Graham, Simon:
> In testing, we have run into a case where we unexpectedly get a
> split-brain situation - after some investigation I think I have found
> the reason - at the end of syncing, the SyncTarget side finishes up by
> setting it's UUID info to the same as the Source (in
> drbd_resync_finished) - the code that does this checks for connection
> state SyncTarget before doing this. 
> 
> Now, I have seen that sometimes the resync completes when in PausedSyncT
> state - for example, if the last set of blocks is already under way when
> we decide to go into the PausedSyncT state 

right, or "resync" "just happens" by application writes.

> - thus it's entirely possible
> to enter drbd_resync_finished with connection state PausedSyncT in which
> case we do finish up the resync but do not copy the UUID info - this
> means that the next time we need to resync, the code determines that we
> have a split-brain situation.
> 
> In other places in the code, checks are made for either SyncTarget or
> PausedSyncT so I propose fixing this (patch attached) the same way -
> have drbd_resync_finished check for either SyncTarget OR PausedSyncT.

right.

-- 
: Lars Ellenberg                            Tel +43-1-8178292-55 :
: LINBIT Information Technologies GmbH      Fax +43-1-8178292-82 :
: Vivenotgasse 48, A-1120 Vienna/Europe    http://www.linbit.com :


More information about the drbd-dev mailing list