Re: [squid-users] Squid loops on epoll/read/gettimeofday

From: Henrik Nordström <henrik_at_henriknordstrom.net>
Date: Fri, 02 Apr 2010 21:21:48 +0200

fre 2010-04-02 klockan 15:41 -0300 skrev Marcus Kool:

> strange indeed, but this is strace output with which I am not very familiar.
> Strace should print the whole array that it uses as argument to
> epoll_wait or just prints the first element ? (and the 2nd argument
> could be FD 27)

For epoll_wait it prints the valid entries in the result array, which
has length 1 in this case (see return value last on the line).

> > Can you please use cachemgr to view the current filedescriptors page to
> > note what fd 23 & fd 27 is being used for?
>
> I restarted Squid and now it does not loop...
> The lsof output in the original email is of little help:

A little. Both are pipes. And it's not unlikely these pipes have the
same fd assignments now after restart. What does cachemgr say now?

> squid 13665 squid 20w REG 9,3 1478687 4718702 /local/squid/logs/access.log
> squid 13665 squid 21r FIFO 0,6 1723502 pipe
> squid 13665 squid 22w REG 9,3 30400812 4718715
> /local/squid/cache/swap.state
> squid 13665 squid 23r FIFO 0,6 1723506 pipe
> squid 13665 squid 24w FIFO 0,6 1723503 pipe
> squid 13665 squid 25u IPv4 1723505 TCP *:squid (LISTEN)
> squid 13665 squid 26w FIFO 0,6 1723506 pipe
> squid 13665 squid 27r FIFO 0,6 1723507 pipe FD 27 *****
> squid 13665 squid 28w FIFO 0,6 1723507 pipe
> squid 13665 squid 29u IPv4 1771231 TCP srv004:squid->xxx
> (ESTABLISHED)
>
> It seems that FD 27 and 28 point to the same object (as FD 23 and FD 26)

Hmm..

> The strace output lists the parameters at the call time and
> we do not see the return values (only the function return value).

Should be return values. strace knows how epoll_wait works.

> Is it possible that FD 27 has an EPOLLERR condition instead of a
> EPOLLIN condition and the loop is caused by trying to do read() on FD 27 ?
> (I do not see any check for a return of EPOLLERR in the sources).

read should not return EAGAIN if there is an pending error condition.

Regards
Henrik
Received on Fri Apr 02 2010 - 19:21:53 MDT

This archive was generated by hypermail 2.2.0 : Sat Apr 03 2010 - 12:00:02 MDT