Ack. Thanks -Nagu > -----Original Message----- > From: Minh Hon Chau [mailto:[email protected]] > Sent: 16 September 2015 10:57 > To: [email protected]; Nagendra Kumar; Praveen Malviya; > [email protected] > Cc: [email protected] > Subject: [PATCH 1 of 3] samples: Fix amf_demo crashes if shutdown SU > [#1437] > > samples/amf/sa_aware/amf_demo.c | 16 ++++++++++++---- > 1 files changed, 12 insertions(+), 4 deletions(-) > > > The amf_demo sample crashes if shutdown SU due to NULL csiName, which > comes from a TARGET_ALL csi_callback. > > The #1437 raised for 2 points: > .1: Fix amf_demo crahes > .2: Verify the ha transition in csi lifecycle > > This patch is for point .1, which avoid the crash. It leaves a note that real > application should make sure its service successfully being moved to > QUIESCED after saAmfCSIQuiescingComplete. > > Another patch has been made for point .2, that actually checks all csi(s) > being > moved to QUIESCED and also verify the ha transition in csi lifecycle. This > patch seems to make amf_demo becoming a test program rather than an > abstract sample, so it's only attached to for testing, not for commit. > > diff --git a/samples/amf/sa_aware/amf_demo.c > b/samples/amf/sa_aware/amf_demo.c > --- a/samples/amf/sa_aware/amf_demo.c > +++ b/samples/amf/sa_aware/amf_demo.c > @@ -166,11 +166,19 @@ static void amf_csi_set_callback(SaInvoc > syslog(LOG_ERR, "saAmfCSIQuiescingComplete > FAILED - %u", rc); > exit(1); > } > + if (csi_desc.csiFlags == SA_AMF_CSI_TARGET_ONE) { > + rc = saAmfHAStateGet(my_amf_hdl, comp_name, > &csi_desc.csiName, &my_ha_state); > + if (rc != SA_AIS_OK) { > + syslog(LOG_ERR, "saAmfHAStateGet FAILED - > %u", rc); > + exit(1); > + } > + } else if (csi_desc.csiFlags == SA_AMF_CSI_TARGET_ALL) { > + // Application could iterate saAmfHAStateGet() for > every csi > + // which had been assigned to this component to > ensure > + // all csi(s) are QUIESCED > > - rc = saAmfHAStateGet(my_amf_hdl, comp_name, > &csi_desc.csiName, &my_ha_state); > - if (rc != SA_AIS_OK) { > - syslog(LOG_ERR, "saAmfHAStateGet FAILED - %u", > rc); > - exit(1); > + // temporary set to QUIESCED > + my_ha_state = SA_AMF_HA_QUIESCED; > } > > syslog(LOG_INFO, "My HA state is %s", > ha_state_name[my_ha_state]);
------------------------------------------------------------------------------ Monitor Your Dynamic Infrastructure at Any Scale With Datadog! Get real-time metrics from all of your servers, apps and tools in one place. SourceForge users - Click here to start your Free Trial of Datadog now! http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140 _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
