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

Reply via email to