<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=GBK">
</head>
<body>
Consider one situation below:<br>
1. primary A disconnects with secondary B & C both of which are
Uptodate<br>
2. start a verify from B to C<br>
3. during the verify above, A reconnects and starts a resync to C
because of<br>
primary-lost-quorum<br>
4. C becomes resync target and Inconsistent, then ignore the verify
requests<br>
from B which are already in its receive buffer<br>
5. verify from B to C stalls here<br>
<br>
To resolve it, at step 4, C should reply a message of P_RS_CANCEL to
B<br>
Here is the result if do that:<br>
Nov 6 16:25:46 node-2 kernel: drbd drbd1/0 drbd1 node-3: Skipped
verify, too busy: start=170208, size=48 (sectors)<br>
Nov 6 16:25:46 node-2 kernel: drbd drbd1/0 drbd1 node-3: Online
verify done but 6 4k blocks skipped (total 314 sec; paused 0 sec;
3336 K/sec)<br>
Nov 6 16:25:46 node-2 kernel: drbd drbd1/0 drbd1 node-3: repl(
VerifyS -> Established )<br>
<br>
Signed-off-by: ZhangDuan <duan.zhang@easystack.cn><br>
---<br>
drbd/drbd_receiver.c | 2 ++<br>
1 file changed, 2 insertions(+)<br>
<br>
diff --git a/drbd/drbd_receiver.c b/drbd/drbd_receiver.c<br>
index 268dbf4d..c6d4b7c9 100644<br>
--- a/drbd/drbd_receiver.c<br>
+++ b/drbd/drbd_receiver.c<br>
@@ -3273,6 +3273,8 @@ static int receive_DataRequest(struct
drbd_connection *connection, struct packet<br>
break;<br>
case P_OV_REQUEST:<br>
verify_skipped_block(peer_device, sector, size);<br>
+ drbd_send_ack_rp(peer_device, P_RS_CANCEL, p);<br>
+ break;<br>
/* Fall through */<br>
case P_RS_THIN_REQ:<br>
case P_RS_DATA_REQUEST:<br>
-- <br>
2.24.0.windows.2<br>
<br>
</duan.zhang@easystack.cn>
<pre class="moz-signature" cols="72">--
Sincerely Yours,
Zhang Duan</pre>
</body>
</html>