[Dovecot] Problems converting to maildir with dsync in 2.0.6

Nicholas Riley njriley at illinois.edu
Fri Oct 22 04:30:35 EEST 2010


I'm trying to convert from an old Dovecot (1.0.15) and mbox to a new 
Dovecot and maildir.  I'm running into several problems with dsync which 
are causing my mboxes not to convert.

If I use LAYOUT=fs (as I'd prefer) I get an error because I have a 
mailbox called "subscriptions", and none of my messages convert.  Is 
there a way to get dovecot to put its own metadata in dotfiles instead?  
(I guess I can rename my mailbox too :-)

% dsync mirror mbox:~/Mail
dsync(nriley): Error: read() failed with subscription file 
/home/nriley/Maildir/subscriptions: Is a directory
dsync(nriley): Error: Can't update subscription +/INBOX: Internal error 
occurred. Refer to server log for more information. [2010-10-21 20:17:55]
[...]

Also, what "server log" is it referring to above?

So I tried without LAYOUT=fs, and dsync successfully converts some 
mailboxes, then crashes:

% dsync mirror mbox:~/Mail
dsync(nriley): Error: Maildir: 6ef533cd4cdb1fd454b0226bfc851bb3:2, 
changed UID 1846529 -> 1846531
dsync(nriley): Panic: file maildir-save.c: line 892 
(maildir_save_sync_uidlist): assertion failed: (ret > 0)
dsync(nriley): Error: Raw backtrace: /usr/lib/dovecot/libdovecot.so.0 
[0xb7ea21f1] -> 
/usr/lib/dovecot/libdovecot.so.0(default_fatal_handler+0x47) 
[0xb7ea2317] -> /usr/lib/dovecot/libdovecot.so.0(i_error+0) [0xb7ea2544] 
-> 
/usr/lib/dovecot/libdovecot-storage.so.0(maildir_transaction_save_commit_
pre+0x858) [0xb7f2ab58] -> /usr/lib/dovecot/libdovecot-storage.so.0 
[0xb7f2501f] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mail_index_transaction_commit_fu
ll+0x85) [0xb7f67eb5] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(index_transaction_commit+0x94) 
[0xb7f24c14] -> 
/usr/lib/dovecot/libdovecot-storage.so.0(mailbox_transaction_commit_get_c
hanges+0x42) [0xb7efeaa2] -> /usr/bin/dsync [0x8056ed2] -> 
/usr/bin/dsync [0x80570f0] -> 
/usr/bin/dsync(dsync_worker_select_mailbox+0x2e) [0x8055b2e] -> 
/usr/bin/dsync [0x80507e6] -> /usr/bin/dsync [0x8050a3b] -> 
/usr/bin/dsync(dsync_brain_msg_sync_new_msgs+0x12) [0x8050c12] -> 
/usr/bin/dsync(dsync_brain_msg_sync_more+0x2e1) [0x8050261] -> 
/usr/bin/dsync(dsync_brain_sync+0x309) [0x804e949] -> /usr/bin/dsync 
[0x804f953] -> /usr/bin/dsync(dsync_brain_sync+0x72e) [0x804ed6e] -> 
/usr/bin/dsync [0x804f7d0] -> /usr/bin/dsync(dsync_brain_sync+0x55d) 
[0x804eb9d] -> /usr/bin/dsync(dsync_brain_sync_all+0x18) [0x804f668] -> 
/usr/bin/dsync(main+0x5a1) [0x804da51] -> 
/lib/libc.so.6(__libc_start_main+0xe5) [0xb7d29455] -> /usr/bin/dsync 
[0x804d2e1]
[1]    30528 abort      dsync mirror mbox:~/Mail

I tried running it in GDB but that crashed GDB, so hopefully the above 
info is OK...

% gdb --args dsync mirror mbox:~/Mail
(gdb) run
Starting program: /usr/bin/dsync mirror mbox:\~/Mail
[Thread debugging using libthread_db enabled]
[New process 30652]
Executing new program: /usr/bin/doveconf
warning: Cannot initialize thread debugging library: generic error
warning: Cannot initialize thread debugging library: generic error
warning: Cannot initialize thread debugging library: generic error
warning: Cannot initialize thread debugging library: generic error
[New process 30652]
[Thread debugging using libthread_db enabled]
[1]    30651 segmentation fault  gdb -q --args dsync mirror mbox:~/Mail

I'm using the Debian packages from rename-it.nl.  Here is doveconf -n 
output:

# 2.0.6 (aaca506ea33b): /etc/dovecot/dovecot.conf
# OS: Linux 2.6.18.8-linode22 i686 Debian 5.0.6 
mail_location = maildir:~/Maildir:INBOX=~/Maildir/INBOX
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope 
encoded-character vacation subaddress comparator-i;ascii-numeric 
relational regex imap4flags copy include variables body enotify 
environment mailbox date
namespace {
  inbox = yes
  location = 
  prefix = 
  separator = /
}
passdb {
  driver = pam
}
plugin {
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap
ssl = required
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
userdb {
  driver = passwd
}
-- 
Nicholas Riley <njriley at illinois.edu>



More information about the dovecot mailing list