Hi Nhat Pham, On 1/5/2016 10:00 AM, Nhat Pham wrote: > RE: [devel] [PATCH 1 of 1] cpsv: improve handling unlink and close > non-collocated checkpoint [#1616] > > Hi Mahesh, > > By looking to the ticket #1616 description again, I think the scenario > and the cause of the problem that you mention is quite different with > the ones in the #1616. > > It would be clearer if this problem is fixed in a new ticket. How > would you think? > Sounds good. Let us have new ticket for it.
-AVM > > Best regards, > > Nhat Pham > > *From:*Nhat Pham [mailto:[email protected]] > *Sent:* Tuesday, January 5, 2016 11:18 AM > *To:* 'A V Mahesh' <[email protected]>; > '[email protected]' > <[email protected]> > *Subject:* RE: [devel] [PATCH 1 of 1] cpsv: improve handling unlink > and close non-collocated checkpoint [#1616] > > Hi Mahesh, > > I’ll include the fix in the new patch for this ticket and send it to > you for review. > > Best regards, > > Nhat Pham > > *From:*A V Mahesh [mailto:[email protected]] > *Sent:* Tuesday, January 5, 2016 10:46 AM > *To:* Nhat Pham <[email protected] > <mailto:[email protected]>>; > [email protected] > <mailto:[email protected]> > *Subject:* Re: [devel] [PATCH 1 of 1] cpsv: improve handling unlink > and close non-collocated checkpoint [#1616] > > Hi Nhat Pham, > > On 1/5/2016 8:19 AM, Nhat Pham wrote: > > But the replica IMM objects are not created. This is because when > unlink the checkpoint, the CPD doesn’t delete relating nodes from > ckpt_reploc_tree. > > This should be fixed too. > > > We will do in a New ticket ? or you would like to adders in this > ticket it self > > -AVM > > On 1/5/2016 8:19 AM, Nhat Pham wrote: > > Hi Mahesh, > > For the case you described below, a new replica is created with > same name. > > root@PL-3:~# ll /run/shm > > total 696 > > drwxrwxrwt 2 root root 100 Jan 5 09:02 ./ > > drwxr-xr-x 11 root root 440 Jan 5 09:01 ../ > > -rw-r--r-- 1 root root 704008 Jan 5 09:00 > opensaf_CPND_CHECKPOINT_INFO_131855 > > -rw-r--r-- 1 root root 8872 Jan 5 09:00 > opensaf_safCkpt=tes_131855_1 > > -rw-r--r-- 1 root root 8872 Jan 5 09:02 > opensaf_safCkpt=tes_131855_2 > > But the replica IMM objects are not created. This is because when > unlink the checkpoint, the CPD doesn’t delete relating nodes from > ckpt_reploc_tree. > > This should be fixed too. > > root@PL-3:~# immfind | grep safCkpt > > safApp=safCkptService > > safCkpt=test ç=============== No Replica IMM object is created > > Best regards, > > Nhat Pham > > ==== Create checkpoint safCkpt=test > > root@PL-3:~# immfind | grep safCkpt > > safApp=safCkptService > > safCkpt=test > > safReplica=safNode=PL-3\,safCluster=myClmCluster,safCkpt=test > > safReplica=safNode=SC-1\,safCluster=myClmCluster,safCkpt=test > > safReplica=safNode=SC-2\,safCluster=myClmCluster,safCkpt=test > > root@PL-3:~# ll /run/shm/ > > total 692 > > drwxrwxrwt 2 root root 80 Jan 5 09:00 ./ > > drwxr-xr-x 11 root root 440 Jan 5 09:01 ../ > > -rw-r--r-- 1 root root 704008 Jan 5 09:00 > opensaf_CPND_CHECKPOINT_INFO_131855 > > -rw-r--r-- 1 root root 8872 Jan 5 09:00 > opensaf_safCkpt=tes_131855_1 > > ==== Unlink checkpoint safCkpt=test – checkpoint is still being used. > > root@PL-3:~# ll /run/shm/ > > total 692 > > drwxrwxrwt 2 root root 80 Jan 5 09:00 ./ > > drwxr-xr-x 11 root root 440 Jan 5 09:01 ../ > > -rw-r--r-- 1 root root 704008 Jan 5 09:00 > opensaf_CPND_CHECKPOINT_INFO_131855 > > -rw-r--r-- 1 root root 8872 Jan 5 09:00 > opensaf_safCkpt=tes_131855_1 > > root@PL-3:~# immfind | grep safCkpt > > safApp=safCkptService > > ==== Create a new checkpoint with same name safCkpt=test > > root@PL-3:~# immfind | grep safCkpt > > safApp=safCkptService > > safCkpt=test ç=============== No Replica IMM object is created > > root@PL-3:~# ll /run/shm > > total 696 > > drwxrwxrwt 2 root root 100 Jan 5 09:02 ./ > > drwxr-xr-x 11 root root 440 Jan 5 09:01 ../ > > -rw-r--r-- 1 root root 704008 Jan 5 09:00 > opensaf_CPND_CHECKPOINT_INFO_131855 > > -rw-r--r-- 1 root root 8872 Jan 5 09:00 > opensaf_safCkpt=tes_131855_1 > > -rw-r--r-- 1 root root 8872 Jan 5 09:02 > opensaf_safCkpt=tes_131855_2 > > -----Original Message----- > From: A V Mahesh [mailto:[email protected]] > Sent: Monday, January 4, 2016 11:29 AM > To: [email protected] > <mailto:[email protected]> > Subject: Re: [devel] [PATCH 1 of 1] cpsv: improve handling unlink > and close non-collocated checkpoint [#1616] > > Hi Nhat Pham, > > As this patch fixed the issue of `unlinked checkpoint is deleted > although there is a client using the checkpoint` > > Can you please verify following subsequent case which is also to > be addressed : > > Say multiple application opened checkpoint and one application > closed with unlink , still some application are uniting the > checkpoint , at that moment the checkpoint is re-created by > specifying in an open call the SA_CKPT_CHECKPOINT_CREATE flag and > the same name of the checkpoint which is to be unlinked but > checkpoint is possibly not yet finally deleted. > > According to CPSV specification A new instance of the checkpoint > is created while the old instance of the checkpoint is possibly > not yet finally deleted. > > this means , at CPND while open called the > SA_CKPT_CHECKPOINT_CREATE > > flag and the same name of the checkpoint where checkpoint exist > with same name and unlink is already marked for that old instence > CPND should create a New of checkpoint/ replica ( this mean at a > given point of time two instance of cktp/replicas exist on cluster) > > -AVM > > On 12/9/2015 11:48 AM, A V Mahesh wrote: > > > Hi, > > > > > > Ok got it , I will review both cases > > > > > > -AVM > > > > > > On 12/9/2015 11:34 AM, Nhat Pham wrote: > > >> Hi Mahesh, > > >> > > >> For 'several problem', I mean 3 use cases where: > > >> 1,2 : the checkpoint replicas are not deleted immediately even no > > >> client exists > > >> 3: the checkpoint is deleted although there is a client using the > > >> checkpoint. > > >> > > >> The patch only addresses the problem in these 3 use cases. > > >> > > >> Best regards, > > >> Nhat Pham > > >> > > >> -----Original Message----- > > >> From: A V Mahesh [mailto:[email protected]] > > >> Sent: Wednesday, December 9, 2015 12:21 PM > > >> To: Nhat Pham <[email protected] > <mailto:[email protected]>>; [email protected] > <mailto:[email protected]> > > >> Cc: [email protected] > <mailto:[email protected]> > > >> Subject: Re: [PATCH 1 of 1] cpsv: improve handling unlink and > close > > >> non-collocated checkpoint [#1616] > > >> > > >> Hi Nhat > > >> > > >> >>There are several problems relating to closing and unlinking > > >> non-collocated checkpoint. > > >> > > >> I can see only one problem unlinked non-collocated checkpoint > is not > > >> getting deleted immediate even No client exist for that > non-collocated checkpoint. > > >> > > >> I see 1,2 ,3 are use-case of non-collocated checkpoint , in all > > >> cases the the non-collocated checkpoint is not getting deleted > > >> immediately is that you mean by `several problems` ? > > >> > > >> Please let me know is any other portable exist and it is being > > >> addressed in this patch , so that I can look the patch in that > point of view as well . > > >> > > >> -AVM > > >> > > >> > > >> On 12/9/2015 8:06 AM, Nhat Pham wrote: > > >>> osaf/services/saf/cpsv/cpnd/cpnd_evt.c | 51 > +++++++++++++------------ > > >>> osaf/services/saf/cpsv/cpnd/cpnd_proc.c | 66 > > >> ++++++++++++++++++-------------- > > >>> 2 files changed, 64 insertions(+), 53 deletions(-) > > >>> > > >>> > > >>> Problem: > > >>> -------- > > >>> There are several problems relating to closing and unlinking > > >> non-collocated checkpoint. > > >>> 1. A non-collocated checkpoint is firstly created on SC-2. It is > > >>> closed on > > >> SC-2. It is opened on PL-3. > > >>> It is unlinked. It is closes on PL-3. The replicas on SCs are not > > >>> destroyed although the checkpoint is unlinked and no client is > using it. > > >>> > > >>> 2. A non-collocated checkpoint is firstly created on PL-3. It is > > >>> closed on > > >> PL-3. It is opened on SC-2. > > >>> It is unlinked. It is closes on SC-2. The replicas on SCs and > PL-3 > > >>> are not destroyed although the checkpoint is unlinked and no > client > > >>> is using > > >> it. > > >>> 3. A non-collocated checkpoint is firstly created on PL-3. It is > > >>> closed on > > >> PL-3. It is opened on PL-4. > > >>> It is unlinked. The replicas on SCs and PL-3 are destroyed > although > > >>> the > > >> checkpoint is using on PL-4. > > >>> Solution: > > >>> --------- > > >>> The main cause of above problems is to use checking if > > >>> non-collocated replica is on PL to decide destroying the > replicas. > > >>> This mechanism is not correct in some cases. The solution is use > > >>> another mechanism which checks if there is any client using the > > >>> checkpoint on the cluster by > > >> verifying if the retention duration timer is active or not. > > >>> Test: > > >>> ----- > > >>> Following test cases were executed for both non-collocated and > > >>> collocated checkpoint to verify the solution: > > >>> 1. verify_unlink_ckpt_created_on_sc_before_close_it_from_sc > > >>> 2. verify_unlink_ckpt_created_on_sc_before_close_it_from_pl > > >>> 3. verify_unlink_ckpt_created_on_sc_after_close_it > > >>> 4. verify_unlink_ckpt_created_on_pl_before_close_it_from_pl > > >>> 5. verify_unlink_ckpt_created_on_pl_before_close_it_from_sc > > >>> 6. verify_unlink_ckpt_created_on_pl_before_close_it_from_other_pl > > >>> 7. verify_unlink_ckpt_created_on_pl_after_close_it > > >>> > > >>> diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c > > >>> b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c > > >>> --- a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c > > >>> +++ b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c > > >>> @@ -26,7 +26,7 @@ > > >>> > > >>> #include "cpnd.h" > > >>> > > >>> -extern uint32_t cpnd_ckpt_non_collocated_rplica_close(CPND_CB > *cb, > > >>> CPND_CKPT_NODE *cp_node, SaAisErrorT *error); > > >>> +extern uint32_t cpnd_proc_rdset_start(CPND_CB *cb, > CPND_CKPT_NODE > > >>> +*cp_node); > > >>> extern uint32_t cpnd_proc_non_colloc_rt_expiry(CPND_CB *cb, > > >>> SaCkptCheckpointHandleT ckpt_id); > > >>> > > >>> static uint32_t cpnd_evt_proc_cb_dump(CPND_CB *cb); @@ -1194,8 > > >>> +1194,7 @@ static uint32_t cpnd_evt_proc_ckpt_unlin > > >>> > > >> > /******************************************************************** > > >> ******* > > >> * > > >>> * Name : cpnd_evt_proc_ckpt_unlink_info > > >>> * > > >>> - * Description : Function to process check point unlink > > >>> - * from Applications. > > >>> + * Description : Function to process checkpoint unlink > event from CPD > > >>> * > > >>> * Arguments : CPND_CB *cb - CPND CB pointer > > >>> * CPSV_EVT *evt - Received Event structure > > >>> @@ -1209,10 +1208,11 @@ static uint32_t cpnd_evt_proc_ckpt_unlin > > >>> { > > >>> uint32_t rc = NCSCC_RC_SUCCESS; > > >>> CPND_CKPT_NODE *cp_node = NULL; > > >>> - SaAisErrorT error; > > >>> + SaAisErrorT error = SA_AIS_OK; > > >>> CPSV_SEND_INFO sinfo_cpa; > > >>> CPSV_EVT send_evt; > > >>> bool sinfo_cpa_flag = false; > > >>> + bool destroy_replica = false; > > >>> > > >>> TRACE_ENTER(); > > >>> memset(&send_evt, '\0', sizeof(CPSV_EVT)); @@ > -1220,25 +1220,35 > > >>> @@ static uint32_t cpnd_evt_proc_ckpt_unlin > > >>> if (cp_node == NULL) { > > >>> TRACE_4("cpnd ckpt node get failed for > > >> ckpt_id:%llx",evt->info.ckpt_ulink.ckpt_id); > > >>> rc = NCSCC_RC_FAILURE; > > >>> - send_evt.info.cpa.info.ulinkRsp.error = > > >> SA_AIS_ERR_NOT_EXIST; > > >>> + error = SA_AIS_ERR_NOT_EXIST; > > >>> goto agent_rsp; > > >>> } > > >>> > > >>> sinfo_cpa = cp_node->cpa_sinfo; > > >>> sinfo_cpa_flag = cp_node->cpa_sinfo_flag; > > >>> + > > >>> if (cp_node->is_close == true) { > > >>> - send_evt.info.cpa.info.ulinkRsp.error = SA_AIS_OK; > > >>> + /* For non-collocated checkpoint if retention > duration timer > > >> is active > > >>> + * (i.e the checkpoint is not opened by any client in > > >> cluster) the replica > > >>> + * should be destroyed in this case */ > > >>> + if > > >> > (!m_CPND_IS_COLLOCATED_ATTR_SET(cp_node->create_attrib.creationFlags) > > >> ) { > > >>> + if (cp_node->ret_tmr.is_active) { > > >>> + TRACE_1("cpnd destroy replica > ckpt_id:%llx - > > >> No client opens the non-collocated checkpoint ", > > >>> + cp_node->ckpt_id); > > >>> + destroy_replica = true; > > >>> + } > > >>> + } > > >>> + /* For collocated checkpoint, there is no client > opening the > > >> checkpoint on this > > >>> + * node. The replica should be destroyed. */ > > >>> + else > > >>> + destroy_replica = true; > > >>> + } > > >>> + > > >>> + if (destroy_replica == true) { > > >>> /* check timer is present,if yes...stop > the timer and > > >> destroy shm_info and the node */ > > >>> if (cp_node->ret_tmr.is_active) > > >>> cpnd_tmr_stop(&cp_node->ret_tmr); > > >>> > > >>> - if > > >> > (!m_CPND_IS_COLLOCATED_ATTR_SET(cp_node->create_attrib.creationFlags) > > >> ) { > > >>> - if > > >> (cpnd_is_noncollocated_replica_present_on_payload(cb, cp_node)) { > > >>> - rc = NCSCC_RC_SUCCESS; > > >>> - goto agent_rsp; > > >>> - } > > >>> - } > > >>> - > > >>> rc = cpnd_ckpt_replica_destroy(cb, > cp_node, &error); > > >>> if (rc == NCSCC_RC_FAILURE) { > > >>> TRACE_4("cpnd ckpt replica destroy > failed for > > >> ckpt_id:%llx,error > > >>> %u",cp_node->ckpt_id, error); @@ -1260,8 +1270,6 @@ static > uint32_t > > >>> cpnd_evt_proc_ckpt_unlin > > >>> > > >>> } > > >>> TRACE_4("cpnd proc ckpt unlink set for > > >>> ckpt_id:%llx",cp_node->ckpt_id); > > >>> - > > >>> - send_evt.info.cpa.info.ulinkRsp.error = SA_AIS_OK; > > >>> } > > >>> > > >>> agent_rsp: > > >>> @@ -1269,6 +1277,7 @@ static uint32_t cpnd_evt_proc_ckpt_unlin > > >>> if (sinfo_cpa_flag == 1) { > > >>> send_evt.type = CPSV_EVT_TYPE_CPA; > > >>> send_evt.info.cpa.type = > CPA_EVT_ND2A_CKPT_UNLINK_RSP; > > >>> + send_evt.info.cpa.info.ulinkRsp.error = error; > > >>> rc = cpnd_mds_send_rsp(cb, &sinfo_cpa, > &send_evt); > > >>> > > >>> } > > >>> @@ -1767,7 +1776,6 @@ static uint32_t cpnd_evt_proc_ckpt_activ > > >>> static uint32_t cpnd_evt_proc_ckpt_rdset_info(CPND_CB *cb, > > >>> CPND_EVT > > >> *evt, CPSV_SEND_INFO *sinfo) > > >>> { > > >>> CPND_CKPT_NODE *cp_node = NULL; > > >>> - SaAisErrorT error = SA_AIS_OK; > > >>> > > >>> TRACE_ENTER(); > > >>> /* get cp_node from ckpt_info_db */ @@ -1791,14 > +1799,9 @@ > > >>> static uint32_t cpnd_evt_proc_ckpt_rdset > > >>> } > > >>> > > >>> if (evt->info.rdset.type == CPSV_CKPT_RDSET_START) { > > >>> - if > > >> > (!m_CPND_IS_COLLOCATED_ATTR_SET(cp_node->create_attrib.creationFlags) > > >> ) { > > >>> - if (cpnd_ckpt_non_collocated_rplica_close(cb, > > >> cp_node, &error) == NCSCC_RC_FAILURE) { > > >>> - TRACE_4("cpnd ckpt relica close > failed for > > >> client_hdl:%llx,ckpt_id:%llx",evt->info.closeReq.client_hdl, > > >> cp_node->ckpt_id); > > >>> - > > >>> - } > > >>> - TRACE_LEAVE(); > > >>> - return NCSCC_RC_SUCCESS; > > >>> - } > > >>> + cpnd_proc_rdset_start(cb, cp_node); > > >>> + TRACE_LEAVE(); > > >>> + return NCSCC_RC_SUCCESS; > > >>> } > > >>> > > >>> /* if timer already started on one of the node > then what to do!!! > > >>> diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c > > >>> b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c > > >>> --- a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c > > >>> +++ b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c > > >>> @@ -2297,53 +2297,61 @@ uint32_t cpnd_ckpt_replica_close(CPND_CB > > >>> } > > >>> > > >>> > > >> > /******************************************************************** > > >> ******* > > >> ************* > > >>> - * Name : cpnd_ckpt_non_collocated_rplica_close > > >>> + * Name : cpnd_proc_rdset_start > > >>> * > > >>> - * Description : This is the function close the > non_collocated Ckpt > > >> Replica > > >>> + * Description : This is the function process the event > > >> CPSV_CKPT_RDSET_START > > >>> + * This event is only applicable for > non-collocated > > >> checkpoint > > >>> * Arguments : cb - CPND Control Block pointer > > >>> * cp_node - pointer to checkpoint node > > >>> * > > >>> * Return Values : NCSCC_RC_SUCCESS/NCSCC_RC_FAILURE > > >>> > > >>> > ******************************************************************** > > >>> ** > > >>> *******************/ > > >>> > > >>> -uint32_t cpnd_ckpt_non_collocated_rplica_close(CPND_CB *cb, > > >>> CPND_CKPT_NODE *cp_node, SaAisErrorT *error) > > >>> +uint32_t cpnd_proc_rdset_start(CPND_CB *cb, CPND_CKPT_NODE > > >>> +*cp_node) > > >>> { > > >>> SaTimeT presentTime; > > >>> + SaAisErrorT error = SA_AIS_OK; > > >>> uint32_t rc = NCSCC_RC_SUCCESS; > > >>> > > >>> TRACE_ENTER(); > > >>> - if (cp_node->ckpt_lcl_ref_cnt == 0) { > > >>> > > >>> - cp_node->is_close = true; > > >>> - cpnd_restart_set_close_flag(cb, cp_node); > > >>> + if > > >> > (m_CPND_IS_COLLOCATED_ATTR_SET(cp_node->create_attrib.creationFlags)) > > >> { > > >>> + TRACE_LEAVE(); > > >>> + return NCSCC_RC_SUCCESS; > > >>> + } > > >>> > > >>> - if (cp_node->is_unlink != true && > > >>> - > > >> > (m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(cp_node->create_attrib.retention > > >> Duratio > > >> n) != 0)) { > > >>> - m_GET_TIME_STAMP(presentTime); > > >>> - cpnd_restart_update_timer(cb, cp_node, presentTime); > > >>> + if (cp_node->ckpt_lcl_ref_cnt != 0) { > > >>> + LOG_ER("cpnd receives CPND_EVT_D2ND_RDSET_INFO > with START > > >> while ckpt_lcl_ref_cnt = %d", cp_node->ckpt_lcl_ref_cnt); > > >>> + TRACE_LEAVE(); > > >>> + return NCSCC_RC_FAILURE; > > >>> + } > > >>> > > >>> - cp_node->ret_tmr.type = > > >> CPND_TMR_TYPE_NON_COLLOC_RETENTION; > > >>> - cp_node->ret_tmr.uarg = cb->cpnd_cb_hdl_id; > > >>> - cp_node->ret_tmr.ckpt_id = cp_node->ckpt_id; > > >>> - cpnd_tmr_start(&cp_node->ret_tmr, > > >>> - > > >> > m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(cp_node->create_attrib.retentionD > > >> uration > > >> )); > > >>> - TRACE_1("cpnd ckpt ret tmr success > > >> ckpt_id:%llx",cp_node->ckpt_id); > > >>> - } else { > > >>> - /* Check for Non-Collocated Replica */ > > >>> - if > > >> (cpnd_is_noncollocated_replica_present_on_payload(cb, cp_node)) { > > >>> - return NCSCC_RC_SUCCESS; > > >>> - } > > >>> - rc = cpnd_ckpt_replica_destroy(cb, > cp_node, error); > > >>> - if (rc == NCSCC_RC_FAILURE) { > > >>> - TRACE_4("cpnd ckpt replica destroy > failed > > >> ckpt_id:%llx",cp_node->ckpt_id); > > >>> - return NCSCC_RC_FAILURE; > > >>> - } > > >>> - TRACE_1("cpnd ckpt replica destroy failed > > >> ckpt_id:%llx",cp_node->ckpt_id); > > >>> + cp_node->is_close = true; > > >>> + cpnd_restart_set_close_flag(cb, cp_node); > > >>> > > >>> - cpnd_restart_shm_ckpt_free(cb, cp_node); > > >>> - cpnd_ckpt_node_destroy(cb, cp_node); > > >>> + if (cp_node->is_unlink != true && > > >>> + > > >> > (m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(cp_node->create_attrib.retention > > >> Duratio > > >> n) != 0)) { > > >>> + m_GET_TIME_STAMP(presentTime); > > >>> + cpnd_restart_update_timer(cb, cp_node, presentTime); > > >>> + > > >>> + cp_node->ret_tmr.type = > CPND_TMR_TYPE_NON_COLLOC_RETENTION; > > >>> + cp_node->ret_tmr.uarg = cb->cpnd_cb_hdl_id; > > >>> + cp_node->ret_tmr.ckpt_id = cp_node->ckpt_id; > > >>> + cpnd_tmr_start(&cp_node->ret_tmr, > > >>> + > > >> > m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(cp_node->create_attrib.retentionD > > >> uration > > >> )); > > >>> + TRACE_1("cpnd ckpt ret tmr success > > >> ckpt_id:%llx",cp_node->ckpt_id); > > >>> + } else { > > >>> + rc = cpnd_ckpt_replica_destroy(cb, cp_node, &error); > > >>> + if (rc == NCSCC_RC_FAILURE) { > > >>> + LOG_ER("cpnd ckpt replica destroy failed > > >> ckpt_id:%llx, error:%d",cp_node->ckpt_id, error); > > >>> + return NCSCC_RC_FAILURE; > > >>> } > > >>> + TRACE_1("cpnd ckpt replica destroy success > > >>> +ckpt_id:%llx",cp_node->ckpt_id); > > >>> + > > >>> + cpnd_restart_shm_ckpt_free(cb, cp_node); > > >>> + cpnd_ckpt_node_destroy(cb, cp_node); > > >>> } > > >>> + > > >>> TRACE_LEAVE(); > > >>> return NCSCC_RC_SUCCESS; > > >>> } > > > > > > > ---------------------------------------------------------------------- > > > -------- _______________________________________________ > > > Opensaf-devel mailing list > > > [email protected] > <mailto:[email protected]> > > > https://lists.sourceforge.net/lists/listinfo/opensaf-devel > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Opensaf-devel mailing list > > [email protected] > <mailto:[email protected]> > > https://lists.sourceforge.net/lists/listinfo/opensaf-devel > ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
