1. My earlier patch to fix a typo in array.h was not good enough. Here's one that not only compiles, but also doesn't crash: --- dovecot-2.0.alpha2/src/lib/array.h 2009-10-08 10:04:35.000000000 -0500 +++ dovecot/src/lib/array.h 2009-10-29 20:47:47.000000000 -0500 @@ -72,8 +72,7 @@ (elem)++) # define array_foreach_modifiable(array, elem) \ for (elem = ARRAY_TYPE_CAST_MODIFIABLE(array) \ - buffer_get_modifiable_data((array)->arr.buffer, NULL)) + \ - (array)->arr.buffer->used; \ + buffer_get_modifiable_data((array)->arr.buffer, NULL); \ elem != CONST_PTR_OFFSET(*(array)->v, (array)->arr.buffer-
used); \ (elem)++) #endif
2. Sometimes I see a flood of these errors in the log: [...] Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s failed Fri Oct 30 14:45:23 server dovecot[9585]: imap-login: Login: user=<userX>, method=PLAIN, rip=192.168.1.8, lip=192.168.1.7, pid=11362 Fri Oct 30 14:45:23 server dovecot[9585]: imap(pid 11362 user userX): Connection closed bytes=118/934 Fri Oct 30 14:45:23 server dovecot[9585]: imap: dup2(-1, 5) failed: Bad file descriptor Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s failed Fri Oct 30 14:45:23 server dovecot[9585]: imap-login: Login: user=<userY>, method=PLAIN, rip=192.168.1.8, lip=192.168.1.7, pid=11363 Fri Oct 30 14:45:23 server dovecot[9585]: imap(pid 11363 user userY): Connection closed bytes=118/972 Fri Oct 30 14:45:23 server dovecot[9585]: imap: dup2(-1, 5) failed: Bad file descriptor Fri Oct 30 14:45:23 server dovecot[9585]: imap: service(imap): dup2s failed [...] 3. imap crashed when using mdbox: Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ): dbox /Volumes/Mail/userZ/mailboxes/INBOX/Sent/dbox-Mails: map uidvalidity mismatch (1256918863 vs 1256919073) Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ): Disconnected: Internal error occurred. Refer to server log for more information. [2009-10-30 14:54:49] bytes=553447/2146313 Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user userZ): dbox /Volumes/Mail/userZ/storage: rebuilding indexes Fri Oct 30 14:54:49 server dovecot[11491]: imap(pid 11938 user user): Panic: file dbox-file.c: line 308 (dbox_file_get_mail_stream): assertion failed: (file->input != NULL) 0 libSystem.B.dylib 0x00007fff875f4eba __kill + 10 1 libSystem.B.dylib 0x00007fff875f4eac kill + 14 2 libSystem.B.dylib 0x00007fff87683519 raise + 25 3 libSystem.B.dylib 0x00007fff876a4e12 abort + 90 4 libdovecot.0.dylib 0x00000001000e8027 i_set_failure_file + 275 5 libdovecot.0.dylib 0x00000001000e6eef i_set_failure_internal + 103 6 libdovecot.0.dylib 0x00000001000e76d2 i_debug + 0 7 libdovecot-storage.0.dylib 0x000000010005768a dbox_file_seek_next + 0 8 libdovecot-storage.0.dylib 0x000000010005772a dbox_file_seek_next + 160 9 libdovecot-storage.0.dylib 0x0000000100084266 mdbox_storage_rebuild + 1406 10 libdovecot-storage.0.dylib 0x0000000100085617 mdbox_mailbox_alloc + 1271 11 libdovecot-storage.0.dylib 0x00000001000271e1 mail_storage_unref + 93 12 libdovecot-storage.0.dylib 0x0000000100023386 mail_namespace_get_storage_name + 162 13 libdovecot-storage.0.dylib 0x0000000100023429 mail_namespaces_deinit + 35 14 libdovecot-storage.0.dylib 0x0000000100028c39 mail_user_alloc + 311 15 libdovecot-storage.0.dylib 0x000000010002889a mail_user_unref + 40 16 imap 0x0000000100007fa4 client_destroy + 404 17 imap 0x0000000100006eb3 client_input + 87 18 libdovecot.0.dylib 0x00000001000eca50 io_loop_handler_run + 224 19 libdovecot.0.dylib 0x00000001000ed55a io_loop_run + 56 20 libdovecot.0.dylib 0x00000001000e393d master_service_run + 27 21 imap 0x000000010000fb45 main + 557 22 imap 0x0000000100000dd0 start + 52 Hope this helps.