osaf/services/saf/avsv/avnd/avnd_comp.c |  10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)


 A component is faulted with component restart recovery. During this restarting 
phase,
 active or quiescing states of assigned SIs may change to quiesced state due to 
fault
 in the any other component of same SU with recovery component fail-over. If 
the restartable
 component gets instantiated before the removal of assignment, then AMF should 
assign quiesced
 state to it. AMF marks CSIs unassigned when it gets susi modification event 
from AMFD. So in this
 case all CSIs of the components should be marked assigning before giving 
callback to component.

diff --git a/osaf/services/saf/avsv/avnd/avnd_comp.c 
b/osaf/services/saf/avsv/avnd/avnd_comp.c
--- a/osaf/services/saf/avsv/avnd/avnd_comp.c
+++ b/osaf/services/saf/avsv/avnd/avnd_comp.c
@@ -1382,10 +1382,16 @@ uint32_t avnd_comp_csi_reassign(AVND_CB 
                 *             likely csi-rem failed); generate csi-done 
indication.
                 * removed -> comp-restart recovery executed after removal 
phase;
                 *            do nothing.
+                * unassigned-> means HA state of the SI changed during 
component restart 
+                *              recovery. This can occur when SI dependency is 
configured 
+                *              and fault of any other component of the same SU 
leads to 
+                *              component failover.
                 */
-               if (m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr) ||
+               if ((m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_ASSIGNING(curr) ||
                    m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_ASSIGNED(curr) ||
-                   m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_RESTARTING(curr)) {
+                   m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_RESTARTING(curr)) ||
+                               
(m_AVND_COMP_CSI_CURR_ASSIGN_STATE_IS_UNASSIGNED(curr) &&
+                               (SA_AMF_HA_QUIESCED == curr->si->curr_state))) {
                        /* mark the csi state assigning */
                        m_AVND_COMP_CSI_CURR_ASSIGN_STATE_SET(curr, 
AVND_COMP_CSI_ASSIGN_STATE_ASSIGNING);
 

------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to