Hi,

On Mon, Jul 30, 2012 at 12:09:10PM -0400, Jake Smith wrote:
> 
> ----- Original Message -----
> > From: "Julien Cornuwel" <cornu...@gmail.com>
> > To: pacemaker@oss.clusterlabs.org
> > Sent: Wednesday, July 25, 2012 5:51:28 AM
> > Subject: Re: [Pacemaker] Trouble with ocf:Squid resource agent
> > 
> > Oops! Spoke too fast. The fix below allows squid to start. But the
> > script also has problems in the 'stop' part. It is stuck in an
> > infinite loop and here are the logs (repeats every second) :
> > 
> > Jul 25 11:38:47 corsen-a lrmd: [24099]: info: RA output:
> > (Proxy:stop:stderr) /usr/lib/ocf/resource.d//heartbeat/Squid: line
> > 320: kill: -: arguments must be process or job IDs
> > Jul 25 11:38:47 corsen-a lrmd: [24099]: info: RA output:
> > (Proxy:stop:stderr) /usr/lib/ocf/resource.d//heartbeat/Squid: line
> > 320: kill: -: arguments must be process or job IDs
> > Jul 25 11:38:48 corsen-a Squid(Proxy)[24659]: [25682]: INFO:
> > squid:stop_squid:318:  try to stop by SIGKILL: -
> > Jul 25 11:38:48 corsen-a Squid(Proxy)[24659]: [25682]: INFO:
> > squid:stop_squid:318:  try to stop by SIGKILL: -
> > 
> > Being on a deadline, I'll use the lsb script for the moment. If
> > someone figures out how to use this ocf script, I'm very interrested.
> > 
> 
> I took a quick look at the OCF... here's the stop section with inline 
> comments from me (###)
> 
> stop_squid()
> {
>       typeset lapse_sec
> 
>       if ocf_run $SQUID_EXE -f $SQUID_CONF -k shutdown; then
>               lapse_sec=0
>               while true; do
>                       get_pids
>                       if is_squid_dead; then
>                               rm -f $SQUID_PIDFILE
>                               return $OCF_SUCCESS
>                       fi
>                       (( lapse_sec = lapse_sec + 1 ))
>                       if (( lapse_sec > SQUID_STOP_TIMEOUT )); then
> 
> ### looks to me like you're hitting the line above which then breaks out and 
> drops down to the "while true" 8 lines down.  I would time a manual stop of 
> squid (I know it takes quite awhile) and make sure you're primitive's "op 
> stop interval="0" timeout="120s"" is set high enough (definately more than 
> 120s I would assume) that the elapsed time to stop squid doesn't normally 
> exceed the timeout value.
> 
>                               break
>                       fi
>                       sleep 1
>                       ocf_log info "$SQUID_NAME:$FUNCNAME:$LINENO: " \
>                               "stop NORM $lapse_sec/$SQUID_STOP_TIMEOUT"
>               done
>       fi
> 
>       while true; do
>               get_pids
>               ocf_log info "$SQUID_NAME:$FUNCNAME:$LINENO: " \
>                       "try to stop by SIGKILL:${SQUID_PIDS[0]} 
> ${SQUID_PIDS[2]}"
>               kill -KILL ${SQUID_PIDS[0]} ${SQUID_PIDS[2]}
> 
> ### have you tried manually running the above line and see what you get 
> (inserting the correct PID's of course)?  Maybe the kill -KILL syntax is 
> invalid for your flavor of linux and the OCF needs to be updated to take that 
> into account when running the kill command?  Even if you increase the timeout 
> above to a normally reasonable value you still want it to be able to kill it 
> if it is unresponsive!
> 
>               sleep 1
>               if is_squid_dead; then
>                       rm -f $SQUID_PIDFILE
>                       return $OCF_SUCCESS
>               fi
>       done
> 
>       return $OCF_ERR_GENERIC
> }
> 
> 
> > Regards
> > 
> > 
> > 2012/7/24 Julien Cornuwel <cornu...@gmail.com>:
> > > Hi,
> > >
> > > Fixed! The problem comes from the squid ocf script
> > > (/usr/lib/ocf/resource.d/heartbeat/Squid) that doesn't handle IPv6
> > > addresses correctly.
> > > All you have to do is modify the line 198 as such :
> > > awk '/(tcp.*[0-9]+\.[0-9]+\.+[0-9]+\.[0-9]+:'$SQUID_PORT'
> > > |tcp.*:::'$SQUID_PORT' )/{
> > >
> > > Source:
> > > http://www.n3oxid.fr/index.php?post/2012/04/07/Installation-et-configuration-d-un-cluster-Pacemaker/CoroSync-sous-GNU/Linux-Debian-6-%28Squeeze%29
> > >
> 
> Not sure if the above fully patches the OCF for squid ipv4 and ipv6 but I 
> would recommend submitting a patch against the resource agent so in the 
> future it just works ;-)

Yes. If somebody opens a bugzilla at LF
(https://developerbugs.linuxfoundation.org/) or an issue at
https://github.com/ClusterLabs/resource-agents somebody
(hopefully the author) will take care of it.

Thanks,

Dejan

> HTH
> Jake
> 
> _______________________________________________
> Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
> http://oss.clusterlabs.org/mailman/listinfo/pacemaker
> 
> Project Home: http://www.clusterlabs.org
> Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
> Bugs: http://bugs.clusterlabs.org

_______________________________________________
Pacemaker mailing list: Pacemaker@oss.clusterlabs.org
http://oss.clusterlabs.org/mailman/listinfo/pacemaker

Project Home: http://www.clusterlabs.org
Getting started: http://www.clusterlabs.org/doc/Cluster_from_Scratch.pdf
Bugs: http://bugs.clusterlabs.org

Reply via email to