Hi Ramesh, A gentle reminder for review/Thanks HansN
-----Original Message----- From: Hans Nordeback [mailto:hans.nordeb...@ericsson.com] Sent: den 22 december 2016 14:17 To: ramesh.bet...@oracle.com; Anders Widell <anders.wid...@ericsson.com> Cc: opensaf-devel@lists.sourceforge.net Subject: [devel] [PATCH 1 of 1] opensafd: Disallow parallel execution of opensafd operations start and stop [#2244] osaf/services/infrastructure/nid/scripts/opensafd.in | 105 +++++++++++------- 1 files changed, 62 insertions(+), 43 deletions(-) diff --git a/osaf/services/infrastructure/nid/scripts/opensafd.in b/osaf/services/infrastructure/nid/scripts/opensafd.in --- a/osaf/services/infrastructure/nid/scripts/opensafd.in +++ b/osaf/services/infrastructure/nid/scripts/opensafd.in @@ -14,6 +14,7 @@ osafdirfile=@sysconfdir@/@PACKAGE_NAME@/osafdir.conf osafprog="opensafd" +osafprog_inprogress="opensafd_inprogress" # Source LSB functions library . /lib/lsb/init-functions @@ -28,6 +29,7 @@ fi binary=$pkglibdir/$osafprog lockfile=$lockdir/$osafprog +lockfile_inprogress=$lockdir/$osafprog_inprogress amfnd_bin=$pkglibdir/osafamfnd amfnd_pid=$pkgpiddir/osafamfnd.pid @@ -216,22 +218,30 @@ start() { #enable_coredump echo -n "Starting OpenSAF Services (Using $MDS_TRANSPORT):" - start_daemon $binary $args - RETVAL=$? - if [ $RETVAL -eq 0 ]; then - logger -t $osafprog "OpenSAF($osafversion - $osafcshash) services successfully started" - touch $lockfile - log_success_msg + if [ -e "$lockfile_inprogress" ]; then + RETVAL=1 + logger -t $osafprog "opensafd start/stop already in progress. Unable to contiune" + logger -t $osafprog "To forcefully start/stop OpenSAF remove $lockfile_inprogress" else - final_clean - log_failure_msg - if [ $REBOOT_ON_FAIL_TIMEOUT -ne 0 ]; then - logger -t $osafprog "Starting OpenSAF failed, rebooting..." - sleep $REBOOT_ON_FAIL_TIMEOUT - /sbin/reboot & + touch "$lockfile_inprogress" + start_daemon $binary $args + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + logger -t $osafprog "OpenSAF($osafversion - $osafcshash) services successfully started" + touch $lockfile + log_success_msg else - logger -t $osafprog "Starting OpenSAF failed" + final_clean + log_failure_msg + if [ $REBOOT_ON_FAIL_TIMEOUT -ne 0 ]; then + logger -t $osafprog "Starting OpenSAF failed, rebooting..." + sleep $REBOOT_ON_FAIL_TIMEOUT + /sbin/reboot & + else + logger -t $osafprog "Starting OpenSAF failed" + fi fi + rm -rf "$lockfile_inprogress" fi return $RETVAL } @@ -239,40 +249,49 @@ start() { stop() { logger -t $osafprog "Stopping OpenSAF Services" - amfpid=`pidofproc -p $amfnd_pid $amfnd_bin` - echo -n "Stopping OpenSAF Services: " - if [ -n "$amfpid" ]; then - kill $amfpid - timeout=$TERMTIMEOUT - while [ $timeout -gt 0 ]; do - sleep 1 - [ -d /proc/$amfpid ] || break - timeout=$((timeout-1)) - done - [ -d /proc/$amfpid ] && RETVAL=1 - if [ $RETVAL -eq 1 ]; then - logger -t $osafprog "amfnd has not yet exited, killing it forcibly." - kill -9 $amfpid + if [ -e "$lockfile_inprogress" ]; then + RETVAL=1 + logger -t $osafprog "opensafd start/stop already in progress. Unable to contiune" + logger -t $osafprog "To forcefully start/stop OpenSAF remove $lockfile_inprogress" + else + touch "$lockfile_inprogress" + amfpid=`pidofproc -p $amfnd_pid $amfnd_bin` + echo -n "Stopping OpenSAF Services: " + if [ -n "$amfpid" ]; then + kill $amfpid + timeout=$TERMTIMEOUT + while [ $timeout -gt 0 ]; do + sleep 1 + [ -d /proc/$amfpid ] || break + timeout=$((timeout-1)) + done + [ -d /proc/$amfpid ] && RETVAL=1 + if [ $RETVAL -eq 1 ]; then + logger -t $osafprog "amfnd has not yet exited, killing it forcibly." + kill -9 $amfpid + fi + else + pkill -9 osaf* >/dev/null 2>&1 fi - else - pkill -9 osaf* >/dev/null 2>&1 - fi - final_clean + final_clean - if [ $RETVAL -eq 0 ]; then - logger -t $osafprog "OpenSAF services successfully stopped" - log_success_msg - else - log_failure_msg - # If AMF fails to terminate its components, - # this system is out of control, reboot it now! - if [ $REBOOT_ON_FAIL_TIMEOUT -ne 0 ]; then - logger -t $osafprog "Stopping OpenSAF failed, rebooting..." - sleep $REBOOT_ON_FAIL_TIMEOUT - /sbin/shutdown -r now "OpenSAF termination failed (timeout)" + rm -rf "$lockfile_inprogress" + + if [ $RETVAL -eq 0 ]; then + logger -t $osafprog "OpenSAF services successfully stopped" + log_success_msg else - logger -t $osafprog "Stoping OpenSAF failed" + log_failure_msg + # If AMF fails to terminate its components, + # this system is out of control, reboot it now! + if [ $REBOOT_ON_FAIL_TIMEOUT -ne 0 ]; then + logger -t $osafprog "Stopping OpenSAF failed, rebooting..." + sleep $REBOOT_ON_FAIL_TIMEOUT + /sbin/shutdown -r now "OpenSAF termination failed (timeout)" + else + logger -t $osafprog "Stoping OpenSAF failed" + fi fi fi return $RETVAL ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/intel _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ 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