I see, I have some problem with this patch no matter which version I use. I've tried 1.0.2, 1.0.5 and 1.0.7 and it always fails in the same point.
dovecot.log says: Nov 12 11:38:41 Error: child 27295 (imap) killed with signal 11
It happens on FETCH command, other commands seems to work ok. I've noticed that if maildirsize is absent it should be rebuilt after FETCH command. It works well on unpachted version. My OS is Debian Stable on x86. Maildirs are on NFS (Linux server). Configure command was: ./configure --prefix=/var/dovecot --with-ioloop=epoll --with-sql-drivers --with-sql --with-mysql --with-notify=inotify --without-pop3d
and result of configure was: Install prefix ...................... : /var/dovecot File offsets ........................ : 64bit I/O loop method ..................... : epoll File change notification method ..... : inotify Building with SSL support ........... : yes (OpenSSL) Building with IPv6 support .......... : yes Building with pop3 server ........... : no Building with mail delivery agent .. : yes Building with GSSAPI support ........ : no Building with user database modules . : static prefetch passwd passwd-file checkpassword sql (modules) Building with password lookup modules : passwd passwd-file shadow pam checkpassword sql (modules) Building with SQL drivers ............: mysql
# ./dovecot -n # 1.0.7: /var/dovecot/etc/dovecot.conf base_dir: /var/run/dovecot/ log_path: /var/log/dovecot/dovecot.log info_log_path: /var/log/dovecot/dovecot_info.log protocols: imap listen: 80.xx.xx.xx:10143 ssl_disable: yes disable_plaintext_auth: no login_dir: /var/run/dovecot//login login_executable: /var/dovecot/libexec/dovecot/imap-login login_user: dovecotlogin login_greeting: Hello IMAP. verbose_proctitle: yes first_valid_uid: 1000 last_valid_uid: 1000 first_valid_gid: 1000 last_valid_gid: 1000 mail_location: maildir:%h/Maildir mail_cache_min_mail_count: 20 mail_debug: yes mmap_disable: yes mmap_no_write: yes fsync_disable: yes maildir_copy_with_hardlinks: yes maildir_copy_preserve_filename: yes mail_drop_priv_before_exec: yes mail_plugins: quota imap_quota imap_client_workarounds: outlook-idle delay-newmail namespace: type: private separator: / inbox: yes auth default: mechanisms: plain login user: dovecotauth verbose: yes debug: yes debug_passwords: yes passdb: driver: sql args: /var/dovecot/etc/dovecot-sql.conf userdb: driver: prefetch userdb: driver: sql args: /var/dovecot/etc/dovecot-sql.conf plugin: quota: maildir quota_rule: *:storage=1G
Query from dovecot-sql.conf password_query = SELECT id as user, crypt as password, home as userdb_home, uid as userdb_uid, gid as userdb_gid FROM users WHERE id = '%u' AND mbox_host = '' AND active = 1
When starting: # ./dovecot ILoading modules from directory: /var/dovecot/lib/dovecot/imap IModule loaded: /var/dovecot/lib/dovecot/imap/lib10_quota_plugin.so IModule loaded: /var/dovecot/lib/dovecot/imap/lib11_imap_quota_plugin.so IEffective uid=65534, gid=65534, home= IQuota rule: root= mailbox= storage=1048576kB messages=0
After crash: # gdb /var/dovecot/libexec/dovecot/imap /var/core/27295 (...) Core was generated by `imap [user 80.xx.xx.xx]'. Program terminated with signal 11, Segmentation fault. (...) Reading symbols from /lib/libdl.so.2...done. Loaded symbols for /lib/libdl.so.2 Reading symbols from /lib/libc.so.6...done. Loaded symbols for /lib/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Reading symbols from /var/dovecot/lib/dovecot/imap/lib10_quota_plugin.so...done. Loaded symbols for /var/dovecot/lib/dovecot/imap/lib10_quota_plugin.so Reading symbols from /var/dovecot/lib/dovecot/imap/lib11_imap_quota_plugin.so...done. Loaded symbols for /var/dovecot/lib/dovecot/imap/lib11_imap_quota_plugin.so #0 0xac4d006a in quota_mailbox_transaction_commit (ctx=0x80f3978, flags=0) at quota-storage.c:75 75 if (qt->tmp_mail != NULL) (gdb) bt full #0 0xac4d006a in quota_mailbox_transaction_commit (ctx=0x80f3978, flags=0) at quota-storage.c:75 qbox = (struct quota_mailbox *) 0x80e3ae8 qt = (struct quota_transaction_context *) 0x0 #1 0x0809f860 in mailbox_transaction_commit (_t=0x0, flags=0) at mail-storage.c:506 t = (struct mailbox_transaction_context *) 0xac60331c #2 0x080619a2 in imap_sync_deinit (ctx=0x80f2618) at imap-sync.c:73 status = {messages = 1, recent = 0, unseen = 0, uidvalidity = 1194822313, uidnext = 2, first_unseen_seq = 0, keywords = 0x80e2e1c, keywords__type = 0x0} ret = 135121152 #3 0x08057ead in cmd_idle_continue (cmd=0x0) at cmd-idle.c:194 client = (struct client *) 0x80dc900 ctx = (struct cmd_idle_context *) 0x80deb88 #4 0x08058020 in cmd_idle (cmd=0x80dc948) at cmd-idle.c:275 client = (struct client *) 0x80dc900 ctx = (struct cmd_idle_context *) 0x80deb88 str = 0x0 interval = 2891985692 #5 0x0805b4e5 in client_handle_input (cmd=0x80dc948) at client.c:344 client = (struct client *) 0x80dc900 #6 0x0805b45b in client_handle_input (cmd=0x80dc948) at client.c:398 client = (struct client *) 0x80dc900 #7 0x0805b5cd in _client_input (context=0x80dc900) at client.c:441 client = (struct client *) 0x80dc900 cmd = (struct client_command_context *) 0x80dc948 ret = 2 #8 0x080b3b00 in io_loop_handler_run (ioloop=0x80dcab8) at ioloop-epoll.c:203 ctx = (struct ioloop_handler_context *) 0x80da8e0 list = (struct io_list *) 0x80dcad8 io = (struct io *) 0x80dcab8 tv = {tv_sec = 9, tv_usec = 979812} events_count = 4 t_id = 2 msecs = 2 ret = 1 i = 0 j = 0 call = 192 #9 0x080b3058 in io_loop_run (ioloop=0x80da8b8) at ioloop.c:329 No locals. #10 0x08063c7d in main (argc=3, argv=0x0, envp=0x0) at main.c:290 No locals. (gdb)
I see that segfault is caused by uninitialized (deleted?) qt variable, but I have no skills to trace it. If you want more info please ask, I'll do my best. Pawel