[Dovecot] Changes made to imap descriptor handling in test78?
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
On Thu, 2005-07-14 at 13:32 +0100, Dominic Marks wrote:
What has changed from test77 to test78 in the way imap manages its descriptors?
Probably inotify support. I changed some other things as well while adding it, but I don't think I changed the logic itself to be different to how it calls io_loop_handler_*() functions.. And I don't think I changed alsewhere when io_add/remove are called.
Well, another change was this:
* src/lib-storage/index/maildir/maildir-storage.c: Notification was
added to maildir root always, not to the actual mailbox that was
being selected. Patch by Johannes Berg.
but it called io_add() with IO_DIR_NOTIFY flag
participants (2)
-
Dominic Marks
-
Timo Sirainen