Also, for testing in the error message I patched src/lib/ioloop-epoll.c to show the "ret" and "errno" variables as well as the variable names, which is why there is a bit of extra data in this error message...
imap-login: io_loop_handle_add: epoll_ctl(op=3, fd=10, ret=-1, errno=2): No such file or directory
Bill
On Thursday, February 9, 2006 16:32, Bill Boebel said:
I am running dovecot 1.0 beta3 as a front-end proxy, and getting the following error when using epoll. The error goes away if I switch to poll. On the backend IMAP server I see that the login was successful. The error occurs when I try to retrieve an email or get a folder listing via IMAP after logging in successfully...
Feb 9 15:35:57 director4 dovecot: imap-login: proxy(bboebel@webmail.us): started: user=<bboebel@webmail.us>, method=plain, rip=204.119.252.7, lip=192.168.1.68 Feb 9 15:09:50 director4 dovecot: imap-login: io_loop_handle_add: epoll_ctl(op=3, fd=10, ret=-1, errno=2): No such file or directory Feb 9 14:58:23 director4 dovecot: child 9688 (login) returned error 89
I can't find anything in the mailing list archives about this error, so here are some details. I hope somebody can point me in the right direction to fix this.
- I am running this on Red Hat ES4 (32-bit x86), compiling with the following options:
./configure
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--with-ssldir=/usr/share/ssl
--disable-ipv6
--with-file-offset-size=32
--with-mem-align=4
--with-ioloop=epoll
--without-passwd
--without-passwd-file
--without-shadow
--without-pam
--without-checkpassword
--without-bsdauth
--without-gssapi
--with-ldap
--without-vpopmail
--with-static-userdb
--with-prefetch-userdb
--without-pgsql
--with-mysql
--without-sqlite
--without-ssl
--with-storages=maildir
- I have also complied with these options and got the same error:
./configure
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--with-ioloop=epoll
--with-mysql
I have also tried the latest CSV snapshot (dovecot-20060209.tar.gz) and 1.0 beta2, and I get the same error.
If I switch to poll instead of epoll, everything works fine.
Any ideas? Could it be that similarly to kqueue on *BSD the Linux kernel unregisters/removes the handle automatically when it gets closed? And
Bill Boebel wrote: that dovecot closes it before unregistering it from epoll?
Bill
Vaclav Haisman