I'm using dovecot 2.2.24 on FreeBSD 10.3. I'm working on converting users from maildir to mdbox, for the usual reasons. I have converted some test users and they generally work fine. But when I run "doveadm mailbox status" I get a Panic if I ask for the vsize field (or "all"), but other fields work fine. For example: # doveadm mailbox status -u bubbacheex3 "messages" INBOX INBOX messages=53 # doveadm mailbox status -u bubbacheex3 "guid" INBOX INBOX guid=bf976912f3748957761d0100f906a3d0 # doveadm mailbox status -u bubbacheex3 "unseen" INBOX INBOX unseen=52 # doveadm mailbox status -u bubbacheex3 "vsize" INBOX doveadm(bubbacheex3): Panic: file file-lock.c: line 269: unreached Abort trap I've only converted a few users, but they all exhibit this problem. I converted them with: dsync -u bubbacheex3 mirror maildir:/var/tmp/bubbacheex3 I have done a force-resync, which succeeds but doesn't change the behavior. I spent a little time trying to get gdb running but didn't get very far (couldn't seem to get it to find the source files once I got a few levels deep in the call stack). Before I beat my head on the gdb issue more, I thought I'd check here to see if anyone has any ideas. I didn't turn up anything in google or searching this list. Here's my "doveconf -n" output: ------------------------------------------------------ # 2.2.24 (a82c823): /usr/local/etc/dovecot/dovecot.conf # OS: FreeBSD 10.3-RELEASE-p3 amd64 ufs auth_failure_delay = 1 secs auth_mechanisms = plain login auth_winbind_helper_path = /usr/local/bin/ntlm_auth auth_worker_max_count = 60 base_dir = /var/run/dovecot/ disable_plaintext_auth = no first_valid_gid = 100 first_valid_uid = 1000 listen = * login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c mail_location = mdbox:/var/mail/%u:INDEX=/var/dovecot/%u mail_log_prefix = "%Us(%u): " mail_nfs_storage = yes mail_privileged_group = mail mdbox_rotate_interval = 1 days mdbox_rotate_size = 4 M mmap_disable = yes namespace { inbox = yes location = prefix = separator = . } passdb { args = session=yes dovecot driver = pam } protocols = imap pop3 service auth { unix_listener auth-client { mode = 0660 } unix_listener auth-master { mode = 0600 } user = root vsz_limit = 256 M } service imap-login { chroot = login process_limit = 128 process_min_avail = 10 service_count = 1 user = dovecot vsz_limit = 64 M } service imap { drop_priv_before_exec = no process_limit = 512 vsz_limit = 256 M } service pop3-login { chroot = login process_limit = 128 process_min_avail = 5 service_count = 1 user = dovecot vsz_limit = 64 M } service pop3 { drop_priv_before_exec = no process_limit = 512 vsz_limit = 256 M } ssl_cert = </etc/mail/certs/mail.swcp.com.pem ssl_cipher_list = ALL:!LOW:!SSLv2 ssl_key = </etc/mail/certs/mail.swcp.com.pem userdb { args = blocking=yes driver = passwd } verbose_proctitle = yes protocol imap { imap_client_workarounds = delay-newmail tb-extra-mailbox-sep imap_logout_format = bytes=%i/%o imap_max_line_length = 64 k mail_max_userip_connections = 20 mail_plugin_dir = /usr/local/lib/dovecot/imap } protocol pop3 { mail_max_userip_connections = 10 mail_plugin_dir = /usr/local/lib/dovecot/pop3 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_enable_last = no pop3_lock_session = no pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s pop3_no_flag_updates = no pop3_reuse_xuidl = yes pop3_uidl_format = %08Xu%08Xv } protocol lda { auth_socket_path = /var/run/dovecot/auth-master deliver_log_format = msgid=%m: %$ mail_plugin_dir = /usr/local/lib/dovecot/lda postmaster_address = postmaster at swcp.com quota_full_tempfail = yes rejection_reason = Your message to <%t> was automatically rejected:%n%r sendmail_path = /usr/sbin/sendmail } ------------------------------------------------------ Thanks, Mark -- Mark Costlow | Southwest Cyberport | Fax: +1-505-232-7975 cheeks at swcp.com | Web: www.swcp.com | Voice: +1-505-232-7992 Mail Minder - Intelligent Push Notifications for Email on the iPhone http://mailminderapp.com/download or in the App Store
aki.tuomi at dovecot.fi
2016-Jul-19 21:04 UTC
Panic when runing "doveadm mailbox status ... vsize"
> On July 19, 2016 at 10:23 PM Mark Costlow <cheeks at swcp.com> wrote: > > > I'm using dovecot 2.2.24 on FreeBSD 10.3. I'm working on converting > users from maildir to mdbox, for the usual reasons. > > I have converted some test users and they generally work fine. But > when I run "doveadm mailbox status" I get a Panic if I ask for the > vsize field (or "all"), but other fields work fine. For example: >Any hope for gdb with bt full on the corefile? --- Aki Tuomi Dovecot oy
Hi Mark, Am 19.07.2016 um 21:23 schrieb Mark Costlow:> I have converted some test users and they generally work fine. But > when I run "doveadm mailbox status" I get a Panic if I ask for the > vsize field (or "all"), but other fields work fine. For example: > > # doveadm mailbox status -u bubbacheex3 "messages" INBOX > INBOX messages=53 > > # doveadm mailbox status -u bubbacheex3 "guid" INBOX > INBOX guid=bf976912f3748957761d0100f906a3d0 > > # doveadm mailbox status -u bubbacheex3 "unseen" INBOX > INBOX unseen=52 > > # doveadm mailbox status -u bubbacheex3 "vsize" INBOX > doveadm(bubbacheex3): Panic: file file-lock.c: line 269: unreached > Abort trap >Have you checked that line 269 in file-lock.c? https://github.com/dovecot/core/blob/master/src/lib/file-lock.c#L269 Do you have write access to the mail folder of the user? I'm not sure anymore, maybe a workaround for me was: -o lock_method=fcntl Using fcntl instead of dotlock for that command... Or I made sure to have write access to the mail folder of the user... Or both.... I don't remember anymore. Maybe someone can explain why dotlock is not supported in that code path. Michael
Thank you for pushing me in the right direction! I originally used "lock_method = dotlock" on this server. I had gotten to a point in trouble-shooting where i thought I should change to fcntl, which I did. BUT I did not restart dovecot! I just did that, and now "vsize" works. I don't have a theory for why dotlock wouldn't be supported in that path. Thanks again, Mark On Wed, Jul 20, 2016 at 01:25:44AM +0200, Michael Kliewe wrote:> Hi Mark, > > Am 19.07.2016 um 21:23 schrieb Mark Costlow: > > I have converted some test users and they generally work fine. But > > when I run "doveadm mailbox status" I get a Panic if I ask for the > > vsize field (or "all"), but other fields work fine. For example: > > > > # doveadm mailbox status -u bubbacheex3 "messages" INBOX > > INBOX messages=53 > > > > # doveadm mailbox status -u bubbacheex3 "guid" INBOX > > INBOX guid=bf976912f3748957761d0100f906a3d0 > > > > # doveadm mailbox status -u bubbacheex3 "unseen" INBOX > > INBOX unseen=52 > > > > # doveadm mailbox status -u bubbacheex3 "vsize" INBOX > > doveadm(bubbacheex3): Panic: file file-lock.c: line 269: unreached > > Abort trap > > > Have you checked that line 269 in file-lock.c? > https://github.com/dovecot/core/blob/master/src/lib/file-lock.c#L269 > > Do you have write access to the mail folder of the user? > > I'm not sure anymore, maybe a workaround for me was: > -o lock_method=fcntl > Using fcntl instead of dotlock for that command... > Or I made sure to have write access to the mail folder of the user... Or > both.... I don't remember anymore. > > Maybe someone can explain why dotlock is not supported in that code path. > > Michael-- Mark Costlow | Southwest Cyberport | Fax: +1-505-232-7975 cheeks at swcp.com | Web: www.swcp.com | Voice: +1-505-232-7992 Mail Minder - Intelligent Push Notifications for Email on the iPhone http://mailminderapp.com/download or in the App Store