Re: epoll on squid

From: David Nicklay <dnicklay@dont-contact.us>
Date: 17 Dec 2002 17:25:29 -0500

I tried everything from scratch, by pulling the branch out of CVS and
building it myself, but everything worked fine for me still even with
the new linux kernel 2.5.52 and the newest tarball from squid-3.0-HEAD.

On Tue, 2002-12-17 at 09:05, Reuben Farrelly wrote:
> Thanks, that fixed the compile problem. Slowly getting there now :)
> However upon starting, it spits out an error message:

Okay, I can see what is happening in the following for you, but I don't
understand why. It appears that epoll_ctl() is returning a -1, but then
setting errno to 0 as if it succeeded which doesn't agree with its man
page. That just doesn't make sense from examining the code in
eventpoll.c in the kernel. Hrrrrmmm... *think* *think* *think*

> 2002/12/18 00:51:21| Loaded Icons.
> 2002/12/18 00:51:21| commSetSelect: cpoll_ctl(,EPOLL_CTL_MOD,,) failed on
> fd=14!: (0) Success

The epoll_ctl(,EPOLL_CTL_DEL,,) errors are probably related to the fact
that it didn't call epoll_ctl(,EPOLL_CTL_ADD,,) previously, but instead
failed through. Perhaps if we work around it for now by doing this:

Change this:
if (epoll_ctl(kdpfd, EPOLL_CTL_MOD, fd, &ev) < 0) {
            if(errno == ENOENT) {
To this:
if (epoll_ctl(kdpfd, EPOLL_CTL_MOD, fd, &ev) < 0) {
            if((errno == ENOENT) || (errno == 0)

If that gets it working for you, let me know, and I will add it into the
CVS branch.

Also, what build environment and configure options are you using?

--
David Nicklay
Location: CNN Center - SE0811A
Office: 404-827-2698	Cell: 404-545-6218
Received on Tue Dec 17 2002 - 15:26:50 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:01 MST