NVMeofGwMap ack_map;
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();
if (avail == GW_AVAILABILITY_E::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 "<< map.Created_gws <<dendl;
goto set_propose;
}
}
else { // gw already created
- if (gw != group_gws.end()) // if GW reports Available but in monitor's database it is Unavailable
+ if (gw_exists) // if GW reports Available but in monitor's database it is Unavailable
// it means it did not perform "exit" after failover was set by NVMeofGWMon
if( pending_map.Created_gws[group_key][gw_id].availability == GW_AVAILABILITY_E::GW_UNAVAILABLE &&
pending_map.Created_gws[group_key][gw_id].performed_full_startup == false &&
}
// At this stage the gw has to be in the Created_gws
- if(gw == group_gws.end()){
+ if(!gw_exists){
dout(1) << "Error : Administratively deleted GW sends beacon " << gw_id <<dendl;
goto false_return; // not sending ack to this beacon
}