linux/drivers/block/drbd
Lars Ellenberg 580b9767db drbd: fix broken state change after split-brain attach while connected
Situation:
we have diverging data sets, i.e. we had a split brain somewhen,
but currently are connected, one node diskless.

Then we try to attach that disk, figure it is consistent,
but has a diverging data set, we refuse to attach.

This led to strange state changes:
22:18:35 bb drbd1: peer( Unknown -> Primary ) conn( WFReportParams -> Connected) pdsk( DUnknown -> UpToDate )
22:19:30 bb drbd1: disk( Diskless -> Attaching )
22:19:30 bb drbd1: disk( Attaching -> Negotiating )
22:19:30 bb drbd1: drbd_sync_handshake:
22:19:30 bb drbd1: self 97BF25798B9D5222:F33D1F62ADE698DD:4269796F9D027C83:AC45D8B5C3C1BF93 bits:19449 flags:0
22:19:30 bb drbd1: peer 280DFB6E125465D3:F33D1F62ADE698DC:4269796F9D027C82:AC45D8B5C3C1BF93 bits:2575806 flags:0
22:19:30 bb drbd1: uuid_compare()=100 by rule 90
22:19:30 bb drbd1: Split-Brain detected, dropping connection!
22:19:30 bb drbd1: disk( Negotiating -> Diskless )

while the other side says:
22:19:30 aa drbd1: Split-Brain detected, dropping connection!
22:19:30 aa drbd1: Disk attach process on the peer node was aborted.
22:19:30 aa drbd1: conn( Connected -> TOO_LARGE ) pdsk( Diskless -> Consistent )

This should be fixed now.

Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
2010-03-11 16:00:09 +01:00
..
Kconfig drbd: Kconfig fix 2009-12-29 17:38:28 +01:00
Makefile drbd: remove tracing bits 2009-10-01 21:17:58 +02:00
drbd_actlog.c drbd: remove tracing bits 2009-10-01 21:17:58 +02:00
drbd_bitmap.c block: drbd: Convert semaphore to mutex 2010-03-11 13:30:16 +01:00
drbd_int.h drbd: --dry-run option for drbdsetup net ( drbdadm -- --dry-run connect <res> ) 2010-03-11 15:51:23 +01:00
drbd_main.c drbd: --dry-run option for drbdsetup net ( drbdadm -- --dry-run connect <res> ) 2010-03-11 15:51:23 +01:00
drbd_nl.c drbd: fix NULL pointer dereference on 4k hard sect size 2010-03-11 15:58:25 +01:00
drbd_proc.c drbd: Constify struct file_operations 2009-12-21 12:45:15 +01:00
drbd_receiver.c drbd: fix broken state change after split-brain attach while connected 2010-03-11 16:00:09 +01:00
drbd_req.c drbd_req.c: use part_[inc|dec]_in_flight() 2009-12-03 17:40:51 +01:00
drbd_req.h dropping unneeded include autoconf.h 2009-10-01 21:17:54 +02:00
drbd_strings.c
drbd_vli.h
drbd_worker.c drbd: remove unused #include <linux/version.h> 2009-12-21 13:41:16 +01:00
drbd_wrappers.h