osaf/services/saf/amf/amfnd/clc.cc |  8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)


When an Su contains one PI and one NPI comp and if terminate script
of NPI comp returns non-zero, but cleaup script of NPI returns zero,
then during opensafd stop, Amfnd crashes.
The reason is avnd_comp_csi_remove_done is called from 
avnd_comp_clc_terming_cleansucc
and SU-SI is deleted inside. When subsequent function avnd_comp_clc_st_chng_prc 
is called
Amfnd asserts because component doesnt have any csi as it got deleted in
avnd_comp_csi_remove_done.
So, since handling of 'SU Preinst and Comp Non-Preinst' and
'TERMINATING eq prv_st and UNINSTANTIATED eq final_st' are in 
avnd_comp_clc_st_chng_prc
so, better postpone avnd_comp_csi_remove_done to a later stage as it happens in
normal scenarion when terminate script of NPI comp return zero(success).

diff --git a/osaf/services/saf/amf/amfnd/clc.cc 
b/osaf/services/saf/amf/amfnd/clc.cc
--- a/osaf/services/saf/amf/amfnd/clc.cc
+++ b/osaf/services/saf/amf/amfnd/clc.cc
@@ -2159,7 +2159,13 @@ uint32_t avnd_comp_clc_terming_cleansucc
                                   done indication cannot be generated for 
assigned CSIs. 
                                 */
                                if 
(m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_REMOVING(csi))
-                                       rc = avnd_comp_csi_remove_done(cb, 
comp, csi); 
+                                       /* Csi remove done for PI comp only and 
not for NPI comp in PI SU.
+                                          When avnd_comp_clc_st_chng_prc will 
be called and it will be a
+                                          case of "SU Preinst and Comp 
Non-Preinst" and
+                                          TERMINATING == prv_st and 
UNINSTANTIATED == final_st, then
+                                          avnd_comp_csi_remove_done will be 
called. */
+                                       if 
(m_AVND_COMP_TYPE_IS_PREINSTANTIABLE(comp))
+                                               rc = 
avnd_comp_csi_remove_done(cb, comp, csi); 
 
                                /* Removal of last CSI from this component may 
lead to SUSI assign/remove 
                                   done indication, which eventually deletes 
all COMP-CSI record.

------------------------------------------------------------------------------
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=272487151&iu=/4140
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to