src/amf/amfd/su.cc |  12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


Someone could change saAmfSUMaintenanceCampaign more than once in a CCB.
We should not assert / cause a node reboot because of this.

diff --git a/src/amf/amfd/su.cc b/src/amf/amfd/su.cc
--- a/src/amf/amfd/su.cc
+++ b/src/amf/amfd/su.cc
@@ -1869,9 +1869,17 @@ static void su_ccb_apply_modify_hdlr(str
                                su->saAmfSUMaintenanceCampaign = "";
                                TRACE("saAmfSUMaintenanceCampaign cleared for 
'%s'", su->name.c_str());
                        } else {
-                               
osafassert(su->saAmfSUMaintenanceCampaign.empty() == true);
-                               su->saAmfSUMaintenanceCampaign = Amf::to_string(
+                               const std::string saAmfSUMaintenanceCampaign = 
Amf::to_string(
                                        
reinterpret_cast<SaNameT*>(attr_mod->modAttr.attrValues[0]));
+                               // there is a check in completed callback to 
ensure saAmfSUMaintenanceCampaign is empty
+                               // before allowing modification but 
saAmfSUMaintenanceCampaign could be changed
+                               // multiple times in a CCB
+                               if (su->saAmfSUMaintenanceCampaign.empty() == 
false && 
+                                       
su->saAmfSUMaintenanceCampaign.compare(saAmfSUMaintenanceCampaign) != 0) {
+                                       LOG_WA("saAmfSUMaintenanceCampaign set 
multiple times in CCB for '%s'",
+                                               su->name.c_str());
+                               }
+                               su->saAmfSUMaintenanceCampaign = 
saAmfSUMaintenanceCampaign;
                                TRACE("saAmfSUMaintenanceCampaign set to '%s' 
for '%s'",
                                          
su->saAmfSUMaintenanceCampaign.c_str(), su->name.c_str());
                        }

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to