Ack, (tested the "pre-patch")/Regards HansN On 09/24/14 21:26, mathi.naic...@oracle.com wrote: > osaf/services/saf/clmsv/clms/clms_evt.c | 16 +++++++++++++++- > 1 files changed, 15 insertions(+), 1 deletions(-) > > > It is quite possible that the agent downs are for the agents that were > running on the same node > that went down. So, process agent downs first, before processing node downs. > > diff --git a/osaf/services/saf/clmsv/clms/clms_evt.c > b/osaf/services/saf/clmsv/clms/clms_evt.c > --- a/osaf/services/saf/clmsv/clms/clms_evt.c > +++ b/osaf/services/saf/clmsv/clms/clms_evt.c > @@ -538,6 +538,12 @@ static uint32_t proc_rda_evt(CLMSV_CLMS_ > > /* fail over, become implementer */ > clms_imm_impl_set(clms_cb); > + > + /* Process agent down first. It is quite possible that > the agent > + * downs are for the agents that were running on the > same node > + * which went down and which will be processed in the > next line > + */ > + clms_process_clma_down_list(); > > /* Process node downs during failover */ > proc_downs_during_rolechange(); > @@ -545,7 +551,6 @@ static uint32_t proc_rda_evt(CLMSV_CLMS_ > } > > } > - clms_process_clma_down_list(); > done: > TRACE_LEAVE(); > return rc; > @@ -564,6 +569,7 @@ static uint32_t proc_mds_node_evt(CLMSV_ > uint32_t rc = NCSCC_RC_SUCCESS; > CLMS_CLUSTER_NODE *node = NULL; > SaUint32T node_id = evt->info.node_mds_info.node_id; > + TRACE_ENTER(); > > node = clms_node_get_by_id(node_id); > > @@ -577,6 +583,7 @@ static uint32_t proc_mds_node_evt(CLMSV_ > clms_track_send_node_down(node); > > } else if (clms_cb->ha_state == SA_AMF_HA_STANDBY) { > + TRACE("Adding the node_down record for node: %u to the list", > node_id); > NODE_DOWN_LIST *node_down_rec = NULL; > if (NULL == (node_down_rec = (NODE_DOWN_LIST *) > malloc(sizeof(NODE_DOWN_LIST)))) { > rc = SA_AIS_ERR_NO_MEMORY; > @@ -638,6 +645,7 @@ static uint32_t proc_clma_updn_mds_msg(C > } > } > } else if (clms_cb->ha_state == SA_AMF_HA_STANDBY) { > + TRACE("Adding to the clma down list"); > CLMA_DOWN_LIST *clma_down_rec = NULL; > if (clms_clma_entry_valid(clms_cb, evt->fr_dest)) { > if (NULL == (clma_down_rec = (CLMA_DOWN_LIST *) > malloc(sizeof(CLMA_DOWN_LIST)))) { > @@ -1615,6 +1623,7 @@ void clms_remove_node_down_rec(SaClmNode > NODE_DOWN_LIST *node_down_rec = clms_cb->node_down_list_head; > NODE_DOWN_LIST *prev_rec = NULL; > bool record_found = false; > + TRACE_ENTER(); > > while (node_down_rec) { > if (node_down_rec->node_id == node_id) { > @@ -1648,6 +1657,7 @@ void clms_remove_node_down_rec(SaClmNode > } > > if (!record_found) { > + TRACE("MDS node down for: %u not yet reached. Adding to the > list", node_id); > /* MDS node_down has not yet reached the STANDBY, > * Just add this checkupdate record to the list. MDS_DOWN > processing will delete it. > * If role change happens before MDS_DOWN is recieved, > @@ -1670,6 +1680,8 @@ void clms_remove_node_down_rec(SaClmNode > clms_cb->node_down_list_tail = node_down_rec; > node_down_rec->ndown_status = CHECKPOINT_PROCESSED; > } > + > + TRACE_LEAVE(); > } > > /** > @@ -1716,6 +1728,7 @@ void proc_downs_during_rolechange (void) > NODE_DOWN_LIST *node_down_rec = NULL; > NODE_DOWN_LIST *temp_node_down_rec = NULL; > CLMS_CLUSTER_NODE *node = NULL; > + TRACE_ENTER(); > > /* Process The NodeDowns that occurred during the role change */ > node_down_rec = clms_cb->node_down_list_head; > @@ -1738,5 +1751,6 @@ void proc_downs_during_rolechange (void) > clms_cb->node_down_list_head = NULL; > clms_cb->node_down_list_tail = NULL; > > + TRACE_LEAVE(); > } >
------------------------------------------------------------------------------ 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