<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 &amp; 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 -&gt; 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>