]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
nvmeofgw : do not process starting beacons from GWs in DELETING state 67331/head
authorLeonid Chernin <leonidc@il.ibm.com>
Tue, 3 Feb 2026 13:45:36 +0000 (15:45 +0200)
committerLeonid Chernin <leonidc@il.ibm.com>
Thu, 12 Feb 2026 14:35:59 +0000 (16:35 +0200)
           do not send unicast maps to GWs in DELETING state

           fixes https://tracker.ceph.com/issues/74661

Signed-off-by: Leonid Chernin <leonidc@il.ibm.com>
src/mon/NVMeofGwMap.cc
src/mon/NVMeofGwMon.cc

index 5d1a42089e4770515c121afba88ba211ed0739e8..b921ccb5519f7fa922b6d5c43c44d2c3360d5bca 100755 (executable)
@@ -42,10 +42,10 @@ void NVMeofGwMap::to_gmap(
       const auto& gw_id = gw_created_pair.first;
       const auto& gw_created  = gw_created_pair.second;
       gw_availability_t availability = gw_created.availability;
-      // Gateways expect to see UNAVAILABLE, not DELETING
-      // for entries in DELETING state
       if (gw_created.availability == gw_availability_t::GW_DELETING) {
-         availability = gw_availability_t::GW_UNAVAILABLE;
+         dout (4) << gw_id << "Send empty unicast map in Deleting state"
+                  << dendl;
+         continue;
       }
 
       auto gw_state = NvmeGwClientState(
index d9dc5b697f1e2bc5ba2f66009a13df255863901f..785b629fc45699173906f99fc693c789597a42f0 100644 (file)
@@ -931,6 +931,14 @@ bool NVMeofGwMon::prepare_beacon(MonOpRequestRef op)
               << map.created_gws << dendl;
       goto set_propose;
     } else {
+      if (pending_map.created_gws[group_key][gw_id].availability ==
+         gw_availability_t::GW_DELETING) {
+         dout(4) << "Beacon from GW in Created while in monitor's"
+                    " map it in DELETING state, ignore it"
+                 << gw_id << dendl;
+         mon.no_reply(op);
+         goto false_return; // not sending ack to this beacon
+      }
       pending_map.created_gws[group_key][gw_id].subsystems.clear();
       pending_map.set_gw_beacon_sequence_number(gw_id, version,
             group_key, sequence);