[Dovecot] Changes made to imap descriptor handling in test78?

Dominic Marks dom at goodforbusiness.co.uk
Thu Jul 14 15:32:17 EEST 2005


Hello,

What has changed from test77 to test78 in the way imap manages
its descriptors? I upgraded to test78 this morning on a small
site which I use as a testbed for testing various things.

Running the same copy of my kqueue patch with test77 works
quite well [*], with test78 imap has some problems. Here is
some debugging output I recorded:

Jul 14 12:55:27 egg dovecot: imap-login: Login: user=<dom>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, SSL
Jul 14 12:55:30 egg dovecot: IMAP(dom): kqueue was given an unknown descriptor 1, -1: No such file or directory

The second line points refers to io_loop_handler_remove, the
tcp/ip socket (1) is having the read filter (-1) removed,
suspending events from the socket, or at least, that is
what should be happening.

From kevent(2) for ENOENT:

 [ENOENT] The event could not be found to be modified or deleted.

This suggests to me that we are incorrectly calling
io_loop_handler_remove before we should. This error
happens immediately after a client opens their mailbox.

I have checked pop3 and it does not share the problem. I'm
going to have a look at the CVS mail archive to see if I
can work out what has changed.

[*] Occasionally I was receiving ENOENT in test77 also in
io_loop_handler_remove, but only occasionally, perhaps a few
times a day for each client. This also didn't occur when
opening the mailbox, but some time later. I'm still looking
for the trigger for that.

Cheers,
-- 
Dominic Marks



More information about the dovecot mailing list