NVMEOFHAMAP);
auto& group_gws = map.created_gws[group_key];
auto gw = group_gws.find(gw_id);
+ auto& pend_gws = pending_map.created_gws[group_key];
+ auto pend_gw = pend_gws.find(gw_id);
+
+ bool gw_exists = (gw != group_gws.end() && (pend_gw != pend_gws.end()));
const BeaconSubsystems& sub = m->get_subsystems();
auto now = ceph::coarse_mono_clock::now();
int beacons_till_ack =
bool send_ack = false;
if (avail == gw_availability_t::GW_CREATED) {
- if (gw == group_gws.end()) {
+ if (!gw_exists) {
gw_created = false;
dout(10) << "Warning: GW " << gw_id << " group_key " << group_key
<< " was not found in the map.created_gws "
// gw already created
} else { // first GW beacon should come with avail = Created
// if GW reports Avail/Unavail but in monitor's database it is Unavailable
- if (gw != group_gws.end()) {
+ if (gw_exists) {
correct_sequence = pending_map.put_gw_beacon_sequence_number
(gw_id, version, group_key, sequence, stored_sequence);
// it means it did not perform "exit" after failover was set by
}
}
// Beacon from GW in !Created state but it does not appear in the map
- if (gw == group_gws.end()) {
+ if (!gw_exists) {
dout(4) << "GW that does not appear in the map sends beacon, ignore "
<< gw_id << dendl;
mon.no_reply(op);