From: Leonid Chernin Date: Tue, 3 Feb 2026 13:45:36 +0000 (+0200) Subject: nvmeofgw : do not process starting beacons from GWs in DELETING state X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=16396f7e19cb1b1ce77912ee042f8146dd749f22;p=ceph.git nvmeofgw : do not process starting beacons from GWs in DELETING state do not send unicast maps to GWs in DELETING state fixes https://tracker.ceph.com/issues/74661 Signed-off-by: Leonid Chernin (cherry picked from commit 4bf6df1d82c84d7ed1040b7d0f4ed7d0a30c658c) --- diff --git a/src/mon/NVMeofGwMap.cc b/src/mon/NVMeofGwMap.cc index b1eeada8fb0..0123a6b060e 100755 --- a/src/mon/NVMeofGwMap.cc +++ b/src/mon/NVMeofGwMap.cc @@ -41,10 +41,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( diff --git a/src/mon/NVMeofGwMon.cc b/src/mon/NVMeofGwMon.cc index 80d5d852a5e..50bf8c58b22 100644 --- a/src/mon/NVMeofGwMon.cc +++ b/src/mon/NVMeofGwMon.cc @@ -1097,6 +1097,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, header_ver, group_key, sequence);