Hi Praveen It’s SMF that seems to be doing that, as it happened during an upgrade. Seems to be intermittent and I haven’t been able to obtain a trace.
I just used immcfg to reproduce the behaviour. Thanks Gary -----Original Message----- From: praveen malviya <[email protected]> Organization: Oracle Corporation Date: Wednesday, 15 February 2017 at 7:53 pm To: gary <[email protected]>, <[email protected]>, <[email protected]>, <[email protected]> Cc: <[email protected]> Subject: Re: [PATCH 1 of 1] amfd: do not assert on saAmfSUMaintenanceCampaign modification [#2305] Hi Gary, One query: Using tool command "immcfg", only MULTI_VALUE attributes can be modified for two different values. immcfg cannot be used for single value attribute. Is the application a client similar to immcfg? And what is the use case here? I think such a modification for a single value attribute in a single CCB should not be allowed by IMM. Thanks, Praveen On 15-Feb-17 7:50 AM, Gary Lee wrote: > 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
