Hi Hans

Without the return statement, RDE could potentially proceed with setting itself to active etc..

We didn't notice this because opensaf_reboot() has this, but we're no longer calling that.

    if (use_fallback) {
        /* Wait for the alarm signal we set up earlier. */
        for (;;)
            pause();
    }

Probably a better fix is to add something similar to opensaf_quick_reboot().

Thanks

Gary

On 20/2/19 11:54 pm, Hans Nordebäck wrote:
Hi Gary,

a question, why was the return's added? /BR HansN

On 2/19/19 05:10, Gary Lee wrote:
do not send RDE_MSG_ACTIVE_PROMOTION_SUCCESS to
main thread if lock cannot be obtained
---
   src/rde/rded/role.cc | 2 ++
   1 file changed, 2 insertions(+)

diff --git a/src/rde/rded/role.cc b/src/rde/rded/role.cc
index 06e93c6..3effc25 100644
--- a/src/rde/rded/role.cc
+++ b/src/rde/rded/role.cc
@@ -114,6 +114,7 @@ void Role::PromoteNode(const uint64_t cluster_size,
       LOG_ER("Unable to set active controller in consensus service");
       opensaf_quick_reboot("Unable to set active controller "
           "in consensus service");
+    return;
     }
RDE_CONTROL_BLOCK* cb = rde_get_control_block();
@@ -135,6 +136,7 @@ void Role::PromoteNode(const uint64_t cluster_size,
           LOG_ER("Unable to set active controller in consensus service");
           opensaf_quick_reboot("Unable to set active controller in "
               "consensus service");
+        return;
         }
         std::this_thread::sleep_for(std::chrono::seconds(1));
       }


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

Reply via email to