]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/OSD: send_incremental_map pass correct send_from
authorMatan Breizman <mbreizma@redhat.com>
Thu, 16 Nov 2023 11:06:56 +0000 (11:06 +0000)
committerMatan Breizman <mbreizma@redhat.com>
Mon, 18 Dec 2023 13:19:09 +0000 (13:19 +0000)
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
src/osd/OSD.cc

index d4b1fa6709925de8b18a123e399d97f2cc4c40bb..d4629630a41b7ac8228aea4c757509247452a6c7 100644 (file)
@@ -1402,7 +1402,7 @@ MOSDMap *OSDService::build_incremental_map_msg(epoch_t since, epoch_t to,
     max_bytes -= bl.length();
     m->maps[since] = std::move(bl);
   }
-  for (epoch_t e = since + 1; e <= to; ++e) {
+  for (epoch_t e = since; e <= to; ++e) {
     bufferlist bl;
     if (get_inc_map_bl(e, bl)) {
       m->incremental_maps[e] = bl;
@@ -7372,8 +7372,9 @@ void OSDService::maybe_share_map(
                << session->projected_epoch << dendl;
       return;
     }
-
-    send_from = session->projected_epoch;
+    // send incremental maps in the range of:
+    // (projected_epoch, osdmap]
+    send_from = session->projected_epoch + 1;
     dout(10) << __func__ << ": con " << con->get_peer_addr()
              << " map epoch " << session->projected_epoch
              << " -> " << osdmap->get_epoch()