[Dovecot] Mail migration to dovecot with doveadm backup

Reinhard Vicinus r.vicinus at metaways.de
Sun Jun 24 18:57:29 EEST 2012


Hi,

i try to migrate mails from a non dovecot imap server to a dovecot imap 
server with doveadm backup as described there:

http://wiki2.dovecot.org/Migration/Dsync

i first tried (local-mailbox port 18143 is the non dovecot imap server):

/usr/bin/doveadm -o imapc_user=user at example.org -o imapc_password=imappw 
-o imapc_host=local-mailbox -o imapc_features=rfc822.size -o 
imapc_port=18143 -o mailbox_list_index=no -v -D backup -R -f -u 
user at example.org -m Sent imapc:

and got the following error:

dsync(user at example.org): Fatal: dsync backup: Looks like you're trying 
to run backup in wrong direction. Source is empty and destination is not.

As the dovecot imap account is newly created and therefore empty it 
seams to try to backup from the dovecot imap server to the non dovecot 
imap server. So i tried instead:

/usr/bin/doveadm -o imapc_user=user at example.org -o imapc_password=imappw 
-o imapc_host=local-mailbox -o imapc_features=rfc822.size -o 
imapc_port=18143 -o mailbox_list_index=no -v -D backup -f -u 
user at example.org -m Sent imapc:

Sometimes (every other time?) i got the following segmentation fault:

