Ack, (tested the "pre-patch")/Regards HansN On 09/24/14 21:26, mathi.naic...@oracle.com wrote: > osaf/services/saf/clmsv/clms/clms_imm.c | 25 +++++++++++++++++++++---- > 1 files changed, 21 insertions(+), 4 deletions(-) > > > It is possible that when a payload that goes down during controller failover, > can reboot and come back fast. > As a part of failover processing, it is possible that the agent downs for > these nodes reach the new ACTIVE > before node down events. In this scenario, when sending a track callback with > COMPLETED step, we need > to check whether the track is for an agent that is on a node for which we > have received node downevent. > And if so, don't send track for any clm agent(subscriber) on that node. > > diff --git a/osaf/services/saf/clmsv/clms/clms_imm.c > b/osaf/services/saf/clmsv/clms/clms_imm.c > --- a/osaf/services/saf/clmsv/clms/clms_imm.c > +++ b/osaf/services/saf/clmsv/clms/clms_imm.c > @@ -1036,17 +1036,34 @@ void clms_send_track(CLMS_CB * cb, CLMS_ > /*Implies the change is on this > local node */ > rc = > clms_send_track_local(node,rec,SA_CLM_CHANGE_COMPLETED); > } > - } else > - rc = clms_prep_and_send_track(cb, node, > rec, SA_CLM_CHANGE_COMPLETED, > + } else { > + /* In the COMPLETED step and when there > is no admin op in progress, > + * we shouldn't send track to the same > node that left the cluster. > + * Because, this node would have > rebooted and come back so quick and > + * the subscriber would have come back > with the same address. > + * We may not yet have recieved the > service down of the agents on this node. > + */ > + if ((node_id != node->node_id) && > (node->admin_op == 0)){ > + rc = > clms_prep_and_send_track(cb, node, rec, SA_CLM_CHANGE_COMPLETED, > > notify_changes_only); > + } > + } > }else if (rec->track_flags & SA_TRACK_CHANGES){ > if(rec->track_flags & SA_TRACK_LOCAL){ > if(node_id == node->node_id){ > /*Implies the change is on this > local node */ > rc = > clms_send_track_local(node,rec,SA_CLM_CHANGE_COMPLETED); > } > - } else > - rc = clms_prep_and_send_track(cb, node, > rec, SA_CLM_CHANGE_COMPLETED, notify_changes); > + } else { > + /* In the COMPLETED step and when there > is no admin op in progress, > + * we shouldn't send track to the same > node that left the cluster. > + * Because, this node would have > rebooted and come back so quick and > + * the subscriber would have come back > with the same address. > + * We may not yet have recieved the > service down of the agents on this node. > + */ > + if ((node_id != node->node_id) && > (node->admin_op == 0)) > + rc = > clms_prep_and_send_track(cb, node, rec, SA_CLM_CHANGE_COMPLETED, > notify_changes); > + } > } > > if (rc != NCSCC_RC_SUCCESS) {
------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel