osaf/services/saf/avsv/avd/avd_su.c |  9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)


Problem: When Su admin operation is run on su, whose node is absent,
then amfd return TIMEOUT because node is absent and it is not able
to send message to amfnd. At the same time, Amfd increases
async_updt_cnt.node_updt and send checkpoint to standby controller.
On Standby controller, since node is absent so node id is not
in the data base, so in dec_node_snd_msg_id, avd_node_find_nodeid
return NULL and async_updt_cnt.node_updt is not increamented.
This causes mismatch of async_updt_cnt.node_updt on Act controller
and Standby controller during warm sync.

Analysis: Amfd should return Error as it doesn't know the state of su
or node.

Fix: Amfd is returning BAD_OP when such condition occurs.
This avoids mismatch in async_updt_cnt.node_updt between Act controller
and Standby controller.

diff --git a/osaf/services/saf/avsv/avd/avd_su.c 
b/osaf/services/saf/avsv/avd/avd_su.c
--- a/osaf/services/saf/avsv/avd/avd_su.c
+++ b/osaf/services/saf/avsv/avd/avd_su.c
@@ -1149,6 +1149,15 @@ static void su_admin_op_cb(SaImmOiHandle
                        goto done;
                }
 
+               if ((su->saAmfSUOperState == SA_AMF_OPERATIONAL_DISABLED) && 
+                               (su->su_on_node->saAmfNodeOperState == 
SA_AMF_OPERATIONAL_DISABLED)) {
+                       /* This means that node on which this su is hosted, is 
absent. */
+                       LOG_NO("Admin repair request for '%s', hosting node'%s' 
is absent", su_name->value,
+                                       su->su_on_node->name.value);
+                       rc = SA_AIS_ERR_BAD_OPERATION;
+                       goto done;
+               }
+
                /* forward the admin op req to the node director */
                if (avd_admin_op_msg_snd(su_name, AVSV_SA_AMF_SU, op_id,
                        su->su_on_node) == NCSCC_RC_SUCCESS) {

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to