osaf/services/saf/amf/amfd/sg_nway_fsm.cc |  3 +--
 osaf/services/saf/amf/amfd/si.cc          |  2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)


In the application, compcstype is not configured for csi of one si(say SI6).
Unlock-in and unlock of sg leads to only active assignments for Si execpt
SI6.

In assignment function avd_sg_nway_si_assign(), AMF tries to first assign
active HA state for SIs. If atleast one active assignment is given, standby
assignments are skipped. When all the active assignments are over same function
tries to assign standby HA state. This decision is taken based on one of the 
flags
is_act_ass_sent. Every time above function is invoked it tries to issue active
assignments by setting flag is_act_ass_sent to true and then it creates SUSI.
But this flag is not set to false when no SUSI (assignment) is created 
successfully.
In the issue, all SIs execpt SI6 are assigned active HA state. In SI6, CSIs 
could not
be assigned because compcstype is not configured for its CSI. So the flag 
remains true
even though no SUSI for SI6 was created. This function is invoked two times 
a)when SG
is unlocked and b) when AMF gets active assignment responses for other SIs.
Since SI6 is unassigned, function will always try for active assignments for 
SI6 and flag
is_act_ass_sent will remain true in each invocation of this function. Because 
of this
function will always return wihtout trying for standby assignments for other 
SIs.

In the same configuration if one tries to lock and unlock SIs other than SI6, 
then
lock operation will fail because avd_sg_nway_si_assign() will try for 
assignments
for both locked SI and SI6. Failure of active assignment for Si6 will change 
the return
status of function which, eventually, results in failure of lock operation.

Patch fixes the problem to set is_act_ass_sent true only when SUSI for atleast 
one SI
is created successfully. Also patch fixes the problem related to SI lock by 
checking
the SUSI creation for the SI.

diff --git a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc 
b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_nway_fsm.cc
@@ -1385,8 +1385,6 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
 
                /* if found, send active assignment */
                if (curr_su) {
-                       /* set the flag */
-                       is_act_ass_sent = true;
 
                        TRACE("send active assignment to %s", 
curr_su->name.value);
 
@@ -1395,6 +1393,7 @@ uint32_t avd_sg_nway_si_assign(AVD_CL_CB
                                /* add su to the su-oper list & change the fsm 
state to sg-realign */
                                avd_sg_su_oper_list_add(cb, curr_su, false);
                                m_AVD_SET_SG_FSM(cb, sg, AVD_SG_FSM_SG_REALIGN);
+                               is_act_ass_sent = true;
                        } else {
                                LOG_ER("%s:%u: %s (%u)", __FILE__, __LINE__, 
curr_si->name.value, curr_si->name.length);
                        }
diff --git a/osaf/services/saf/amf/amfd/si.cc b/osaf/services/saf/amf/amfd/si.cc
--- a/osaf/services/saf/amf/amfd/si.cc
+++ b/osaf/services/saf/amf/amfd/si.cc
@@ -866,7 +866,7 @@ static void si_admin_op_cb(SaImmOiHandle
                        goto done;
                }
 
-               if (err != NCSCC_RC_SUCCESS) {
+               if ((err != NCSCC_RC_SUCCESS) && (si->list_of_sisu == NULL)) {
                        report_admin_op_error(immOiHandle, invocation, 
SA_AIS_ERR_BAD_OPERATION, nullptr,
                                        "SI unlock of %s failed", 
objectName->value);
                        si->set_admin_state(SA_AMF_ADMIN_LOCKED);

------------------------------------------------------------------------------
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

Reply via email to