bt
#0  0x00007f15e2c9ed74 in strcasecmp () from /lib/libc.so.6
#1  0x00007f15e327eaff in imapc_save_callback (reply=0x7fff56096a70, 
context=<value optimized out>) at imapc-save.c:168
#2  0x00007f15e32853fe in imapc_command_reply_free (conn=0x72f040) at 
imapc-connection.c:946
#3  imapc_connection_input_tagged (conn=0x72f040) at imapc-connection.c:1039
#4  0x00007f15e3285668 in imapc_connection_input_one (conn=0x72f040) at 
imapc-connection.c:1085
#5  imapc_connection_input_pending (conn=0x72f040) at 
imapc-connection.c:1407
#6  0x00007f15e3285922 in imapc_connection_input (conn=0x72f040) at 
imapc-connection.c:1100
#7  0x00007f15e2fe6176 in io_loop_call_io (io=0x792510) at ioloop.c:379
#8  0x00007f15e2fe71ff in io_loop_handler_run (ioloop=<value optimized 
out>) at ioloop-epoll.c:213
#9  0x00007f15e2fe6118 in io_loop_run (ioloop=0x7529a0) at ioloop.c:398
#10 0x00007f15e3281e49 in imapc_client_run_pre (client=0x7333e0) at 
imapc-client.c:142
#11 imapc_client_run (client=0x7333e0) at imapc-client.c:161
#12 0x00007f15e3280f24 in imapc_storage_run (storage=0x732bd0) at 
imapc-storage.c:118
#13 0x00007f15e327f003 in imapc_save_append (_ctx=0x74dcb0) at 
imapc-save.c:232
#14 imapc_save_finish (_ctx=0x74dcb0) at imapc-save.c:255
#15 0x00007f15e1bf06a1 in quota_save_finish (ctx=0x74dcb0) at 
quota-storage.c:227
#16 0x00007f15e3292487 in mailbox_save_finish (_ctx=0x7f15e2d4ca40) at 
mail-storage.c:1669
#17 0x000000000042b736 in local_worker_save_msg_continue 
(worker=0x73c770) at dsync-worker-local.c:1681
#18 0x000000000042b98c in local_worker_msg_save (_worker=0x73c770, 
msg=0x7f15e38e4298, data=0x7fff56096db0, callback=0x4269f0 
<msg_save_callback>, context=0x78a610) at dsync-worker-local.c:1739
#19 0x000000000042b0d9 in dsync_worker_msg_save (worker=0x73c770, 
msg=<value optimized out>, data=0x7fff56096db0, callback=0x4269f0 
<msg_save_callback>, context=0x78a610) at dsync-worker.c:234
#20 0x0000000000426ac5 in msg_get_callback (result=<value optimized 
out>, data=0x7fff56096db0, context=0x78a610) at dsync-brain-msgs-new.c:79
#21 0x000000000042dca9 in local_worker_msg_get_next (worker=0x726f30, 
get=0x7fff56096e00) at dsync-worker-local.c:1844
#22 0x000000000042def8 in local_worker_msg_get (_worker=0x0, 
mailbox=<value optimized out>, uid=3805596224, callback=0x2670, 
context=0x58) at dsync-worker-local.c:1865
#23 0x000000000042ace6 in dsync_worker_msg_get (worker=0x726f30, 
mailbox=0x7f15e38e40f1, uid=1, callback=0x426a40 <msg_get_callback>, 
context=<value optimized out>) at dsync-worker.c:261
#24 0x000000000042689e in dsync_brain_msg_sync_add_new_msg 
(iter=0x7f15e38e41d8) at dsync-brain-msgs-new.c:181
#25 dsync_brain_mailbox_add_new_msgs (iter=0x7f15e38e41d8) at 
dsync-brain-msgs-new.c:216
#26 dsync_brain_msg_sync_add_new_msgs (iter=0x7f15e38e41d8) at 
dsync-brain-msgs-new.c:315
#27 0x0000000000426164 in dsync_brain_msg_sync_more 
(sync=0x7f15e38e4050) at dsync-brain-msgs.c:436
#28 0x0000000000424979 in dsync_brain_sync_msgs (brain=0x7351c0) at 
dsync-brain.c:736
#29 dsync_brain_sync (brain=0x7351c0) at dsync-brain.c:857
#30 0x0000000000425849 in dsync_brain_subs_list_finished 
(context=0x750fa0) at dsync-brain.c:169
#31 dsync_worker_subs_input (context=0x750fa0) at dsync-brain.c:222
#32 0x0000000000424cbd in dsync_brain_sync (brain=0x7351c0) at 
dsync-brain.c:842
#33 0x00000000004256bc in dsync_brain_mailbox_list_finished 
(context=0x743a60) at dsync-brain.c:98
#34 dsync_worker_mailbox_input (context=0x743a60) at dsync-brain.c:125
#35 0x0000000000424afe in dsync_brain_sync (brain=0x7351c0) at 
dsync-brain.c:833
#36 0x0000000000425568 in dsync_brain_sync_all (brain=0x7351c0) at 
dsync-brain.c:897
#37 0x0000000000422ad6 in cmd_dsync_start (ctx=0x706560, worker1=<value 
optimized out>, worker2=<value optimized out>) at doveadm-dsync.c:342
#38 0x0000000000422dfa in cmd_dsync_run (_ctx=0x706560, user=0x7209c0) 
at doveadm-dsync.c:387
#39 0x000000000040f888 in doveadm_mail_next_user (ctx=0x706560, 
input=<value optimized out>, error_r=0x7fff560973d0) at doveadm-mail.c:311
#40 0x0000000000410071 in doveadm_mail_cmd (cmd=0x704880, argc=7, 
argv=0x6fe418) at doveadm-mail.c:518
#41 0x0000000000410501 in doveadm_mail_try_run (cmd_name=0x6fe4e4 
"backup", argc=1443460960, argv=0x4377c7) at doveadm-mail.c:577
#42 0x00000000004170d1 in main (argc=7, argv=0x6fe3e8) at doveadm.c:373


The other times it shows the following error message (It seams to 
connect both times to the non dovecot imap server):

