Amfd on standby somehow busy/stuck in a while. The si object was
removed and added again. Then this SI was assigned. Then amfd on standby
continue working again. But it will process event from MBCSV first
(e.g, saAmfSINumCurrActiveAssignments) and it will due to the SI not
created in data based yet.

The solution is to process IMM evt higher priority than MBCSV evt.
---
 src/amf/amfd/main.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/amf/amfd/main.cc b/src/amf/amfd/main.cc
index 03857a1ce..3b1536721 100644
--- a/src/amf/amfd/main.cc
+++ b/src/amf/amfd/main.cc
@@ -717,12 +717,6 @@ static void main_loop(void) {
         osafassert(0);
     }
 
-    if (fds[FD_MBCSV].revents & POLLIN) {
-      old_sync_state = cb->stby_sync_state;
-      if (NCSCC_RC_SUCCESS != avsv_mbcsv_dispatch(cb, SA_DISPATCH_ALL))
-        LOG_ER("avsv_mbcsv_dispatch FAILED");
-    }
-
     if (fds[FD_CLM].revents & POLLIN) {
       TRACE("CLM event rec");
       error = saClmDispatch(cb->clmHandle, SA_DISPATCH_ONE);
@@ -766,6 +760,12 @@ static void main_loop(void) {
       }
     }
 
+    if (fds[FD_MBCSV].revents & POLLIN) {
+      old_sync_state = cb->stby_sync_state;
+      if (NCSCC_RC_SUCCESS != avsv_mbcsv_dispatch(cb, SA_DISPATCH_ALL))
+        LOG_ER("avsv_mbcsv_dispatch FAILED");
+    }
+
     // Standby COLD_SYNC completed. Ask STANDBY to flush its job queue if size
     // is 0 on active.
     if ((Fifo::size() == 0) && (old_sync_state == AVD_STBY_OUT_OF_SYNC) &&
-- 
2.17.1



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

Reply via email to