[Dovecot] imap proxy setup - "killed with signal 11"

btb btb at bitrate.net
Thu Oct 11 20:35:00 EEST 2012


hi-

i'm setting up an imap proxy in front of a novell groupwise server.  it 
seems to so far be partially working, but dovecot is having trouble in 
certain cases.  i expect that it's ultimately due to what i believe is a 
very poor implementation of imap provided by groupwise [at least based 
on other experiences in the past] - but that's a big part of why i'd 
like to have dovecot in between it and clients.

below is information collected during starting of dovecot, 
opening/initial connection from a client [os x mail.app], closing of the 
client, and stopping of dovecot.

os is ubuntu 12.10 development/beta, dovecot is 2.1.7 courtesy of 
ubuntu's packages.

log entries:
Oct 11 13:24:33 halo dovecot: master: Dovecot v2.1.7 starting up
Oct 11 13:24:49 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14171, TLS, 
session=<iHgu2cvLlwAKRChu>
Oct 11 13:24:50 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14174, TLS, 
session=<t1E/2cvLoQAKRChu>
Oct 11 13:24:51 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14176, TLS, 
session=<OZlM2cvLqgAKRChu>
Oct 11 13:24:51 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14178, TLS, 
session=<d3NU2cvLsQAKRChu>
Oct 11 13:24:51 halo dovecot: imap(jdoe): Connection closed in=16 out=350
Oct 11 13:24:52 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14180, TLS, 
session=<oxNa2cvLtAAKRChu>
Oct 11 13:24:52 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:24:52 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14176 killed with signal 11 (core dumped)
Oct 11 13:24:57 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:24:57 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14178 killed with signal 11 (core dumped)
Oct 11 13:24:57 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14182, TLS, 
session=<FUCv2cvLuAAKRChu>
Oct 11 13:24:58 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:24:58 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14180 killed with signal 11 (core dumped)
Oct 11 13:25:03 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:25:03 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14182 killed with signal 11 (core dumped)
Oct 11 13:25:03 halo dovecot: imap-login: Login: user=<jdoe>, 
method=PLAIN, rip=10.68.40.110, lip=10.59.1.53, mpid=14184, TLS, 
session=<DQkF2svLuwAKRChu>
Oct 11 13:25:03 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:25:03 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14184 killed with signal 11 (core dumped)
Oct 11 13:25:09 halo dovecot: imap(jdoe): Error: imapc: Mailbox 'Trash' 
state corrupted: Expunged message reappeared in session (uid=6282 < 
next_uid=6283)
Oct 11 13:25:09 halo dovecot: imap(jdoe): Fatal: master: service(imap): 
child 14174 killed with signal 11 (core dumped)
[repeats]
Oct 11 13:25:27 halo dovecot: dns-client: Warning: Killed with signal 15 
(by pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: dns-client: Warning: Killed with signal 15 
(by pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: master: Warning: Killed with signal 15 (by 
pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: auth: Warning: Killed with signal 15 (by 
pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: config: Warning: Killed with signal 15 (by 
pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: ssl-params: Warning: Killed with signal 15 
(by pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: anvil: Warning: Killed with signal 15 (by 
pid=1 uid=0 code=kill)
Oct 11 13:25:27 halo dovecot: log: Warning: Killed with signal 15 (by 
pid=1 uid=0 code=kill)

gdb backtrace:

~ >gdb /usr/lib/dovecot/imap /var/cache/imapproxy/jdoe/core
GNU gdb (GDB) 7.5-ubuntu
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/dovecot/imap...Reading symbols from 
/usr/lib/debug/usr/lib/dovecot/imap...done.
done.
[New LWP 13939]

warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `dovecot/imap'.
Program terminated with signal 11, Segmentation fault.
#0  0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00007fc7f6cb611e in imap_parser_reset (parser=0x7fc7f8a0f3a0) at 
imap-parser.c:93
No locals.
#2  0x00007fc7f6f7ada7 in imapc_connection_input_reset 
(conn=conn at entry=0x7fc7f8a0d270) at imapc-connection.c:664
No locals.
#3  0x00007fc7f6f7c6f4 in imapc_connection_input_untagged 
(conn=conn at entry=0x7fc7f8a0d270) at imapc-connection.c:908
         imap_args = 0x7fc7f8a0f4f8
         name = 0x7fc7f8a0f5d0 ""
         value = <optimized out>
         parser = 0x0
         reply = {name = 0x7fc7f8a0f5d0 "", num = 11, args = 
0x7fc7f8a0f4f8, file_args = 0x7fc7f8a0d5d0, file_args_count = 0, 
resp_text_key = 0x0, resp_text_value = 0x0,
           untagged_box_context = 0x7fc7f8a1ad70}
         ret = <optimized out>
#4  0x00007fc7f6f7d25e in imapc_connection_input_one 
(conn=0x7fc7f8a0d270) at imapc-connection.c:1061
         tag = 0x7fc7f8a0f5c0 ""
         ret = -1
#5  imapc_connection_input_pending (conn=0x7fc7f8a0d270) at 
imapc-connection.c:1407
         _data_stack_cur_id = 6
         ret = <optimized out>
#6  0x00007fc7f6f7d2c2 in imapc_connection_input (conn=0x7fc7f6c8f798) 
at imapc-connection.c:1100
         errstr = <optimized out>
         ret = <optimized out>
#7  0x00007fc7f6cdf006 in io_loop_call_io (io=0x7fc7f8a23800) at 
ioloop.c:379
         ioloop = 0x7fc7f8a23630
         t_id = 5
#8  0x00007fc7f6cdfcb7 in io_loop_handler_run 
(ioloop=ioloop at entry=0x7fc7f8a23630) at ioloop-epoll.c:213
         ctx = 0x7fc7f8a23850
         events = 0x7fc7f8a245e0
         event = 0x7fc7f8a238c0
         list = 0x7fc7f8a24320
         io = <optimized out>
         tv = {tv_sec = 299, tv_usec = 999402}
         events_count = <optimized out>
         msecs = <optimized out>
         ret = 1
         i = <optimized out>
         call = <optimized out>
#9  0x00007fc7f6cdea18 in io_loop_run (ioloop=0x7fc7f8a23630) at 
ioloop.c:398
No locals.
#10 0x00007fc7f6f7a0f7 in imapc_client_run_pre (client=<optimized out>) 
at imapc-client.c:142
         connp = 0x7fc7f8a0cfe0
         prev_ioloop = 0x7fc7f89e3670
#11 imapc_client_run (client=0x7fc7f8a0ce80) at imapc-client.c:161
No locals.
#12 0x00007fc7f6f79254 in imapc_storage_run (storage=0x7fc7f8a0be60) at 
imapc-storage.c:118
No locals.
#13 0x00007fc7f6f78311 in imapc_sync_index (ctx=0x7fc7f8a1fc70) at 
imapc-sync.c:351
         mbox = 0x7fc7f8a1ad70
         sync_rec = {uid1 = 47, uid2 = 0, type = (unknown: 4171272512), 
add_flags = 199 '\307', remove_flags = 127 '\177', keyword_idx = 0,
           guid_128 = 
"\000\000\000\000)\235\312\366\307\177\000\000p\255\241", <incomplete 
sequence \370>}
         seq1 = 32767
         seq2 = 0
#14 imapc_sync_begin (force=<optimized out>, ctx_r=<synthetic pointer>, 
mbox=0x7fc7f8a1ad70) at imapc-sync.c:422
         ctx = 0x7fc7f8a1fc70
         sync_flags = <optimized out>
         ret = <optimized out>
#15 imapc_sync (mbox=0x7fc7f8a1ad70) at imapc-sync.c:464
         sync_ctx = <optimized out>
         force = <optimized out>
#16 imapc_mailbox_sync_init (box=0x7fc7f8a1ad70, 
flags=(MAILBOX_SYNC_FLAG_FULL_READ | 
MAILBOX_SYNC_FLAG_FIX_INCONSISTENT)) at imapc-sync.c:498
         mbox = 0x7fc7f8a1ad70
         capabilities = <optimized out>
         changes = false
         ret = <optimized out>
#17 0x00007fc7f6f8bd43 in mailbox_sync_init (box=0x7fc7f8a1ad70, 
flags=(MAILBOX_SYNC_FLAG_FULL_READ | 
MAILBOX_SYNC_FLAG_FIX_INCONSISTENT)) at mail-storage.c:1320
         _data_stack_cur_id = 4
         ctx = <optimized out>
#18 0x00007fc7f6f8be67 in mailbox_sync (box=<optimized out>, 
flags=<optimized out>, flags at entry=MAILBOX_SYNC_FLAG_FULL_READ) at 
mail-storage.c:1368
         ctx = <optimized out>
         status = {sync_delayed_expunges = 0}
#19 0x00007fc7f74475d2 in select_open (readonly=false, 
mailbox=<optimized out>, ctx=0x7fc7f8a0da98) at cmd-select.c:296
         client = 0x7fc7f8a13d30
         status = {messages = 4171084000, recent = 32711, unseen = 0, 
uidvalidity = 0, uidnext = 13, first_unseen_seq = 0, first_recent_uid = 
4137782496, last_cached_seq = 32711,
           highest_modseq = 13, keywords = 0x7fc7f6cd06fb 
<t_malloc0+43>, permanent_flags = 4171118192, nonpermanent_modseqs = 1, 
permanent_keywords = 1, allow_new_keywords = 1}
         flags = MAILBOX_FLAG_DROP_RECENT
         ret = <optimized out>
#20 cmd_select_full (cmd=<optimized out>, readonly=<optimized out>) at 
cmd-select.c:419
---Type <return> to continue, or q <return> to quit---
         client = <optimized out>
         ctx = <optimized out>
         args = 0x7fc7f8a18598
         list_args = 0x7fc7f89db0e0
         mailbox = 0x7fc7f89db310 "Trash"
         ret = 1
         __FUNCTION__ = "cmd_select_full"
#21 0x00007fc7f744b29c in command_exec (cmd=cmd at entry=0x7fc7f8a0d9a0) at 
imap-commands.c:148
         hook = 0x7fc7f89e4cd0
         ret = <optimized out>
#22 0x00007fc7f744a2ee in client_command_input (cmd=0x7fc7f6c8f798) at 
imap-client.c:682
         client = 0x7fc7f8a13d30
         command = <optimized out>
         __FUNCTION__ = "client_command_input"
#23 0x00007fc7f744a39a in client_command_input (cmd=0x7fc7f8a0d9a0) at 
imap-client.c:733
         client = 0x7fc7f8a13d30
         command = <optimized out>
         __FUNCTION__ = "client_command_input"
#24 0x00007fc7f744a5fd in client_handle_next_command 
(remove_io_r=<synthetic pointer>, client=0x7fc7f8a13d30) at 
imap-client.c:774
         size = 19
#25 client_handle_input (client=client at entry=0x7fc7f8a13d30) at 
imap-client.c:786
         _data_stack_cur_id = 3
         ret = 112
         remove_io = false
         handled_commands = false
         __FUNCTION__ = "client_handle_input"
#26 0x00007fc7f744aef5 in client_input (client=0x7fc7f8a13d30) at 
imap-client.c:825
         cmd = <optimized out>
         output = 0x7fc7f8a0d868
         bytes = 19
         __FUNCTION__ = "client_input"
#27 0x00007fc7f6cdf006 in io_loop_call_io (io=0x7fc7f8a11c90) at 
ioloop.c:379
         ioloop = 0x7fc7f89e3670
         t_id = 2
#28 0x00007fc7f6cdfcb7 in io_loop_handler_run 
(ioloop=ioloop at entry=0x7fc7f89e3670) at ioloop-epoll.c:213
         ctx = 0x7fc7f89e39e0
         events = 0x7fc7f8a245e0
         event = 0x7fc7f89e3a50
         list = 0x7fc7f8a0f380
         io = <optimized out>
         tv = {tv_sec = 1739, tv_usec = 996790}
         events_count = <optimized out>
         msecs = <optimized out>
         ret = 1
         i = <optimized out>
         call = <optimized out>
#29 0x00007fc7f6cdea18 in io_loop_run (ioloop=0x7fc7f89e3670) at 
ioloop.c:398
No locals.
#30 0x00007fc7f6ccb463 in master_service_run (service=0x7fc7f89e3520, 
callback=callback at entry=0x7fc7f7452f70 <client_connected>) at 
master-service.c:544
No locals.
#31 0x00007fc7f74428c7 in main (argc=1, argv=0x7fc7f89e3370) at main.c:389
         set_roots = {0x7fc7f7658d20 <imap_setting_parser_info>, 0x0}
         login_set = {auth_socket_path = 0x7fc7f89db070 
"/run/dovecot/auth-master", postlogin_socket_path = 0x0, 
postlogin_timeout_secs = 60,
           callback = 0x7fc7f7452e10 <login_client_connected>, 
failure_callback = 0x7fc7f7452b60 <login_client_failed>}
         service_flags = <optimized out>
         storage_service_flags = <optimized out>
         username = 0x0
         c = <optimized out>
(gdb)

config:
 >doveconf -n
# 2.1.7: /etc/dovecot/dovecot.conf
# OS: Linux 3.5.0-17-generic x86_64 Ubuntu quantal (development branch)
first_valid_gid = 999
first_valid_uid = 999
imapc_host = backend.example.com
last_valid_gid = 999
last_valid_uid = 999
log_timestamp = "%d.%m.%Y %H.%M.%S "
login_greeting = dovecot ready
mail_gid = imapproxy
mail_home = /var/cache/imapproxy/%u
mail_location = imapc:%h/%n/Maildir
mail_uid = imapproxy
passdb {
   args = host=backend.example.com
   default_fields = userdb_imapc_user=%u userdb_imapc_password=%w
   driver = imap
}
protocols = " imap"
service auth-worker {
   user = $default_internal_user
}
service auth {
   unix_listener /var/spool/postfix/private/auth {
     group = postfix
     mode = 0666
     user = postfix
   }
}
ssl = required
ssl_cert = </etc/dovecot/pki/mra.example.com-cert.pem
ssl_key = </etc/dovecot/pki/mra.example.com-key.pem
userdb {
   driver = prefetch
}
verbose_proctitle = yes

thanks
-ben


More information about the dovecot mailing list