Problem with copy e-mails via doveadm
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder "source_folder" lying on backend servers (shard1) to another user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 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) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
dovecot configuration on dovecot proxy&director servers: # 2.3.15.1 (b52083c4e8): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.15 (e6a84e31) # OS: Linux 5.4.0-81-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_process_limit = 250 director_mail_servers = 192.168.0.11@shard1 192.168.0.12@shard1 192.168.0.21@shard2 192.168.0.22@shard2 192.168.0.31@shard3 192.168.0.32@shard3 192.168.0.41@shard4 192.168.0.42@shard4 director_servers = 192.168.0.101 192.168.0.102 192.168.0.103 disable_plaintext_auth = no doveadm_api_key = # hidden, use -P to show it doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} lmtp_proxy = yes mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_plugins = " quota" 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 index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de protocols = imap pop3 lmtp sieve service anvil { client_limit = 1003 } service auth { client_limit = 1500 unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service director { fifo_listener login/proxy-notify { mode = 0666 } inet_listener { address = 192.168.0.101 port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service doveadm { inet_listener { address = 192.168.0.101 port = 24245 } inet_listener http { address = 192.168.0.101 port = 8080 } } service imap-login { executable = imap-login director inet_listener imap { port = 143 } inet_listener imaps { port = 993 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service ipc { unix_listener ipc { user = dovecot } } service lmtp { inet_listener lmtp { address = 192.168.0.101 port = 24 } vsz_limit = 384 M } service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 4190 } } service pop3-login { executable = pop3-login director inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service stats { inet_listener http { address = 192.168.0.101 port = 9900 } } ssl_cert =
dovecot configuration on backend servers with direct attached storage: # 2.3.14 (28dc72975e): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.14 (1b5c82b2) # OS: Linux 5.4.0-72-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_vsz_limit = 512 M disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} mail_location = mdbox:~/mdbox mail_plugins = " zlib quota notify replication" mailbox_list_index_very_dirty_syncs = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = . } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { mail_replica = tcp:192.168.0.22 quota = count:onOffice User quota quota_vsizes = yes sieve = file:~/sieve;active=~/.dovecot.sieve sieve_extensions = -reject zlib_save = zstd zlib_save_level = 6 } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de replication_dsync_parameters = -d -n INBOX -l 30 -U service aggregator { fifo_listener replication-notify-fifo { user = vmail } unix_listener replication-notify { user = vmail } } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service doveadm { inet_listener { address = 192.168.0.21 port = 24245 } vsz_limit = 2 G } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 } } service lmtp { inet_listener lmtp { address = 192.168.0.21 port = 24 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { group = vmail mode = 0660 user = vmail } } service stats { inet_listener http { address = 192.168.0.21 port = 9900 } } ssl = no ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { mail_plugins = " zlib quota notify replication sieve" } protocol imap { mail_max_userip_connections = 100 mail_plugins = " zlib quota notify replication imap_zlib" } protocol sieve { mail_max_userip_connections = 10 } protocol pop3 { mail_max_userip_connections = 10 mail_plugins = " zlib quota notify replication" }
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian Mähringer
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder "source_folder" lying on backend servers (shard1) to another user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 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) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
dovecot configuration on dovecot proxy&director servers: # 2.3.15.1 (b52083c4e8): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.15 (e6a84e31) # OS: Linux 5.4.0-81-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_process_limit = 250 director_mail_servers = 192.168.0.11@shard1 192.168.0.12@shard1 192.168.0.21@shard2 192.168.0.22@shard2 192.168.0.31@shard3 192.168.0.32@shard3 192.168.0.41@shard4 192.168.0.42@shard4 director_servers = 192.168.0.101 192.168.0.102 192.168.0.103 disable_plaintext_auth = no doveadm_api_key = # hidden, use -P to show it doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} lmtp_proxy = yes mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_plugins = " quota" 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 index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de protocols = imap pop3 lmtp sieve service anvil { client_limit = 1003 } service auth { client_limit = 1500 unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service director { fifo_listener login/proxy-notify { mode = 0666 } inet_listener { address = 192.168.0.101 port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service doveadm { inet_listener { address = 192.168.0.101 port = 24245 } inet_listener http { address = 192.168.0.101 port = 8080 } } service imap-login { executable = imap-login director inet_listener imap { port = 143 } inet_listener imaps { port = 993 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service ipc { unix_listener ipc { user = dovecot } } service lmtp { inet_listener lmtp { address = 192.168.0.101 port = 24 } vsz_limit = 384 M } service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 4190 } } service pop3-login { executable = pop3-login director inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service stats { inet_listener http { address = 192.168.0.101 port = 9900 } } ssl_cert =
dovecot configuration on backend servers with direct attached storage: # 2.3.14 (28dc72975e): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.14 (1b5c82b2) # OS: Linux 5.4.0-72-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_vsz_limit = 512 M disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} mail_location = mdbox:~/mdbox mail_plugins = " zlib quota notify replication" mailbox_list_index_very_dirty_syncs = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = . } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { mail_replica = tcp:192.168.0.22 quota = count:onOffice User quota quota_vsizes = yes sieve = file:~/sieve;active=~/.dovecot.sieve sieve_extensions = -reject zlib_save = zstd zlib_save_level = 6 } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de replication_dsync_parameters = -d -n INBOX -l 30 -U service aggregator { fifo_listener replication-notify-fifo { user = vmail } unix_listener replication-notify { user = vmail } } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service doveadm { inet_listener { address = 192.168.0.21 port = 24245 } vsz_limit = 2 G } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 } } service lmtp { inet_listener lmtp { address = 192.168.0.21 port = 24 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { group = vmail mode = 0660 user = vmail } } service stats { inet_listener http { address = 192.168.0.21 port = 9900 } } ssl = no ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384 ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { mail_plugins = " zlib quota notify replication sieve" } protocol imap { mail_max_userip_connections = 100 mail_plugins = " zlib quota notify replication imap_zlib" } protocol sieve { mail_max_userip_connections = 10 } protocol pop3 { mail_max_userip_connections = 10 mail_plugins = " zlib quota notify replication" }
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian Mähringer
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so:
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
dovecot configuration on dovecot proxy&director servers: # 2.3.15.1 (b52083c4e8): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.15 (e6a84e31) # OS: Linux 5.4.0-81-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_process_limit = 250 director_mail_servers = 192.168.0.11@shard1 192.168.0.12@shard1 192.168.0.21@shard2 192.168.0.22@shard2 192.168.0.31@shard3 192.168.0.32@shard3 192.168.0.41@shard4 192.168.0.42@shard4 director_servers = 192.168.0.101 192.168.0.102 192.168.0.103 disable_plaintext_auth = no doveadm_api_key = # hidden, use -P to show it doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} lmtp_proxy = yes mail_location = mbox:~/mail:INBOX=/var/mail/%u mail_plugins = " quota" 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 index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de protocols = imap pop3 lmtp sieve service anvil { client_limit = 1003 } service auth { client_limit = 1500 unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } } service director { fifo_listener login/proxy-notify { mode = 0666 } inet_listener { address = 192.168.0.101 port = 9090 } unix_listener director-userdb { mode = 0600 } unix_listener login/director { mode = 0666 } } service doveadm { inet_listener { address = 192.168.0.101 port = 24245 } inet_listener http { address = 192.168.0.101 port = 8080 } } service imap-login { executable = imap-login director inet_listener imap { port = 143 } inet_listener imaps { port = 993 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service ipc { unix_listener ipc { user = dovecot } } service lmtp { inet_listener lmtp { address = 192.168.0.101 port = 24 } vsz_limit = 384 M } service managesieve-login { executable = managesieve-login director inet_listener sieve { port = 4190 } } service pop3-login { executable = pop3-login director inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } process_min_avail = 8 service_count = 0 vsz_limit = 256 M } service stats { inet_listener http { address = 192.168.0.101 port = 9900 } } ssl_cert =
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { auth_socket_path = director-userdb } protocol doveadm { auth_socket_path = director-userdb } protocol imap { mail_max_userip_connections = 20 } protocol sieve { mail_max_userip_connections = 10 } protocol pop3 { mail_max_userip_connections = 10 }
dovecot configuration on backend servers with direct attached storage: # 2.3.14 (28dc72975e): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.14 (1b5c82b2) # OS: Linux 5.4.0-72-generic x86_64 Ubuntu 20.04.2 LTS auth_mechanisms = plain login auth_verbose = yes default_vsz_limit = 512 M disable_plaintext_auth = no doveadm_password = # hidden, use -P to show it doveadm_port = 24245 imap_logout_format = in=%i out=%o deleted=%{deleted} expunged=%{expunged} trashed=%{trashed} mail_location = mdbox:~/mdbox mail_plugins = " zlib quota notify replication" mailbox_list_index_very_dirty_syncs = yes managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext metric auth_success { filter = (event=auth_request_finished AND success=yes) } metric client_connections { filter = event=client_connection_finished } metric imap_command { filter = event=imap_command_finished group_by = cmd_name tagged_reply_state } metric mail_delivery { filter = event=mail_delivery_finished group_by = duration:exponential:1:5:10 } namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix = separator = . } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { mail_replica = tcp:192.168.0.22 quota = count:onOffice User quota quota_vsizes = yes sieve = file:~/sieve;active=~/.dovecot.sieve sieve_extensions = -reject zlib_save = zstd zlib_save_level = 6 } pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s, deleted_bytes=%{deleted_bytes} postmaster_address = postmaster@onoffice.de replication_dsync_parameters = -d -n INBOX -l 30 -U service aggregator { fifo_listener replication-notify-fifo { user = vmail } unix_listener replication-notify { user = vmail } } service dict { unix_listener dict { group = vmail mode = 0600 user = vmail } } service doveadm { inet_listener { address = 192.168.0.21 port = 24245 } vsz_limit = 2 G } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 } } service lmtp { inet_listener lmtp { address = 192.168.0.21 port = 24 } } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 } } service replicator { process_min_avail = 1 unix_listener replicator-doveadm { group = vmail mode = 0660 user = vmail } } service stats { inet_listener http { address = 192.168.0.21 port = 9900 } } ssl = no ssl_cipher_list =
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_min_protocol = TLSv1.2 userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } verbose_proctitle = yes protocol lmtp { mail_plugins = " zlib quota notify replication sieve" } protocol imap { mail_max_userip_connections = 100 mail_plugins = " zlib quota notify replication imap_zlib" } protocol sieve { mail_max_userip_connections = 10 } protocol pop3 { mail_max_userip_connections = 10 mail_plugins = " zlib quota notify replication" }
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian Mähringer
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so:
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian Mähringer
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so:
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so:
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return mail=whatever your mail location is
from userdb lookup easier.
Aki
On 20/08/2021 13:09 Aki Tuomi aki.tuomi@open-xchange.com wrote:
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so:
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Started passdb lookup Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
Please explain in more detail how I can do this.
Try targeting your director instead. in cmd of director /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL does no change, like i said.
in cmd of backend shard2 /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL results in same output than targeting backend shard1 direct.
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.
mysql dovecot configuration part: user_query = SELECT '/vmail/%Ld/%Ln' AS home, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu' password_query = SELECT email AS user, password, 10000 AS userdb_uid, 10000 AS userdb_gid, '/vmail/%Ld/%Ln' AS userdb_home FROM users WHERE email = '%Lu' AND active = '1'
Isn't my described attempt on backend of dest_user_shard2 exactly what you described as possible next try? If not what has to be changed?
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:14:54 An: ckueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The problem actually is that you are now targeting the source user into the
source user as well. You need to, somehow, make dovecot return mail=imapc:
for the target user. Or you can try to do the copying on the target backend
instead, so that you can return mail=whatever your mail location is
from
userdb lookup easier.
Aki
On 20/08/2021 13:09 Aki Tuomi aki.tuomi@open-xchange.com wrote:
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: passdb lookup(dest_user_shard2): Started passdb lookup passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2
proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
Run the command on the target host, and change
user_query = SELECT '/vmail/%Ld/%Ln' AS home, 'mbox:~/mail:INBOX=/var/mail/%u' AS mail, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu'
Aki
On 20/08/2021 13:39 Christian Küppers c.kueppers@onoffice.de wrote:
Please explain in more detail how I can do this.
Try targeting your director instead. in cmd of director /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL does no change, like i said.
in cmd of backend shard2 /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL results in same output than targeting backend shard1 direct.
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.mysql dovecot configuration part: user_query = SELECT '/vmail/%Ld/%Ln' AS home, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu' password_query = SELECT email AS user, password, 10000 AS userdb_uid, 10000 AS userdb_gid, '/vmail/%Ld/%Ln' AS userdb_home FROM users WHERE email = '%Lu' AND active = '1'
Isn't my described attempt on backend of dest_user_shard2 exactly what you described as possible next try? If not what has to be changed?
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:14:54 An: ckueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.Aki
On 20/08/2021 13:09 Aki Tuomi aki.tuomi@open-xchange.com wrote:
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: passdb lookup(dest_user_shard2): Started passdb lookup passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2
proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
That doesn't work / has no visible effect.
mail/location/mail_location gets overwritten by "-o mail_location=imapc:" in doveadm command.
Is it possible to "bind" options/values to users in doveadm command, like "doveadm -o target_mail_location=imapc: -o source_mail_location=mbox:~/mail:INBOX=/var/mail/user -o target_mail_host=<dns> ..."?
Other optional way: Is doveadm capable of handling different configurations (e.g. backends, received from userdb) for different given users in one command? Is it possible to disable proxy of my doveadm command to backend if I run it on a production/actively used director&proxy server without changing running configuration? I tried adding "-o proxy=n" to my doveadm command but without effect.
I ask these questions because from my point of view the director is the only server to run this copy command on and has the knowledge of both users servers to connect to (if command wouldn't get proxied).
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:46:01 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Run the command on the target host, and change
user_query = SELECT '/vmail/%Ld/%Ln' AS home, 'mbox:~/mail:INBOX=/var/mail/%u' AS mail, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu'
Aki
On 20/08/2021 13:39 Christian Küppers c.kueppers@onoffice.de wrote:
Please explain in more detail how I can do this.
Try targeting your director instead. in cmd of director /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL does no change, like i said.
in cmd of backend shard2 /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL results in same output than targeting backend shard1 direct.
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.mysql dovecot configuration part: user_query = SELECT '/vmail/%Ld/%Ln' AS home, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu' password_query = SELECT email AS user, password, 10000 AS userdb_uid, 10000 AS userdb_gid, '/vmail/%Ld/%Ln' AS userdb_home FROM users WHERE email = '%Lu' AND active = '1'
Isn't my described attempt on backend of dest_user_shard2 exactly what you described as possible next try? If not what has to be changed?
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:14:54 An: ckueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.Aki
On 20/08/2021 13:09 Aki Tuomi aki.tuomi@open-xchange.com wrote:
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: passdb lookup(dest_user_shard2): Started passdb lookup passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2
proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
(sorry for that, missed to change from html to text version )
Further help appreciated on this topic.
further question/option: If the proxy enable part in password_query is the main problem. Would it work if I create a single new dovecot instance (in new vm) with same configuration as our proxy&director instances but without the "'y' AS proxy" part? Would this change copy the e-mails from backend servers "shard1" to backend servers "shard2" without proxing command to "shard2"?
Christian
----- Ursprüngliche Nachricht ----- Von: Christian Küppers c.kueppers@onoffice.de Gesendet: Freitag, 20. August 2021 14:41:26 An: aki.tuomi@open-xchange.com Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
That doesn't work / has no visible effect.
mail/location/mail_location gets overwritten by "-o mail_location=imapc:" in doveadm command.
Is it possible to "bind" options/values to users in doveadm command, like "doveadm -o target_mail_location=imapc: -o source_mail_location=mbox:~/mail:INBOX=/var/mail/user -o target_mail_host=<dns> ..."?
Other optional way: Is doveadm capable of handling different configurations (e.g. backends, received from userdb) for different given users in one command? Is it possible to disable proxy of my doveadm command to backend if I run it on a production/actively used director&proxy server without changing running configuration? I tried adding "-o proxy=n" to my doveadm command but without effect.
I ask these questions because from my point of view the director is the only server to run this copy command on and has the knowledge of both users servers to connect to (if command wouldn't get proxied).
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:46:01 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Run the command on the target host, and change
user_query = SELECT '/vmail/%Ld/%Ln' AS home, 'mbox:~/mail:INBOX=/var/mail/%u' AS mail, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu'
Aki
On 20/08/2021 13:39 Christian Küppers c.kueppers@onoffice.de wrote:
Please explain in more detail how I can do this.
Try targeting your director instead. in cmd of director /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL does no change, like i said.
in cmd of backend shard2 /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL results in same output than targeting backend shard1 direct.
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.mysql dovecot configuration part: user_query = SELECT '/vmail/%Ld/%Ln' AS home, 10000 AS uid, 10000 AS gid FROM users WHERE email = '%Lu' password_query = SELECT email AS user, password, 10000 AS userdb_uid, 10000 AS userdb_gid, '/vmail/%Ld/%Ln' AS userdb_home FROM users WHERE email = '%Lu' AND active = '1'
Isn't my described attempt on backend of dest_user_shard2 exactly what you described as possible next try? If not what has to be changed?
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 12:14:54 An: ckueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The problem actually is that you are now targeting the source user into the source user as well. You need to, somehow, make dovecot return mail=imapc: for the target user. Or you can try to do the copying on the target backend instead, so that you can return
mail=whatever your mail location is
from userdb lookup easier.Aki
On 20/08/2021 13:09 Aki Tuomi aki.tuomi@open-xchange.com wrote:
Try targeting your director instead.
Aki
On 20/08/2021 12:45 Christian Küppers c.kueppers@onoffice.de wrote:
Okay, i need some further help.
What i've tried with your hint:
Executing on cmd of director&proxy server: /usr/bin/doveadm -Dv -o mail_location=imapc: copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<director-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL
I've also tried to execute "doveadm -c" with copied and modified configuration on director&proxy server without "'y' AS proxy" in sql password_query configuration part - without luck. This leads all to same debug output and result as command in first post.
After that i changed to cmd of backend server of dest_user_shard2 and tried: /usr/bin/doveadm -Dv -o mail_location=imapc: -o imapc_host=<backend-shard1-dns> -o imapc_user="source_user_shard1" -o imapc_password="source_user_shard1_password" copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL [..] Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:52:38 doveadm(source_user_shard1)<2442101><qAs8KVZtH2F1QyUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 1 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 2 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 3 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 4 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Copying message UID 5 from 'source_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: Mailbox doesn't exist: dest_folder (0.001 + 0.000 secs). Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:52:38 doveadm(2442101): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
after creating dest_folder in source_user_shard1 mailbox output changed to: [..] Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc(<backend-shard1-dns>:143): Authenticated successfully Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: imapc: root=, index=, indexpvt=, control=, inbox=, alt= Aug 20 08:56:11 doveadm(source_user_shard1)<2446702><0AmaCStuH2FuVSUA5QDIzw>: Debug: quota: quota_over_flag check: quota_over_script unset - skipping Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: Mailbox opened because: copy Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 1: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 1: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 2: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 2: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 3: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 3: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 4: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 4: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox source_folder: UID 5: Opened mail because: copying Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: Mailbox dest_folder: saving UID 5: Opened mail Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: replication: Replication requested by 'cmd_copy_box', priority=2 Aug 20 08:56:11 doveadm(dest_user_shard2): Error: Syncing mailbox 'dest_folder' failed: BUG: Unknown internal error Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(dest_user_shard2): Debug: imapc(<backend-shard1-dns>:143): Disconnected Aug 20 08:56:11 doveadm(2446702): Debug: auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=2630417,uid=0): Disconnected: Connection closed (fd=9)
This time e-mails get copied in source_user_shard1 from source_folder to dest_folder although dest_user_shard2 is given in doveadm command and is different from source_user_shard1. It is not what I expected and desired.
So yeah i haven't get the whole picture right now. Maybe you can give me some details.
Christian
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 09:06:31 An: c.kueppers@onoffice.de Cc: dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
The copy command gets proxied to the remote server because you used proxy=y. To do this kind of copying, you need to specify mail_location=imapc: and target to the director.
Aki
On 20/08/2021 09:53 Christian Küppers c.kueppers@onoffice.de wrote:
Maybe i missunderstood this message. For me this indicates that doveadm is searching on the wrong server (backend) for "source_user_shard1" 's and folder "source_folder". From my understanding doveadm has to look on 192.168.0.11 or 192.168.0.12 (according to provided configuration), but the message says 192.168.0.21 which is backend for "dest_user_shard2".
----- Ursprüngliche Nachricht ----- Von: Aki Tuomi aki.tuomi@open-xchange.com Gesendet: Freitag, 20. August 2021 08:39:41 An: c.kueppers@onoffice.de, dovecot@dovecot.org Betreff: Re: AW: Problem with copy e-mails via doveadm
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2 proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder
Does this help?
Aki
On 20/08/2021 09:12 Christian Küppers c.kueppers@onoffice.de wrote:
Try to republish due to unreadable message (in html format) in mailing list archive maybe someone can take a better look at it now
Hi,
i want to copy e-mails from user "source_user_shard1" and folder
user "dest_user_shard2" and folder "dest_folder" lying on different backend servers (shard2) via command line tool doveadm copy executed on dovecot proxy&director servers. But doveadm seems to look only on "dest_user_shard2"'s backend for folder "source_folder" of user "source_user_shard1" and can not find it. To confirm this, i've checked directories on filesystem on backend of "dest_user_shard2" and a folder for "source_user_shard1" was created including one folder "mdbox" and only one file "dovecot.list.index.log" in it. Folder and file timestamps match the command debug output time. "doveadm list" executed for both users show the right folders (source_folder and dest_folder exist in respective mailbox).
Is it a bug or wrong usage of tool? Please advice.
command executed on dovecot proxy&director server with debug output: /usr/bin/doveadm -Dv copy -u "dest_user_shard2" "dest_folder" user "source_user_shard1" mailbox "source_folder" ALL Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Aug 17 10:22:05 Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Aug 17 10:22:05 Debug: Skipping module doveadm_acl_plugin, because
undefined symbol: acl_user_module (this is usually intentional, so just ignore this message) Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Aug 17 10:22:05 Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Aug 17 10:22:05 Debug: Skipping module doveadm_fts_plugin, because
undefined symbol: fts_user_get_language_list (this is usually intentional, so just ignore this message) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb: Connecting Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Client connected (fd=9) Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
director_tag=shard2 proxy_refresh=450 host=192.168.0.21 Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master:
"source_folder" lying on backend servers (shard1) to another dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so: dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_plugin.so: passdb lookup(dest_user_shard2): Started passdb lookup passdb lookup(dest_user_shard2): auth PASS input: user=dest_user_shard2 proxy=y passdb lookup(dest_user_shard2): Finished passdb lookup (user=dest_user_shard2
proxy=y director_tag=shard2 proxy_refresh=450 host=192.168.0.21) Aug 17 10:22:05 doveadm(dest_user_shard2): Error: remote(192.168.0.21:24245): Mailbox source_folder: Mailbox sync failed: Mailbox doesn't exist: source_folder Aug 17 10:22:05 doveadm(dest_user_shard2): Debug: auth-master: conn unix:/var/run/dovecot/director-userdb (pid=647,uid=0): Disconnected: Connection closed (fd=9)
<snip/>
Kind regards,
Christian Küppers Expert Administrator
onOffice GmbH Charlottenburger Allee 5 | 52068 Aachen Tel. +49 (0)241 446 86-0 | Fax. +49 (0)241 446 86-250 E-Mail:c.kueppers@onoffice.de| Web:www.onOffice.com
Registergericht: Amtsgericht Aachen, HRB 21420 Geschäftsführer: Dipl.-Kfm. Stefan Mantl Prokuristen: Janosch Reuschenbach, Kristina Andresen, Christian
Mähringer
participants (2)
-
Aki Tuomi
-
Christian Küppers