The call to saImmOiImplementerSet and saImmOiImplementerClear are allowed during
sync.  Therefore, there is possibility the messages of these calls arrived at
veteran nodes after finalizeSync was sent from IMMND coord but before
finalizeSync arrived at the veterans (over fevs).

In that case, the implementer record stored in sImplementerVector database will
then be different with the implementer record in finalizeSync and this mismatch
caused the IMMND veterans aborted with current implementation.

This ticket adds a check to ignore that implementer record in finalizeSync
as it is obsolete instead of terminating the veterans.
---
 src/imm/immnd/ImmModel.cc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/imm/immnd/ImmModel.cc b/src/imm/immnd/ImmModel.cc
index 7e27a83..8a9110b 100644
--- a/src/imm/immnd/ImmModel.cc
+++ b/src/imm/immnd/ImmModel.cc
@@ -19963,6 +19963,13 @@ SaAisErrorT 
ImmModel::finalizeSync(ImmsvOmFinalizeSync* req, bool isCoord,
                 "according to finalizeSync. Assunimg implSet bypased finSync",
                 info->mId, implName.c_str());
             explained = true;
+          } else if (info->mId == 0) {
+            LOG_NO(
+                "Sync-verify: Veteran node has different "
+                "Implementer-id %u for implementer: %s, it is 0 "
+                "according to finalizeSync. Assuming implClear bypased 
finSync",
+                ii->id, implName.c_str());
+            explained = true;
           } else {
             /* Here veteran claims either dead implementer, i.e. (info->mId ==
                0), or different implementer, i.e. new and different info->mId,
-- 
1.9.1


------------------------------------------------------------------------------
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

Reply via email to