Ack

Thanks
-Nagu

> -----Original Message-----
> From: Mathivanan Naickan Palanivelu
> Sent: 27 January 2014 15:49
> To: [email protected]; Nagendra Kumar
> Cc: [email protected]
> Subject: [PATCH 1 of 1] amfd to exit immediately upon receiving local amfnd
> down [#728]
> 
>  osaf/libs/core/common/daemon.c      |  2 +-
>  osaf/services/saf/amf/amfd/ndfsm.cc |  5 ++---
>  2 files changed, 3 insertions(+), 4 deletions(-)
> 
> 
> amfd to exit immediately upon receiving local amfnd down [#728] Today amfd
> exits when the /etc/init.d/opensafd script invokes osaf-amfd clc-cli script. 
> This
> delayed exit can cause two problems 1) amfd exit can create a race with dtmd
> exit 2) The delayed exit can create problems during failover like say the 
> amfd on
> the new active becomes functionally active and the old active still has a 
> stale
> amfd.
> This patch makes AMFD exit immediately using daemon_exit() upon recieving
> amfnd down event.
> 
> diff --git a/osaf/libs/core/common/daemon.c
> b/osaf/libs/core/common/daemon.c
> --- a/osaf/libs/core/common/daemon.c
> +++ b/osaf/libs/core/common/daemon.c
> @@ -369,7 +369,7 @@ static void sigterm_handler(int sig)
>   */
>  void daemon_exit(void)
>  {
> -     syslog(LOG_NOTICE, "exiting on signal %d", SIGTERM);
> +     syslog(LOG_NOTICE, "exiting for opensaf shutdown");
> 
>       if (__gcov_flush) {
>               __gcov_flush();
> diff --git a/osaf/services/saf/amf/amfd/ndfsm.cc
> b/osaf/services/saf/amf/amfd/ndfsm.cc
> --- a/osaf/services/saf/amf/amfd/ndfsm.cc
> +++ b/osaf/services/saf/amf/amfd/ndfsm.cc
> @@ -27,6 +27,7 @@
> 
>  #include <amfd.h>
>  #include <cluster.h>
> +#include <daemon.h>
> 
> 
> /************************************************************
> *****************
>   * Function: avd_node_up_func
> @@ -321,8 +322,7 @@ void avd_mds_avnd_down_evh(AVD_CL_CB *cb
>               // Do nothing if the local node goes down. Most likely due to
> system shutdown.
>               // If node director goes down due to a bug, the AMF watchdog
> will restart the node.
>               if (node->node_info.nodeId == cb->node_id_avd) {
> -                     TRACE("Ignoring down event for local node director");
> -                     goto done;
> +                     daemon_exit();
>               }
> 
>               if (avd_cb->avail_state_avd == SA_AMF_HA_ACTIVE) { @@ -
> 356,7 +356,6 @@ void avd_mds_avnd_down_evh(AVD_CL_CB *cb
>                       delete node_fovr;
>               }
>       }
> -done:
>       TRACE_LEAVE();
>  }
> 

------------------------------------------------------------------------------
WatchGuard Dimension instantly turns raw network data into actionable 
security intelligence. It gives you real-time visual feedback on key
security issues and trends.  Skip the complicated setup - simply import
a virtual appliance and go from zero to informed in seconds.
http://pubads.g.doubleclick.net/gampad/clk?id=123612991&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to