Dominic Marks
2005-Jul-14 12:32 UTC
[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
Timo Sirainen
2005-Jul-22 15:19 UTC
[Dovecot] Changes made to imap descriptor handling in test78?
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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part URL: <http://dovecot.org/pipermail/dovecot/attachments/20050722/441dfdf2/attachment-0001.bin>