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=4bf6df1d82c84d7ed1040b7d0f4ed7d0a30c658c;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 --- diff --git a/src/mon/NVMeofGwMap.cc b/src/mon/NVMeofGwMap.cc index 5d1a42089e4..b921ccb5519 100755 --- a/src/mon/NVMeofGwMap.cc +++ b/src/mon/NVMeofGwMap.cc @@ -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( diff --git a/src/mon/NVMeofGwMon.cc b/src/mon/NVMeofGwMon.cc index d9dc5b697f1..785b629fc45 100644 --- a/src/mon/NVMeofGwMon.cc +++ b/src/mon/NVMeofGwMon.cc @@ -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);