Damien Miller wrote:
> On Tue, 23 Sep 1997, WWW server manager (i.e. me) wrote:
> > Simon Rainey wrote:
> > >
> > > Hi,
> > >
> > > I've seen this too with 1.NOVM.15 under BSDI 2.1. Once it happened during
> > > normal operation, and several times after a "kill -HUP". I can live with it
> > > happening after a "kill -HUP", but not during normal running.
> > >
> > I started seeing this recently, with 1.NOVM.16 on Solaris 2.4, but only
> > after I configured the server to use a specific IP address rather than
> > listening on all available addresses.
>
> This is the case with our machine too.
It certainly looks like that may be a critical contributing factor, then,
unless anyone is about to say it happens with the default setup using any/all
available addresses.
I've had a closer look at what's going on, and have two additional
observations:
(1) I previously mentioned getting "icpHandleUdp: FD 20 recvfrom: (11)
Resource temporarily unavailable" in response to HUP or shutdown, after
configuring use of a specific IP address.
I've now noticed that - on a system where Squid is totally idle, *no*
connections - there is always a 30-second wait after Squid says "Waiting 30
seconds for active connections to finish" and says it's closing the HTTP and
ICP connections, before the "icpHandleUdp" message and then "Restarting
Squid Cache", even though there's absolutely no ICP or HTTP activity.
When configured to bind to any/all addresses in the default way, it
announces "Restarting Squid Cache" immediately after closing the HTTP and
UDP connections, no delay.
(2) I used truss -f -p <pid> (Solaris 2 system call tracer, with options to
watch a specified process and any subprocesses it forks) to watch Squid
1.NOVM.16 while HUPing it. Not very informative, but the relevant bit (a
representative ftpget process terminating) concludes with
9621: close(4) = 0
9621: munmap(0xEF7B0000, 4096) = 0
9621: open("/etc/hosts", O_RDONLY) = 4
9621: fstat(4, 0xEFFFF390) = 0
9621: ioctl(4, TCGETA, 0xEFFFF31C) Err#25 ENOTTY
9621: read(4, " #\n # I n t e r n e t".., 8192) = 369
9621: lseek(4, 0xFFFFFF36, SEEK_CUR) = 167
9621: close(4) = 0
9621: setsid() = 9621
9621: poll(0xEFFFD778, 2, -1) = 1
9621: close(3) = 0
9621: lseek(0, 0, SEEK_CUR) Err#29 ESPIPE
9621: _exit(0)
The setsid() call appears to tie it closely to the relevant bit of the
source code, but I haven't yet had time to work out why it is deciding
to terminate (with status 0, implying success...). NB Some of the system
calls (e.g. lseek) are not in the Squid source - presumably internal e.g. to
the stdio library routines.
John Line
-- University of Cambridge WWW manager account (usually John Line) Send general WWW-related enquiries to webmaster@ucs.cam.ac.ukReceived on Tue Sep 23 1997 - 15:26:32 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:37:08 MST