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