The issue with squid is that we have a 'control' process (the one whose
PID is saved in /var/run/squid.pid), which does nothing but controlling
other processes (real squid workers, authenticators, redirectors).

Sending a TERM signal to the control process tells him to gracefully
shut down every process he controls, waiting for connection timeout on
both client-side and server-side. This may take a long time since
ongoing connections are not terminated but completed (i.e. if a page is
in transfer, squid will wait for the transfer to complete).

The last process that is shut down is the on-disk storage module, which
needs to be up while traffic is flowing through squid.

> 1. 120 seconds is a _long_ time to wait for a service to shut down.
>    Is the initscript waiting too long?

If there are no active connection, yes. On the other end this bug is
just about knowing that squid has shut down. What happens after 120 secs
is that the initscript will return an error and squid will keep shutting
down. When all connections are closed or timeout'ed squid will correctly
exit. So maybe we should wait forever...

> 2. After some period of time, should the initscript not attempt to
>    kill squid again?  After some period of time, should the
>    initscript not kill squid with SIGKILL?

This would kill the control process, leaving squid in a really bad
state.

> Please note that start-stop-daemon has a very useful "--retry" feature
> with which initscripts can perform escalating kills.  The pdnsd and
> dnsmasq initscript are good examples to follow.

The only thing we could do is 'squid -k kill' that will kill all squid
working processes and exit. I don't know if this would keep squid from
reconstructing the whole cache at restart.

Regards,

-- 
 Luigi Gangitano -- <[EMAIL PROTECTED]> -- <[EMAIL PROTECTED]>
 GPG: 1024D/924C0C26: 12F8 9C03 89D3 DB4A 9972  C24A F19B A618 924C 0C26

Attachment: signature.asc
Description: Questa parte del messaggio =?ISO-8859-1?Q?=E8?= firmata

Reply via email to