Discard Adm Impl continuation when peer IMMND is down. --- src/imm/immnd/ImmModel.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)
diff --git a/src/imm/immnd/ImmModel.cc b/src/imm/immnd/ImmModel.cc index 56d8c8d..25f8621 100644 --- a/src/imm/immnd/ImmModel.cc +++ b/src/imm/immnd/ImmModel.cc @@ -13804,6 +13804,7 @@ void ImmModel::discardNode(unsigned int deadNode, IdVector& cv, IdVector& gv, CcbVector::iterator i3; ConnVector implv; ConnVector::iterator i4; + ContinuationMap3::iterator ci3; TRACE_ENTER(); if (sImmNodeState == IMM_NODE_W_AVAILABLE) { @@ -13923,6 +13924,29 @@ void ImmModel::discardNode(unsigned int deadNode, IdVector& cv, IdVector& gv, osafassert((*i3)->mOriginatingConn == 0); // Dead node can not be us!! } } + + /* Discard Adm Impl continuation */ + for (ci3 = sAdmImplContinuationMap.begin(); + ci3 != sAdmImplContinuationMap.end();) { + if (m_NCS_NODE_ID_FROM_MDS_DEST(ci3->second.mReply_dest) == deadNode) { + TRACE_5("Discarding Adm Impl continuation %llu", ci3->first); + ci3 = sAdmImplContinuationMap.erase(ci3); + } else { + ++ci3; + } + } + + /* Discard Search Impl continuation */ + for (ci3 = sSearchImplContinuationMap.begin(); + ci3 != sSearchImplContinuationMap.end();) { + if (m_NCS_NODE_ID_FROM_MDS_DEST(ci3->second.mReply_dest) == deadNode) { + TRACE_5("Discarding Search Impl continuation %llu", ci3->first); + ci3 = sSearchImplContinuationMap.erase(ci3); + } else { + ++ci3; + } + } + TRACE_LEAVE(); } -- 2.7.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel