Done. Thanks, Ramesh.
On 1/4/2017 2:35 PM, Hans Nordebäck wrote: > Hi Ramesh, > > A gentle reminder for review/Thanks HansN > > -----Original Message----- > From: Hans Nordeback [mailto:[email protected]] > Sent: den 22 december 2016 14:17 > To: [email protected]; Anders Widell <[email protected]> > Cc: [email protected] > 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 > [email protected] > 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 [email protected] https://lists.sourceforge.net/lists/listinfo/opensaf-devel
