Hi Alex,
ACK from me.
Tested with basic behavior.
Sincerely,
Hoang
-Original Message-
From: Alex Jones [mailto:alex.jo...@genband.com]
Sent: Monday, October 23, 2017 10:13 PM
To: hoang.m...@dektech.com.au
Cc: opensaf-devel@lists.sourceforge.net; Alex Jones
Subject: [PATCH 2/2] ckptnd: fix crash during checkpoint open timeout with
large sections [#1510]
v2
---
src/ckpt/ckptnd/cpnd_evt.c | 18 +++---
1 file changed, 7 insertions(+), 11 deletions(-)
diff --git a/src/ckpt/ckptnd/cpnd_evt.c b/src/ckpt/ckptnd/cpnd_evt.c index
a968f34..90b4e6c 100644
--- a/src/ckpt/ckptnd/cpnd_evt.c
+++ b/src/ckpt/ckptnd/cpnd_evt.c
@@ -702,7 +702,6 @@ static uint32_t cpnd_evt_proc_ckpt_open(CPND_CB *cb,
CPND_EVT *evt,
CPSV_EVT send_evt, *out_evt = NULL;
SaConstStringT ckpt_name = NULL;
uint32_t rc = NCSCC_RC_SUCCESS;
- bool node_added = false;
CPND_CPD_DEFERRED_REQ_NODE *node = NULL;
CPND_CKPT_CLIENT_NODE *cl_node = NULL;
CPND_CKPT_NODE *cp_node = NULL;
@@ -1027,8 +1026,6 @@ static uint32_t cpnd_evt_proc_ckpt_open(CPND_CB *cb,
CPND_EVT *evt,
goto ckpt_shm_node_free_error;
}
-node_added = true;
-
if (out_evt->info.cpnd.info.ckpt_info.ckpt_rep_create ==
true &&
cp_node->create_attrib.maxSections == 1) {
@@ -1038,7 +1035,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(CPND_CB *cb,
CPND_EVT *evt,
TRACE_4(
"cpnd ckpt rep create failed with
rc:%d",
rc);
- goto ckpt_shm_node_free_error;
+ goto ckpt_node_del_error;
}
}
cpnd_evt_destroy(out_evt);
@@ -1101,7 +1098,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(CPND_CB *cb,
CPND_EVT *evt,
(out_evt->info.cpnd.error != SA_AIS_OK))
{
send_evt.info.cpa.info.openRsp.error
=
out_evt->info.cpnd.error;
- goto ckpt_shm_node_free_error;
+ goto ckpt_node_del_error;
} else if ((out_evt) &&
(out_evt->info.cpnd.error ==
SA_AIS_OK) &&
@@ -1173,6 +1170,11 @@ static uint32_t cpnd_evt_proc_ckpt_open(CPND_CB *cb,
CPND_EVT *evt,
TRACE_4("cpnd ckpt open failure client_hdl:%llx", client_hdl);
goto agent_rsp;
+ckpt_node_del_error:
+ rc = cpnd_ckpt_node_del(cb, cp_node);
+ if (rc == NCSCC_RC_FAILURE)
+ LOG_ER("cpnd client tree del failed");
+
ckpt_shm_node_free_error:
cpnd_ckpt_replica_destroy(cb, cp_node, );
@@ -1204,12 +1206,6 @@ ckpt_node_free_error:
cpnd_tmr_stop(_node->ret_tmr);
cpnd_ckpt_sec_map_destroy(_node->replica_info);
- if (node_added) {
-rc = cpnd_ckpt_node_del(cb, cp_node);
-if (rc == NCSCC_RC_FAILURE)
- LOG_ER("cpnd client tree del failed");
- }
-
m_MMGR_FREE_CPND_CKPT_NODE(cp_node);
agent_rsp:
--
2.9.5
--
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