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);
------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel