ACK
-AVM
On 1/29/2016 8:56 AM, Nhat Pham wrote:
> osaf/services/saf/cpsv/cpd/cpd_proc.c | 24 +++++++++++-------------
> 1 files changed, 11 insertions(+), 13 deletions(-)
>
>
> Problem:
> --------
> A non-collocated checkpoint is created on PL3 with retention duration = 0.
> Then it is opened
> on PL4. In case the PL3 restarts, the checkpoint is destroyed althougth
> there is a client on PL4 using it. This happens because the CPD uses incorrect
> algorithm to start retention duration timer.
>
> Solution:
> --------
> The CPD starts retention duration timer if the checkpoint is no longer used
> (i.e num_users = 0)
>
> diff --git a/osaf/services/saf/cpsv/cpd/cpd_proc.c
> b/osaf/services/saf/cpsv/cpd/cpd_proc.c
> --- a/osaf/services/saf/cpsv/cpd/cpd_proc.c
> +++ b/osaf/services/saf/cpsv/cpd/cpd_proc.c
> @@ -765,22 +765,20 @@ uint32_t cpd_process_cpnd_down(CPD_CB *c
>
> }
> /* if(ckpt_node->is_active_exists == false) */
> - if ((ckpt_node->ckpt_on_scxb1 == 0) &&
> (ckpt_node->ckpt_on_scxb2 == 0)) {
> - if
> (!cpd_is_noncollocated_replica_present_on_payload(cb, ckpt_node)) {
> + if (ckpt_node->num_users == 0) {
>
> - /* Zero Clients for
> non-collocated Ckpt , Start ret timer ,
> - broadcast to all CPNDs */
> - memset(&send_evt, 0,
> sizeof(CPSV_EVT));
> - send_evt.type =
> CPSV_EVT_TYPE_CPND;
> - send_evt.info.cpnd.type =
> CPND_EVT_D2ND_CKPT_RDSET;
> -
> send_evt.info.cpnd.info.rdset.ckpt_id = ckpt_node->ckpt_id;
> -
> send_evt.info.cpnd.info.rdset.type = CPSV_CKPT_RDSET_START;
> - (void)cpd_mds_bcast_send(cb,
> &send_evt, NCSMDS_SVC_ID_CPND);
> + /* Zero Clients for non-collocated
> Ckpt , Start ret timer ,
> + broadcast to all CPNDs */
> + memset(&send_evt, 0, sizeof(CPSV_EVT));
> + send_evt.type = CPSV_EVT_TYPE_CPND;
> + send_evt.info.cpnd.type =
> CPND_EVT_D2ND_CKPT_RDSET;
> + send_evt.info.cpnd.info.rdset.ckpt_id =
> ckpt_node->ckpt_id;
> + send_evt.info.cpnd.info.rdset.type =
> CPSV_CKPT_RDSET_START;
> + (void)cpd_mds_bcast_send(cb, &send_evt,
> NCSMDS_SVC_ID_CPND);
>
> - TRACE_4("cpd ckpt rdset success
> for ckpt_id:%llx,active dest:%"PRIu64,
> - ckpt_node->ckpt_id,
> ckpt_node->active_dest);
> + TRACE_4("cpd ckpt rdset success for
> ckpt_id:%llx,active dest:%"PRIu64,
> + ckpt_node->ckpt_id,
> ckpt_node->active_dest);
>
> - }
> }
> /* This is to delete the node from reploc_tree
> */
> cpd_ckpt_reploc_get(&cb->ckpt_reploc_tree,
> &key_info, &rep_info);
------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel