osaf/services/saf/amf/amfd/sg_npm_fsm.cc | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
An N+M SU, with an active assignment, can also get a standby assignment at the
same time. Details for reproducing this are in the ticket.
The SUSI returned from avd_sg_npm_su_othr() is not being checked to make sure
that its HA state is standby (among other things).
The SUSI returned from avd_sg_npm_su_othr() needs to check that its HA state is
standby, that its readiness state is in-service, and that its fsm state is not
unassigned. This is done in many parts of sg_npm_fsm.cc, but it is missing in
some parts.
diff --git a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
--- a/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
+++ b/osaf/services/saf/amf/amfd/sg_npm_fsm.cc
@@ -705,7 +705,10 @@ static AVD_SU *avd_sg_npm_su_chose_asgn(
/* Identify the standby SU if it already exists */
o_susi = avd_sg_npm_su_othr(cb, i_si->list_of_sisu->su);
- if (o_susi != AVD_SU_SI_REL_NULL) {
+ if ((o_susi != AVD_SU_SI_REL_NULL) &&
+ (o_susi->su->saAmfSuReadinessState ==
SA_AMF_READINESS_IN_SERVICE) &&
+ (o_susi->state == SA_AMF_HA_STANDBY) &&
+ (o_susi->fsm != AVD_SU_SI_STATE_UNASGN)) {
i_su = o_susi->su;
if ((i_su->sg_of_su->saAmfSGMaxStandbySIsperSU == 0) ||
(i_su->sg_of_su->saAmfSGMaxStandbySIsperSU >
i_su->saAmfSUNumCurrStandbySIs)) {
------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel