Hi Brett,

On Tue, Jan 25, 2011 at 08:47:41PM +0000, Brett Delle Grazie wrote:
> Hi Dejan,
> 
> >>>>
> >>>> OK. Could you please produce new patch which would keep the
> >>>> obsolete parameters, but mark them as such in the meta-data.
> >>>> That way we can keep the existing installations happy. I guess
> >>>> that you could anyway use the meta timeout parameter, it would
> >>>> anyway need to be set to something higher than
> >>>> tomcat_stop_timeout.
> >>
> >> Will do.
> 
> Attached patch uses meta-data-timeout and ignores tomcat_stop_timeout this is
> necessary because tomcat_stop_timeout should always be less than meta timeout
> otherwise the resource agent would never have worked properly.  Note that the
> stop operation is now a blocking call, before it was a background one.

Applied. Many thanks for the contributions.

Cheers,

Dejan

> -- 
> Best Regards,
> 
> Brett Delle Grazie

> From e883f8443e96b82af1a54220aa25b7289d3be81f Mon Sep 17 00:00:00 2001
> From: Brett Delle Grazie <[email protected]>
> Date: Tue, 25 Jan 2011 20:38:15 +0000
> Subject: [PATCH] Med: tomcat: Use Tomcat stop TIMEOUT -force to improve stop
> 
> The tomcat stop script can be told to forcefully terminate tomcat if it
> doesn't shut down nicely within a specified period. Using this reduces
> the stop case to almost a simple 'call tomcat stop script in blocking
> mode'.  The timeout is set to one second shorter than the stop operation
> timeout. The tomcat stop script checks for and uses the PID file.
> ---
>  heartbeat/tomcat |   59 +++++++++++------------------------------------------
>  1 files changed, 13 insertions(+), 46 deletions(-)
> 
> diff --git a/heartbeat/tomcat b/heartbeat/tomcat
> index 1248a97..1eaac98 100755
> --- a/heartbeat/tomcat
> +++ b/heartbeat/tomcat
> @@ -24,8 +24,8 @@
>  # OCF parameters:
>  #   OCF_RESKEY_tomcat_name - The name of the resource. Default is tomcat
>  #   OCF_RESKEY_script_log  - A destination of the log of this script. 
> Default /var/log/OCF_RESKEY_tomcat_name.log
> -#   OCF_RESKEY_tomcat_stop_timeout  - Time-out at the time of the stop. 
> Default is 5
> -#   OCF_RESKEY_tomcat_suspend_trialcount  - The re-try number of times 
> awaiting a stop. Default is 10
> +#   OCF_RESKEY_tomcat_stop_timeout  - Time-out at the time of the stop. 
> Default is 5. DEPRECATED
> +#   OCF_RESKEY_tomcat_suspend_trialcount  - The re-try number of times 
> awaiting a stop. Default is 10. DEPRECATED
>  #   OCF_RESKEY_tomcat_user  - A user name to start a resource. Default is 
> root
>  #   OCF_RESKEY_statusurl - URL for state confirmation. Default is 
> http://127.0.0.1:8080
>  #   OCF_RESKEY_java_home - Home directory of Java. Default is none
> @@ -175,21 +175,23 @@ END_TOMCAT_START
>  # Stop Tomcat
>  stop_tomcat()
>  {
> +     STOP_TIMEOUT=$((OCF_RESKEY_CRM_meta_timeout/1000-1))
> +
>       cd "$CATALINA_HOME/bin"
>  
>       echo "`date "+%Y/%m/%d %T"`: stop  ###########################" >> 
> "$TOMCAT_CONSOLE"
>  
>       if [ "$RESOURCE_TOMCAT_USER" = RUNASIS ]; then
> -             "$CATALINA_HOME/bin/catalina.sh" stop \
> -                     >> "$TOMCAT_CONSOLE" 2>&1 &
> +             "$CATALINA_HOME/bin/catalina.sh" stop $STOP_TIMEOUT -force \
> +                     >> "$TOMCAT_CONSOLE" 2>&1
>       else
> -             cat<<-END_TOMCAT_STOP | su - -s /bin/sh "$RESOURCE_TOMCAT_USER" 
> >> "$TOMCAT_CONSOLE" 2>&1 &
> +             cat<<-END_TOMCAT_STOP | su - -s /bin/sh "$RESOURCE_TOMCAT_USER" 
> >> "$TOMCAT_CONSOLE" 2>&1
>                       export JAVA_HOME=${JAVA_HOME}
>                       export JAVA_OPTS="${JAVA_OPTS}"
>                       export CATALINA_HOME=${CATALINA_HOME}
>                       export CATALINA_BASE=${CATALINA_BASE}
>                       export CATALINA_PID=${CATALINA_PID}
> -                     $CATALINA_HOME/bin/catalina.sh stop
> +                     $CATALINA_HOME/bin/catalina.sh stop $STOP_TIMEOUT -force
>  END_TOMCAT_STOP
>       fi
>  
> @@ -197,40 +199,7 @@ END_TOMCAT_STOP
>       while isalive_tomcat; do
>               sleep 1
>               lapse_sec=`expr $lapse_sec + 1`
> -             ocf_log debug "stop_tomcat[$TOMCAT_NAME]: stop NORM 
> $lapse_sec/$TOMCAT_STOP_TIMEOUT"
> -             if [ $lapse_sec -ge $TOMCAT_STOP_TIMEOUT ]; then
> -                     break
> -             fi
> -     done
> -
> -     if isalive_tomcat; then
> -             lapse_sec=0
> -             while true; do
> -                     sleep 1
> -                     lapse_sec=`expr $lapse_sec + 1`
> -                     ocf_log debug "stop_tomcat[$TOMCAT_NAME]: suspend 
> tomcat by SIGTERM ($lapse_sec/$TOMCAT_SUSPEND_TRIALCOUNT)"
> -                     pkill -TERM -f "${SEARCH_STR}"
> -                     if isalive_tomcat; then
> -                             ocf_log debug "stop_tomcat[$TOMCAT_NAME]: 
> suspend tomcat by SIGQUIT ($lapse_sec/$TOMCAT_SUSPEND_TRIALCOUNT)"
> -                             pkill -QUIT -f "${SEARCH_STR}"
> -                             if isalive_tomcat; then
> -                                     if [ $lapse_sec -ge 
> $TOMCAT_SUSPEND_TRIALCOUNT ]; then
> -                                             break
> -                                     fi
> -                             else
> -                                     break
> -                             fi
> -                     else
> -                             break
> -                     fi
> -             done
> -     fi
> -
> -     lapse_sec=0
> -     while isalive_tomcat; do
> -             sleep 1
> -             lapse_sec=`expr $lapse_sec + 1`
> -             ocf_log debug "stop_tomcat[$TOMCAT_NAME]: suspend tomcat by 
> SIGKILL ($lapse_sec)"
> +             ocf_log debug "stop_tomcat[$TOMCAT_NAME]: stop failed, killing 
> with SIGKILL ($lapse_sec)"
>               pkill -KILL -f "${SEARCH_STR}"
>       done
>  
> @@ -283,18 +252,18 @@ Log file, used during start and stop operations.
>  
>  <parameter name="tomcat_stop_timeout" unique="0">
>  <longdesc lang="en">
> -Time-out for stop operation.
> +Time-out for stop operation. DEPRECATED
>  </longdesc>
> -<shortdesc>Time-out for the stop operation</shortdesc>
> +<shortdesc>Time-out for the stop operation. DEPRECATED</shortdesc>
>  <content type="integer" default="" />
>  </parameter>
>  
>  <parameter name="tomcat_suspend_trialcount" unique="0">
>  <longdesc lang="en">
>  Maximum number of times to retry stop operation before suspending
> -and killing Tomcat.
> +and killing Tomcat. DEPRECATED. Does not retry.
>  </longdesc>
> -<shortdesc>Max retry count for stop operation</shortdesc>
> +<shortdesc>Max retry count for stop operation. DEPRECATED</shortdesc>
>  <content type="integer" default="" />
>  </parameter>
>  
> @@ -413,8 +382,6 @@ validate_all_tomcat()
>  
>  TOMCAT_NAME="${OCF_RESKEY_tomcat_name-tomcat}"
>  TOMCAT_CONSOLE="${OCF_RESKEY_script_log-/var/log/$TOMCAT_NAME.log}"
> -TOMCAT_STOP_TIMEOUT="${OCF_RESKEY_tomcat_stop_timeout-5}"
> -TOMCAT_SUSPEND_TRIALCOUNT="${OCF_RESKEY_tomcat_suspend_trialcount-10}"
>  RESOURCE_TOMCAT_USER="${OCF_RESKEY_tomcat_user-RUNASIS}"
>  RESOURCE_STATUSURL="${OCF_RESKEY_statusurl-http://127.0.0.1:8080}";
>  
> -- 
> 1.7.1
> 

> _______________________________________________
> Linux-HA mailing list
> [email protected]
> http://lists.linux-ha.org/mailman/listinfo/linux-ha
> See also: http://linux-ha.org/ReportingProblems

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to