doveadm(root): Debug: Loading modules from directory: 
/usr/lib/dovecot/modules
doveadm(root): Debug: Module loaded: 
/usr/lib/dovecot/modules/lib10_quota_plugin.so
doveadm(root): Debug: Loading modules from directory: 
/usr/lib/dovecot/modules/doveadm
doveadm(root): Debug: Skipping module doveadm_acl_plugin, because 
dlopen() failed: 
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: undefined 
symbol: acl_user_module (this is usually intentional, so just ignore 
this message)
doveadm(root): Debug: Skipping module doveadm_expire_plugin, because 
dlopen() failed: 
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: 
undefined symbol: expire_set_lookup (this is usually intentional, so 
just ignore this message)
doveadm(root): Debug: Module loaded: 
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so
doveadm(root): Debug: Skipping module doveadm_zlib_plugin, because 
dlopen() failed: 
/usr/lib/dovecot/modules/doveadm/lib10_doveadm_zlib_plugin.so: undefined 
symbol: i_stream_create_deflate (this is usually intentional, so just 
ignore this message)
doveadm(root): Debug: Skipping module doveadm_fts_plugin, because 
dlopen() failed: 
/usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined 
symbol: fts_list_backend (this is usually intentional, so just ignore 
this message)
doveadm(user at example.org): Debug: auth input: user at example.org 
home=/mail/dovecot/example.org/user uid=1000 gid=1000 
quota_rule=*:bytes=2000M:messages=0
doveadm(user at example.org): Debug: Added userdb setting: 
plugin/quota_rule=*:bytes=2000M:messages=0
doveadm(user at example.org): Debug: Effective uid=1000, gid=1000, 
home=/mail/dovecot/example.org/user
doveadm(user at example.org): Debug: Quota root: name=User quota 
backend=dict args=:proxy::quota
doveadm(user at example.org): Debug: Quota rule: root=User quota mailbox=* 
bytes=2097152000 messages=0
doveadm(user at example.org): Debug: Quota rule: root=User quota 
mailbox=Trash bytes=+104857600 messages=0
doveadm(user at example.org): Debug: Quota warning: bytes=1992294400 (95%) 
messages=0 reverse=no command=quota-warning 95 user at example.org
doveadm(user at example.org): Debug: Quota warning: bytes=1677721600 (80%) 
messages=0 reverse=no command=quota-warning 80 user at example.org
doveadm(user at example.org): Debug: dict quota: user=user at example.org, 
uri=proxy::quota, noenforcing=0
doveadm(user at example.org): Debug: fs: 
root=/mail/dovecot/example.org/user/mail, index=, control=, inbox=, alt=
doveadm(user at example.org): Debug: Namespace : Using permissions from 
/mail/dovecot/example.org/user/mail: mode=0700 gid=-1
dsync(user at example.org): Debug: Effective uid=1000, gid=1000, 
home=/mail/dovecot/example.org/user
dsync(user at example.org): Debug: Quota root: name=User quota backend=dict 
args=:proxy::quota
dsync(user at example.org): Debug: Quota rule: root=User quota mailbox=* 
bytes=2097152000 messages=0
dsync(user at example.org): Debug: Quota rule: root=User quota 
mailbox=Trash bytes=+104857600 messages=0
dsync(user at example.org): Debug: Quota warning: bytes=1992294400 (95%) 
messages=0 reverse=no command=quota-warning 95 user at example.org
dsync(user at example.org): Debug: Quota warning: bytes=1677721600 (80%) 
messages=0 reverse=no command=quota-warning 80 user at example.org
dsync(user at example.org): Debug: dict quota: user=user at example.org, 
uri=proxy::quota, noenforcing=0
dsync(user at example.org): Debug: imapc: root=, index=, control=, inbox=, alt=
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Looking up 
IP address
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Connecting 
to 10.10.10.10:18143
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Server 
capabilities: IMAP4 IMAP4rev1 AUTH=LOGIN ACL NAMESPACE CHILDREN SORT 
QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE
dsync(user at example.org): Debug: imapc(local-mailbox:18143): 
Authenticating as user at example.org
dsync(user at example.org): Debug: imapc(local-mailbox:18143): 
Authenticated successfully
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Looking up 
IP address
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Connecting 
to 10.10.10.10:18143
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Server 
capabilities: IMAP4 IMAP4rev1 AUTH=LOGIN ACL NAMESPACE CHILDREN SORT 
QUOTA THREAD=ORDEREDSUBJECT UNSELECT IDLE
dsync(user at example.org): Debug: imapc(local-mailbox:18143): 
Authenticating as user at example.org
dsync(user at example.org): Debug: imapc(local-mailbox:18143): 
Authenticated successfully
dsync(user at example.org): Warning: Destination mailbox Sent has been 
modified, need to recreate it before we can continue syncing
dsync(user at example.org): Warning: Mailbox changes caused a desync. You 
may want to run dsync again.
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Disconnected
dsync(user at example.org): Debug: imapc(local-mailbox:18143): Disconnected

i think the problem could be that the account name on the remote server 
and the local server is absolute identical and doveadm backup has 
therefore problems discerning between the two locations. But that's only 
a stab in the dark and any help is appreciated.

Kind regards
Reinhard



More information about the dovecot mailing list