You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Donald Smith (JIRA)" <ji...@apache.org> on 2015/02/04 18:36:36 UTC
[jira] [Comment Edited] (CASSANDRA-8738) "/etc/init.d/cassandra
stop" prints OK even when it doesn't work
[ https://issues.apache.org/jira/browse/CASSANDRA-8738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14305548#comment-14305548 ]
Donald Smith edited comment on CASSANDRA-8738 at 2/4/15 5:36 PM:
-----------------------------------------------------------------
Here's the change in context:
{noformat}
stop)
# Cassandra shutdown
echo -n "Shutdown Cassandra: "
su $CASSANDRA_OWNR -c "kill `cat $pid_file`"
for t in `seq 40`; do $0 status > /dev/null 2>&1 && sleep 0.5 || break; done
# Adding a sleep here to give jmx time to wind down (CASSANDRA-4483). Not ideal...
# Adam Holmberg suggests this, but that would break if the jmx port is changed
# for t in `seq 40`; do netstat -tnlp | grep "0.0.0.0:7199" > /dev/null 2>&1 && sleep 0.1 || break; done
sleep 5
THE_STATUS=`$0 status`
if [[ $THE_STATUS == *"stopped"* ]]
then
echo "OK"
else
echo "ERROR: could not stop the process: $THE_STATUS"
exit 1
fi
;;
{noformat}
was (Author: thinkerfeeler):
Here's the change in context:
{noformat}
stop)
# Cassandra shutdown
echo -n "Shutdown Cassandra: "
su $CASSANDRA_OWNR -c "kill `cat $pid_file`"
for t in `seq 40`; do $0 status > /dev/null 2>&1 && sleep 0.5 || break; done
# Adding a sleep here to give jmx time to wind down (CASSANDRA-4483). Not ideal...
# Adam Holmberg suggests this, but that would break if the jmx port is changed
# for t in `seq 40`; do netstat -tnlp | grep "0.0.0.0:7199" > /dev/null 2>&1 && sleep 0.1 || break; done
sleep 5
THE_STATUS=`$0 status`
if [[ $THE_STATUS == *"stopped"* ]]
then
echo "OK"
else
echo "ERROR: could not stop the process: $THE_STATUS"
fi
;;
{noformat}
> "/etc/init.d/cassandra stop" prints OK even when it doesn't work
> ----------------------------------------------------------------
>
> Key: CASSANDRA-8738
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8738
> Project: Cassandra
> Issue Type: Improvement
> Reporter: Donald Smith
>
> Sometimes I do {{/etc/init.d/cassandra stop}} and it prints out OK, but the server is still running. (This happens, for example, if it's busy doing GCs.) The current init script prints out OK after sleeping but without checking if the process really stopped. I suggest changing it to:
> {noformat}
> pd0-cassandra16 ~> diff -C 1 cassandra cassandra-original
> *** cassandra 2015-02-04 09:15:58.088209988 -0800
> --- cassandra-original 2015-02-04 09:15:40.293767501 -0800
> ***************
> *** 69,77 ****
> sleep 5
> ! THE_STATUS=`$0 status`
> ! if [[ $THE_STATUS == *"stopped"* ]]
> ! then
> ! echo "OK"
> ! else
> ! echo "ERROR: could not stop the process: $THE_STATUS"
> ! exit 1
> ! fi
> ;;
> --- 69,71 ----
> sleep 5
> ! echo "OK"
> ;;
> {noformat}
> Then it prints out OK only if the stop succeeded. Otherwise it prints out a message like
> {quote}
> ERROR: could not stop the process: cassandra (pid 10764) is running...
> {quote}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)