OK so now I tried a doveadm backup -R with pop3c using dovecot 2.2.4 (50117c22151e) (auto build) and it works fine, and indeed very fast.
Funny, I ran into a segmentation fault by mistakenly passing pop3c_password instead of imapc_password, thought it would be worth posting.
I'm using the cutting-edge dovecot over NFS storing to the production server running 2.1.7. I'll be seeing "Corrupted index cache file .. Invalid magic in hole header" when every account logs in for the first time post-migration. Is this OK? I'm using Maildir.
Segfault:
Starting program: /usr/bin/doveadm -D -o imapc_user=xxxx@example.com -o pop3c_password=******* -o imapc_host=mail01.example.com import -s -u xxxx@example.com imapc: '' NOT mailbox INBOX [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1". doveadm(root): Debug: Loading modules from directory: /usr/lib/dovecot/modules doveadm(root): Debug: Module loaded: /usr/lib/dovecot/modules/lib20_listescape_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_deinit (this is usually intentional, so just ignore this message) doveadm(root): Debug: Skipping module doveadm_quota_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so: undefined symbol: quota_user_module (this is usually intentional, so just ignore this message) doveadm(root): Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so doveadm(root): Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_backend_rescan (this is usually intentional, so just ignore this message) doveadm(root): Debug: Effective uid=0, gid=0, home=/root
Program received signal SIGSEGV, Segmentation fault. imapc_storage_client_unref (_client=_client@entry=0x80c3130) at imapc-storage.c:256 256 imapc-storage.c: No such file or directory. (gdb) bt full #0 imapc_storage_client_unref (_client=_client@entry=0x80c3130) at imapc-storage.c:256 client = 0x0 cb = <optimized out> __FUNCTION__ = "imapc_storage_client_unref" #1 0xb7ed4660 in imapc_list_deinit (_list=0x80c3028) at imapc-list.c:106 list = 0x80c3028 #2 0xb7ef5c44 in mailbox_list_create (driver=driver@entry=0xb7f57ad2 "imapc", ns=ns@entry=0x80c2f78, set=set@entry=0xbffff854, flags=MAILBOX_LIST_FLAG_NO_MAIL_FILES, list_r=list_r@entry=0xbffff844, error_r=error_r@entry=0xbffff928) at mailbox-list.c:184 list = 0x80c3028 idx = 6 __FUNCTION__ = "mailbox_list_create" #3 0xb7eedadb in mail_storage_create_full (ns=ns@entry=0x80c2f78, driver=<optimized out>, driver@entry=0x0, data=<optimized out>, flags=flags@entry=0, storage_r=storage_r@entry=0xbffff8cc, error_r=error_r@entry=0xbffff928) at mail-storage.c:356 storage_class = 0xb7f8d060 storage = 0x0 list = 0xbffff880 list_set = {layout = 0xb7f57ad2 "imapc", root_dir = 0x0, index_dir = 0x0, index_pvt_dir = 0x0, control_dir = 0x0, alt_dir = 0x0, inbox_path = 0x0, subscription_fname = 0x0, maildir_name = 0xb7f52fbc "", mailbox_dir_name = 0xb7f52fbc "", escape_char = 37 '%', broken_char = 0 '\000', utf8 = false, alt_dir_nocheck = false} list_flags = <optimized out> p = <optimized out> __FUNCTION__ = "mail_storage_create_full" #4 0xb7eede35 in mail_storage_create (ns=ns@entry=0x80c2f78, driver=driver@entry=0x0, flags=flags@entry=0, error_r=error_r@entry=0xbffff928) at mail-storage.c:407 storage = 0xb7eeddf0 #5 0xb7ee788f in mail_namespaces_init_location (user=0x80bef90, location=location@entry=0x80b12ab "imapc:", error_r=error_r@entry=0xbffff978) at mail-namespace.c:460 inbox_set = 0x80bfd50 unexpanded_inbox_set = 0x80bfd80 ns = 0x80c2f78 mail_set = 0x80bf638 error = <optimized out> driver = <optimized out> location_source = <optimized out> default_location = <optimized out> __FUNCTION__ = "mail_namespaces_init_location" #6 0x0805b072 in cmd_import_init (_ctx=0x80b4ed8, args=0x80b1200) at doveadm-mail-import.c:179 ctx = 0x80b4ed8 input = {module = 0x808e8e5 "mail", service = 0x0, username = 0x8092f03 "doveadm", session_id = 0x0, local_ip = {family = 0, u = {ip6 = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, remote_ip = {family = 0, u = {ip6 = {__in6_u = { __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0, userdb_fields = 0x0, flags_override_add = 2056, flags_override_remove = MAIL_STORAGE_SERVICE_FLAG_USERDB_LOOKUP, no_userdb_lookup = 0} service_user = 0x80b8e90 user = 0x80bef90 ---Type <return> to continue, or q <return> to quit--- src_location = 0x80b12ab "imapc:" error = 0x4 <Address 0x4 out of bounds> #7 0x080575f8 in doveadm_mail_single_user (ctx=0x80b4ed8, input=0xbffffa6c, error_r=0xbffffa64) at doveadm-mail.c:328 __FUNCTION__ = "doveadm_mail_single_user" #8 0x08057c37 in doveadm_mail_cmd (argv=0x80b1200, argc=<optimized out>, cmd=0x80b4388) at doveadm-mail.c:516 input = {module = 0x0, service = 0x8092f03 "doveadm", username = 0x80b1299 "xxxx@example.com", session_id = 0x0, local_ip = {family = 0, u = {ip6 = {__in6_u = { __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, remote_ip = {family = 0, u = {ip6 = { __in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}}, ip4 = {s_addr = 0}}}, local_port = 0, remote_port = 0, userdb_fields = 0x0, flags_override_add = 0, flags_override_remove = 0, no_userdb_lookup = 0} ctx = 0x80b4ed8 getopt_args = <optimized out> ret = <optimized out> c = <optimized out> wildcard_user = 0x0 error = <optimized out> #9 doveadm_mail_try_run (cmd_name=cmd_name@entry=0x80b128c "import", argc=argc@entry=9, argv=argv@entry=0x80b11f0) at doveadm-mail.c:608 cmd = 0x80b4388 #10 0x08056b26 in main (argc=9, argv=0x80b11f0) at doveadm.c:398 cmd_name = <optimized out> i = <optimized out> quick_init = false c = <optimized out>