AW: Problem with copy e-mails via doveadm

Christian Küppers c.kueppers at onoffice.de
Fri Aug 20 09:12:42 EEST 2021


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 at shard1 192.168.0.12 at shard1
192.168.0.21 at shard2 192.168.0.22 at shard2 192.168.0.31 at shard3
192.168.0.32 at shard3 192.168.0.41 at shard4 192.168.0.42 at 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 at 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 = </etc/ssl/certs/cert.crt
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_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 at 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 at 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


More information about the dovecot mailing list