- immnd prioritize re-introduce rsp from immd.
- immnd ignore broadcast events from IMMD if re-introduce on-going.
---
 src/imm/immnd/immnd_evt.c | 21 +++++++++++++++------
 src/imm/immnd/immnd_mds.c |  5 ++++-
 2 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/imm/immnd/immnd_evt.c b/src/imm/immnd/immnd_evt.c
index afc2106a0..714a75ca2 100644
--- a/src/imm/immnd/immnd_evt.c
+++ b/src/imm/immnd/immnd_evt.c
@@ -625,6 +625,21 @@ void immnd_process_evt(void)
                return;
        }
 
+       if ((cb->mIntroduced == 2) &&
+           ((evt->info.immnd.type == IMMND_EVT_D2ND_SYNC_START) ||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_SYNC_ABORT) ||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_PBE_PRTO_PURGE_MUTATIONS) 
||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_DUMP_OK) ||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_LOADING_OK) ||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_GLOB_FEVS_REQ) ||
+            (evt->info.immnd.type == IMMND_EVT_D2ND_GLOB_FEVS_REQ_2))) {
+               LOG_WA("DISCARD message %s from IMMD %x as re-intro on-going",
+                   immsv_get_immnd_evt_name(evt->info.immnd.type),
+                   evt->sinfo.node_id);
+               immnd_evt_destroy(evt, true, __LINE__);
+               return;
+       }
+
        if ((evt->info.immnd.type != IMMND_EVT_D2ND_GLOB_FEVS_REQ) &&
            (evt->info.immnd.type != IMMND_EVT_D2ND_GLOB_FEVS_REQ_2))
                immsv_msg_trace_rec(evt->sinfo.dest, evt);
@@ -10779,12 +10794,6 @@ static uint32_t immnd_evt_proc_fevs_rcv(IMMND_CB *cb, 
IMMND_EVT *evt,
                             : false;
        TRACE_ENTER();
 
-       if (cb->mIntroduced == 2) {
-               LOG_WA("DISCARD FEVS message:%llu from %x", msgNo, 
sinfo->node_id);
-               dequeue_outgoing(cb);
-               return NCSCC_RC_FAILURE;
-       }
-
        if (cb->highestProcessed >= msgNo) {
                /*We have already received this message, discard it. */
                LOG_WA(
diff --git a/src/imm/immnd/immnd_mds.c b/src/imm/immnd/immnd_mds.c
index 02cb4b552..d9cccd5d9 100644
--- a/src/imm/immnd/immnd_mds.c
+++ b/src/imm/immnd/immnd_mds.c
@@ -552,7 +552,10 @@ static uint32_t immnd_mds_rcv(IMMND_CB *cb, 
MDS_CALLBACK_RECEIVE_INFO *rcv_info)
        }
 
        /* Put it in IMMND's Event Queue */
-       if (pEvt->info.immnd.type == IMMND_EVT_A2ND_IMM_INIT)
+       if (pEvt->info.immnd.type == IMMND_EVT_D2ND_INTRO_RSP)
+               rc = m_NCS_IPC_SEND(&cb->immnd_mbx, (NCSCONTEXT)pEvt,
+                                   NCS_IPC_PRIORITY_VERY_HIGH);
+       else if (pEvt->info.immnd.type == IMMND_EVT_A2ND_IMM_INIT)
                rc = m_NCS_IPC_SEND(&cb->immnd_mbx, (NCSCONTEXT)pEvt,
                                    NCS_IPC_PRIORITY_HIGH);
        else
-- 
2.17.1



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

Reply via email to