[DRBD-user] Reproducible ASSERT( os.conn == C_WF_REPORT_PARAMS )

Brian Candler b.candler at pobox.com
Mon Jul 15 22:39:02 CEST 2013

Note: "permalinks" may not be as permanent as we would like,
direct links of old sources may well be a few messages off.

In that backend script,

add a loop before the promote,
that checks that the connection state really is "Connected",
and the disk state really is "UpToDate".

It is probably supposed to already wait in this fashion,
but apparently it does not.

Many thanks for your help! Here is what the code currently does, 
according to my reading of it.

"* checking disk consistency between source and target"

This is a hairy code path which could quite possibly be broken, but 
apparently it's checking that it's not degraded; which AFAICT means that 
connection state must be Connected and disk state must be UpToDate. Is 
this the bit which you think isn't being checked properly? If so I'll 
add some more debug in here.

"* changing into standalone mode"

- issue "drbdsetup <dev> disconnect"
- polls /proc/drbd until connection state is Standalone
- repeat for second device

"* changing disks into multi-master mode"

- issue "drbd setup <dev> <local-f:h:p> <remove-f:h:p> -A 
discard-zero-changes -B consensus --create-device -m"
- run "drbdsetup <path> show" repeatedly until it finds that 
local_addr/port and remote_addr/port are the expected values
- repeat for second device

[At this point I don't see any checks for disk state]

"* wait until resync is done"

- poll /proc/drbd until connection state is one of the following

   CS_CONNECTED = "Connected"
   CS_STARTINGSYNCS = "StartingSyncS"
   CS_STARTINGSYNCT = "StartingSyncT"
   CS_SYNCSOURCE = "SyncSource"
   CS_SYNCTARGET = "SyncTarget"
   CS_PAUSEDSYNCS = "PausedSyncS"
   CS_PAUSEDSYNCT = "PausedSyncT"

- repeat for second device
- print progress info and repeat until (I believe) the connection state 
is Connected

So, does the promotion part (disconnect followed by reconnect in 
multi-master mode) look to be the correct approach for drbd 8.3? If so 
I'll concentrate on the "checking disk consistency" bit.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linbit.com/pipermail/drbd-user/attachments/20130715/be88f035/attachment.htm>

More information about the drbd-user mailing list