Dear Mahesh, Would you please rebase this patch, it seems a little bit out date. ------------------------------------------------------------------- patching file src/ckpt/ckptd/cpd_sbevt.c Hunk #2 FAILED at 497 Hunk #3 FAILED at 511 2 out of 3 hunks FAILED -------------------------------------------------------------------
Sincerely, Hoang -----Original Message----- From: A V Mahesh [mailto:mahesh.va...@oracle.com] Sent: Tuesday, January 17, 2017 10:45 AM To: hoang.m...@dektech.com.au Cc: opensaf-devel@lists.sourceforge.net Subject: Re: [devel] [PATCH 1 of 1] cpd: syncup active standby mbcsv dtat for non-colcated ckpt above 3 replicas[#2253] Hi Hoang, It seem you missed to see this, can you please review. -AVM On 1/6/2017 5:47 PM, mahesh.va...@oracle.com wrote: > src/ckpt/ckptd/cpd_sbevt.c | 30 +++++++++++++++++++++--------- > 1 files changed, 21 insertions(+), 9 deletions(-) > > > Issue : According to Ckpt non-collocated ckpt implementation the cluster can have max 3 replicas > and minimum of 2 replicas,if the non-collocated ckpt is opened on controller initially , > by default cpsv service will create 2 replicas each one on controllers , > else the non-collocated ckpt is opened on payload initially,by default cpsv service will create 3 replicas > one on the payload and other each one on controllers,so any further opens form any other payload is not > required to create replicas locally.All other node ckpt application will access the data form the > default created active replica. > > In current code ha bug in active standby MBCSV checkpoint of CPD_CKPT_REF_INFO data is mismatching > while creating replica node for > non-collocated of a payload > > Fix : This patch address the issue by matching CPD_CKPT_REF_INFO data by not crating > cpd_ckpt_reploc_node cpd_ckpt_ref_info , for the any further opens > form any other payload opened the ckpt above max 3 replicas. > > diff --git a/src/ckpt/ckptd/cpd_sbevt.c b/src/ckpt/ckptd/cpd_sbevt.c > --- a/src/ckpt/ckptd/cpd_sbevt.c > +++ b/src/ckpt/ckptd/cpd_sbevt.c > @@ -456,6 +456,7 @@ uint32_t cpd_sb_proc_ckpt_dest_add(CPD_C > SaClmClusterNodeT cluster_node; > CPD_REP_KEY_INFO key_info; > CPD_NODE_REF_INFO *nref_info; > + bool noncoll_rep_on_payload = false; > > TRACE_ENTER(); > > @@ -497,9 +498,20 @@ uint32_t cpd_sb_proc_ckpt_dest_add(CPD_C > > reploc_info->rep_key.node_name = strdup(osaf_extended_name_borrow(&cluster_node.nodeName)); > reploc_info->rep_key.ckpt_name = strdup(ckpt_node->ckpt_name); > - if (!m_IS_SA_CKPT_CHECKPOINT_COLLOCATED(&ckpt_node->attributes)) > + if (!m_IS_SA_CKPT_CHECKPOINT_COLLOCATED(&ckpt_node->attributes)) { > reploc_info->rep_type = REP_NONCOLL; > - else { > + if ((cpd_get_slot_sub_id_from_mds_dest(msg->info.dest_add.mds_dest) == cb->cpd_remote_id) || > + (cpd_get_slot_sub_id_from_mds_dest(msg->info.dest_add.mds_dest) == cb->cpd_self_id) ) { > + TRACE_4(" reploc node add for non-collocated on controller ckpt_id:%llx", msg->info.dest_add.ckpt_id); > + proc_rc = cpd_ckpt_reploc_node_add(&cb->ckpt_reploc_tree, reploc_info, cb->ha_state, cb->immOiHandle); > + if (proc_rc != NCSCC_RC_SUCCESS) { > + TRACE_4("cpd standby dest add evt failed "); > + } > + } else { > + TRACE_4(" reploc node add for non-collocated on paylaod ckpt_id:%llx",msg->info.dest_add.ckpt_id); > + noncoll_rep_on_payload = true; > + } > + } else { > if ((ckpt_node->attributes.creationFlags & SA_CKPT_WR_ALL_REPLICAS) && > (m_IS_SA_CKPT_CHECKPOINT_COLLOCATED(&ckpt_node->attributes))) > reploc_info->rep_type = REP_SYNCUPD; @@ -511,17 +523,17 @@ > uint32_t cpd_sb_proc_ckpt_dest_add(CPD_C > if ((ckpt_node->attributes.creationFlags & SA_CKPT_WR_ACTIVE_REPLICA_WEAK) && > (m_IS_SA_CKPT_CHECKPOINT_COLLOCATED(&ckpt_node->attributes))) > reploc_info->rep_type = REP_NOTACTIVE; > - } > > - proc_rc = cpd_ckpt_reploc_node_add(&cb->ckpt_reploc_tree, reploc_info, cb->ha_state, cb->immOiHandle); > - if (proc_rc != NCSCC_RC_SUCCESS) { > - TRACE_4("cpd standby dest add evt failed "); > - /* goto free_mem; */ > + proc_rc = cpd_ckpt_reploc_node_add(&cb->ckpt_reploc_tree, reploc_info, cb->ha_state, cb->immOiHandle); > + if (proc_rc != NCSCC_RC_SUCCESS) { > + TRACE_4("cpd standby dest add evt failed "); > + } > } > } > > - cpd_ckpt_ref_info_add(node_info, ckpt_node); > - > + if (noncoll_rep_on_payload != true) { > + cpd_ckpt_ref_info_add(node_info, ckpt_node); > + } > TRACE_1("cpd standby destadd evt success ckpt_id %llx mdsdest: > %"PRIu64, msg->info.dest_add.ckpt_id, msg->info.dest_add.mds_dest); > > TRACE_LEAVE(); > > ---------------------------------------------------------------------- > -------- 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 > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ 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 Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel