[Drbd-dev] [PATCH] drbd_state: dont clear NEW_CUR_UUID when re-gained quorum
Dongsheng Yang
dongsheng.yang at easystack.cn
Mon Oct 12 17:33:53 CEST 2020
We cant clear NEW_CUR_UUID when we re-gain quorum, because
there is a secondary offline.
E.g:
There is a cluster with 3 nodes, 1 primary (node-1), 2 secondary (node-2, node-3)
(1) all uptodate, primary with quorum=2, quorum-minimum-redundancy=2.
(2) node-1 network error -> node-1 lost quorum
(3) node-3 down.
(4) node-1 network recovery -> node-1 regain quorum, clear NEW_CUR_UUID (node-1 uptodate, node-2 uptodate, node-3 offline)
(5) write data on primary node. -> as NEW_CUR_UUID cleared, the uuid is old.
(6) node-3 up. -> as the uuid in primary is old, same with what in node-3. there is no-sync.
Then we will loss the new data in node-3.
To fix it, dont clear NEW_CUR_UUID in (4).
Fixes: aaaa257b837a26ac4a38f2e86632d682fc57a2
Signed-off-by: Dongsheng Yang <dongsheng.yang at easystack.cn>
---
drbd/drbd_state.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drbd/drbd_state.c b/drbd/drbd_state.c
index 5b1744a..358bcc0 100644
--- a/drbd/drbd_state.c
+++ b/drbd/drbd_state.c
@@ -2592,7 +2592,6 @@ static void finish_state_change(struct drbd_resource *resource, struct completio
if (!device->have_quorum[OLD] && device->have_quorum[NEW]) {
clear_bit(PRIMARY_LOST_QUORUM, &device->flags);
- clear_bit(NEW_CUR_UUID, &device->flags);
}
}
--
1.8.3.1
More information about the drbd-dev
mailing list