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.