[Dovecot] Sync errors trying to sync old mbox inboxes to dovecot

Michael Smith msmith at giganews.com
Tue Apr 9 01:41:59 EEST 2013


Timo,

I tried importing the anonymized file, and there were no errors.  So, it's something with the actual data.  UTF-8 issues?


While I can't send you a raw customer's mailbox, one of the failures is a 'role' account mailbox, with no critical/useful data in it.

Here is a link (expires in 30 days) to download the mailbox, it's 107M.
https://truck.it/p/HNlzl9hWbO

The error I'm getting is 
dsync(webmail): Error: Sync failed for mbox file /var/opt/migrate/users/webmail/inbox: seq=4482 uid=4482 uid_broken=0 originally needed 10 bytes, now needs 12 bytes

The seq and uid are different, depending on the mailbox being migrated.  Some of the problem mailboxes only report a single failure, and some report multiple failures (where the seq/uid are different for each failure).  For a given mailbox, the seq and uid reported seem to always be consistent.

I create a directory called migrate, copy the file in there and name it inbox

The command I'm using is
Dsync -u webmail mirror mbox:migrate/

Here's my 2.2.rc3 doveconf -n output

# 2.2.rc3: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.32-279.19.1.el6.x86_64 x86_64 CentOS release 6.3 (Final)
auth_debug = yes
auth_debug_passwords = yes
auth_default_realm = 
auth_mechanisms = plain login
auth_verbose = yes
auth_verbose_passwords = plain
debug_log_path = /var/log/dovecot-debug.log
disable_plaintext_auth = no
dotlock_use_excl = no
lda_mailbox_autocreate = yes
lock_method = dotlock
log_path = /var/log/dovecot.log
mail_access_groups = mail
mail_debug = yes
mail_fsync = always
mail_location = mdbox:~/mail:INDEX=~/index
mail_plugins = quota zlib
mail_privileged_group = mail
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
mbox_read_locks = dotlock
mbox_write_locks = dotlock
mdbox_rotate_interval = 1 weeks
mdbox_rotate_size = 20 M
mmap_disable = yes
passdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
plugin {
  autocreate = Trash
  autocreate2 = Junk
  autocreate3 = Drafts
  autocreate4 = Sent
  autocreate5 = INBOX
  autosubscribe = Trash
  autosubscribe2 = Junk
  autosubscribe3 = Drafts
  autosubscribe4 = Sent
  autosubscribe5 = INBOX
  mail_max_userip_connections = 10
  managesieve_max_line_length = 65536
  quota = dict:User quota::file:%h/dovecot.quota
  quota2_rule = Trash:storage=+10%%
  quota3_rule = Junk:storage=+20%%
  quota_rule = *:storage=100M:messages=100000
  recipient_delimiter = +
  sieve_before = /var/spool/mail/global.sieve/
  zlib_save = gz
  zlib_save_level = 9
}
pop3_reuse_xuidl = yes
protocols = imap pop3 sieve lmtp
service auth {
  inet_listener auth {
    port = 113
  }
  unix_listener auth-userdb {
    user = nobody
  }
}
service lmtp {
  inet_listener lmtp {
    port = 24
  }
  process_min_avail = 10
  service_count = 1
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  process_min_avail = 0
  service_count = 1
  vsz_limit = 64 M
}
ssl = no
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
  args = /etc/dovecot/dovecot-sql.conf.ext
  driver = sql
}
protocol lda {
  mail_plugins = quota zlib sieve
}
protocol imap {
  mail_plugins = quota zlib imap_quota autocreate
}
protocol sieve {
  mail_max_userip_connections = 10
  mail_plugins = quota zlib autocreate
  managesieve_max_line_length = 65536
  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
}
protocol lmtp {
  mail_plugins = quota zlib sieve
}


--
Michael Smith

-----Original Message-----
From: Timo Sirainen [mailto:tss at iki.fi] 
Sent: Sunday, April 07, 2013 4:36 PM
To: Michael Smith
Cc: dovecot at dovecot.org
Subject: Re: [Dovecot] Sync errors trying to sync old mbox inboxes to dovecot

On 6.4.2013, at 0.10, Michael Smith <msmith at giganews.com> wrote:

> I am trying to 'dsync mirror' old Qpopper/mbox inboxes to our new Dovecot/mdbox servers.  For most of the several thousand accounts, it works without issue.  But there are a handful of accounts that are generating the following errors.
> 
> dsync(joe): Error: Sync failed for mbox file /var/opt/migrate/users/joe/inbox: seq=981 uid=981 uid_broken=0 originally needed 9 bytes, now needs 11 bytes
> 
> dsync(john): Error: Sync failed for mbox file /var/opt/migrate/users/john/inbox: seq=115028 uid=115028 uid_broken=0 originally needed 34 bytes, now needs 35 bytes

These are some generic mbox bugs. I think the error goes away if you just repeat the run? 

> dsync(john): Error: Sync failed for mbox file /var/opt/migrate/users/john/inbox: seq=114779 uid=114779 uid_broken=0 originally needed 34 bytes, now needs 35 bytes
> dsync(john): Error: Sync failed for mbox file /var/opt/migrate/users/john/inbox: seq=114778 uid=114778 uid_broken=0 originally needed 34 bytes, now needs 35 bytes

.. or are these all separate dsync runs giving different errors?

Anyway, if you can send me an mbox file where I can reproduce this, I could fix it. You can use http://dovecot.org/tools/mbox-anonymize.pl script to replace all the actual data in the mbox file with 'x' chars.



More information about the dovecot mailing list