doveadm dsync-server doesn't use user parameter?
Hi,
I tried to migrate my dovecot 2.2 to a new server with a other storage configuration and dovecot 2.3.
New (and old) Server uses mysql for user information
I use the following storage settings
mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path}
userdb:path is generated by the mysql query and ends in something like "2000/6"
SQL: CONCAT(u.idAccount, '/', u.idUser) AS userdb_path
If I login with imap dovecot is creating the INBOX on the correct path
/storage1/fast/2000/6/mailboxes/INBOX
btw. it creates a link to dbox-alt-root but without creating the target directory is this expected?
Now if I start
doveadm backup -u <username> remote:mailstore2
it ignores it seams that dsync-server doesn't make a database query and doesn't use the userdb_path field. It only uses
/storage1/fast/mailboxes/INBOX
as path.
Is this a problem with my configuration?
thx
--- doveconf -n # 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.3 (f018bbab) # OS: Linux 4.15.18-7-pve x86_64 Debian 9.6 zfs # Hostname: mailstore2 auth_cache_negative_ttl = 1 secs auth_cache_size = 10 M auth_cache_ttl = 1 secs auth_master_user_separator = * auth_mechanisms = PLAIN LOGIN APOP auth_verbose = yes default_client_limit = 600 default_vsz_limit = 512 M dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlacl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no first_valid_gid = 1001 first_valid_uid = 1001 hostname = mailstore2 imap_hibernate_timeout = 1 mins imap_id_log = * imap_id_send = * imap_idle_notify_interval = 10 mins imap_logout_format = bytes=%i/%o instance_name = mailstore2 last_valid_gid = 1001 last_valid_uid = 1001 lda_original_recipient_header = X-LDA-Original-To lmtp_rcpt_check_quota = yes login_greeting = ITronic Mail Store login_trusted_networks = 172.22.14.0/24 mail_cache_min_mail_count = 5 mail_gid = vmail mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} mail_plugins = lazy_expunge acl quota mail_log notify mail_prefetch_count = 100 mail_server_admin = mailto:postmaster@example.com mail_server_comment = Mail System mail_shared_explicit_inbox = yes mail_uid = vmail 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 vacation-seconds mdbox_preallocate_space = yes namespace { hidden = yes list = no location = mdbox:/storage1/fast/%{userdb:path}:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} prefix = "#EXPUNGED/" subscriptions = no type = private } namespace { list = children location = mdbox:%%h/mdbox prefix = "#Users/%%u/" separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes location = mailbox Archvie { special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox Spam { special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes result_success = continue-ok } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = proxy::sqlacl last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it lazy_expunge = "#EXPUNGED/" lazy_expunge_only_last_instance = no mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create mail_log_fields = uid box msgid size flags vsize from subject quota = dict:User quota::proxy::sqlquota quota_grace = 10%% quota_rule = *:storage=1024M quota_rule2 = "#EXPUNGED:storage=+1024M" quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=80%% quota-warning 80 %u recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = file:/storage1/vmail/%{userdb:idAccount}/ sieve_extensions = +vacation-seconds sieve_global = /etc/dovecot/sieve sieve_max_actions = 64 sieve_max_redirects = 8 sieve_max_script_size = 2M sieve_quota_max_scripts = 0 sieve_quota_max_storage = 64M sieve_vacation_default_period = 1d sieve_vacation_min_period = 1h } pop3_uidl_duplicates = rename protocols = imap lmtp sieve pop3 service auth-worker { user = $default_internal_user } service auth { inet_listener { port = 4180 } unix_listener auth-userdb { mode = 0666 } } service dict { unix_listener dict { group = vmail mode = 0666 } } service imap-hibernate { unix_listener imap-hibernate { group = vmail mode = 0666 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 0 } service imap { process_limit = 1024 unix_listener imap-master { user = dovecot } unix_listener imap { group = vmail mode = 0666 } vsz_limit = 512 M } service lmtp { inet_listener lmtp { address = 172.22.14.136 port = 24000 } unix_listener lmtp { mode = 0666 } } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service managesieve { process_limit = 50 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 20 service_count = 1 vsz_limit = 64 M } service pop3 { process_limit = 1024 } service quota-warning { executable = script /opt/scripts/quota-warning.sh unix_listener quota-warning { user = vmail } user = dovecot } shutdown_clients = no ssl_cert =
-- Harald Leithner
ITronic Wiedner Hauptstraße 120/5.1, 1050 Wien, Austria Tel: +43-1-545 0 604 Mobil: +43-699-123 78 4 78 Mail: leithner@itronic.at | itronic.at
I did a debug output of the dsync-server and found out that it queries the userdb parameter but doesn't use it.
Debug: Loading modules from directory: /usr/lib/dovecot/modules Debug: Module loaded: /usr/lib/dovecot/modules/lib01_acl_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib02_lazy_expunge_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib15_notify_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib20_mail_log_plugin.so Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message) Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message) 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) Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message) doveadm(user@example.com)<27674><>: Debug: auth USER input: user@example.com userdb_path=2000/6 quota_rule=*:bytes=0M nice=0 uid=1001 gid=1001 doveadm(user@example.com)<27674><>: Debug: Added userdb setting: plugin/quota_rule=*:bytes=0M doveadm(user@example.com)<27674><>: Debug: Added userdb setting: plugin/userdb_path=2000/6 doveadm(user@example.com): Debug: Effective uid=1001, gid=1001, home=/storage1/vmail/ doveadm(user@example.com): Debug: Quota root: name=User quota backend=dict args=:proxy::sqlquota doveadm(user@example.com): Debug: Quota rule: root=User quota mailbox=* bytes=0 messages=0 doveadm(user@example.com): Debug: Quota rule: root=User quota mailbox=#EXPUNGED bytes=+1073741824 messages=0 doveadm(user@example.com): Debug: Quota warning: bytes=0 (100%) messages=0 reverse=no command=quota-warning 100 user@example.com doveadm(user@example.com): Debug: Quota warning: bytes=0 (95%) messages=0 reverse=no command=quota-warning 95 user@example.com doveadm(user@example.com): Debug: Quota warning: bytes=0 (80%) messages=0 reverse=no command=quota-warning 80 user@example.com doveadm(user@example.com): Debug: Quota grace: root=User quota bytes=0 (10%) doveadm(user@example.com): Debug: dict quota: user=user@example.com, uri=proxy::sqlquota, noenforcing=0 doveadm(user@example.com): Debug: Namespace : type=private, prefix=#EXPUNGED/, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=mdbox:/storage1/fast/:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ doveadm(user@example.com): Debug: fs: root=/storage1/fast, index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, alt=/storage1/slow doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 1 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: Namespace : type=shared, prefix=#Users/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=mdbox:%h/mdbox doveadm(user@example.com): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 0 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mdbox:/storage1/fast/:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ doveadm(user@example.com): Debug: fs: root=/storage1/fast, index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, alt=/storage1/slow doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 1 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: quota: quota_over_flag check: quota_over_script unset - skipping dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/test kontakt/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/test/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/gsdfg/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace : Using permissions from /storage1/fast: mode=0755 gid=default dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace #EXPUNGED/: Using permissions from /storage1/fast: mode=0755 gid=default
Am 23.11.2018 um 12:14 schrieb Harald Leithner:
Hi,
I tried to migrate my dovecot 2.2 to a new server with a other storage configuration and dovecot 2.3.
New (and old) Server uses mysql for user information
I use the following storage settings
mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path}
userdb:path is generated by the mysql query and ends in something like "2000/6"
SQL: CONCAT(u.idAccount, '/', u.idUser) AS userdb_path
If I login with imap dovecot is creating the INBOX on the correct path
/storage1/fast/2000/6/mailboxes/INBOX
btw. it creates a link to dbox-alt-root but without creating the target directory is this expected?
Now if I start
doveadm backup -u <username> remote:mailstore2
it ignores it seams that dsync-server doesn't make a database query and doesn't use the userdb_path field. It only uses
/storage1/fast/mailboxes/INBOX
as path.
Is this a problem with my configuration?
thx
--- doveconf -n # 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.3 (f018bbab) # OS: Linux 4.15.18-7-pve x86_64 Debian 9.6 zfs # Hostname: mailstore2 auth_cache_negative_ttl = 1 secs auth_cache_size = 10 M auth_cache_ttl = 1 secs auth_master_user_separator = * auth_mechanisms = PLAIN LOGIN APOP auth_verbose = yes default_client_limit = 600 default_vsz_limit = 512 M dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlacl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no first_valid_gid = 1001 first_valid_uid = 1001 hostname = mailstore2 imap_hibernate_timeout = 1 mins imap_id_log = * imap_id_send = * imap_idle_notify_interval = 10 mins imap_logout_format = bytes=%i/%o instance_name = mailstore2 last_valid_gid = 1001 last_valid_uid = 1001 lda_original_recipient_header = X-LDA-Original-To lmtp_rcpt_check_quota = yes login_greeting = ITronic Mail Store login_trusted_networks = 172.22.14.0/24 mail_cache_min_mail_count = 5 mail_gid = vmail mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} mail_plugins = lazy_expunge acl quota mail_log notify mail_prefetch_count = 100 mail_server_admin = mailto:postmaster@example.com mail_server_comment = Mail System mail_shared_explicit_inbox = yes mail_uid = vmail 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 vacation-seconds mdbox_preallocate_space = yes namespace { hidden = yes list = no location = mdbox:/storage1/fast/%{userdb:path}:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} prefix = "#EXPUNGED/" subscriptions = no type = private } namespace { list = children location = mdbox:%%h/mdbox prefix = "#Users/%%u/" separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes location = mailbox Archvie { special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox Spam { special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes result_success = continue-ok } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = proxy::sqlacl last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it lazy_expunge = "#EXPUNGED/" lazy_expunge_only_last_instance = no mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create mail_log_fields = uid box msgid size flags vsize from subject quota = dict:User quota::proxy::sqlquota quota_grace = 10%% quota_rule = *:storage=1024M quota_rule2 = "#EXPUNGED:storage=+1024M" quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=80%% quota-warning 80 %u recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = file:/storage1/vmail/%{userdb:idAccount}/ sieve_extensions = +vacation-seconds sieve_global = /etc/dovecot/sieve sieve_max_actions = 64 sieve_max_redirects = 8 sieve_max_script_size = 2M sieve_quota_max_scripts = 0 sieve_quota_max_storage = 64M sieve_vacation_default_period = 1d sieve_vacation_min_period = 1h } pop3_uidl_duplicates = rename protocols = imap lmtp sieve pop3 service auth-worker { user = $default_internal_user } service auth { inet_listener { port = 4180 } unix_listener auth-userdb { mode = 0666 } } service dict { unix_listener dict { group = vmail mode = 0666 } } service imap-hibernate { unix_listener imap-hibernate { group = vmail mode = 0666 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 0 } service imap { process_limit = 1024 unix_listener imap-master { user = dovecot } unix_listener imap { group = vmail mode = 0666 } vsz_limit = 512 M } service lmtp { inet_listener lmtp { address = 172.22.14.136 port = 24000 } unix_listener lmtp { mode = 0666 } } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service managesieve { process_limit = 50 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 20 service_count = 1 vsz_limit = 64 M } service pop3 { process_limit = 1024 } service quota-warning { executable = script /opt/scripts/quota-warning.sh unix_listener quota-warning { user = vmail } user = dovecot } shutdown_clients = no ssl_cert =
-- Harald Leithner
ITronic Wiedner Hauptstraße 120/5.1, 1050 Wien, Austria Tel: +43-1-545 0 604 Mobil: +43-699-123 78 4 78 Mail: leithner@itronic.at | itronic.at
j4i 2.3.4 doesn't fix this problem
Am 23.11.2018 um 13:26 schrieb Harald Leithner:
I did a debug output of the dsync-server and found out that it queries the userdb parameter but doesn't use it.
Debug: Loading modules from directory: /usr/lib/dovecot/modules Debug: Module loaded: /usr/lib/dovecot/modules/lib01_acl_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib02_lazy_expunge_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib10_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib15_notify_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/lib20_mail_log_plugin.so Debug: Loading modules from directory: /usr/lib/dovecot/modules/doveadm Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_acl_plugin.so Debug: Skipping module doveadm_expire_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_expire_plugin.so: undefined symbol: expire_set_deinit (this is usually intentional, so just ignore this message) Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_quota_plugin.so Debug: Module loaded: /usr/lib/dovecot/modules/doveadm/lib10_doveadm_sieve_plugin.so Debug: Skipping module doveadm_fts_lucene_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/lib20_doveadm_fts_lucene_plugin.so: undefined symbol: lucene_index_iter_deinit (this is usually intentional, so just ignore this message) 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) Debug: Skipping module doveadm_mail_crypt_plugin, because dlopen() failed: /usr/lib/dovecot/modules/doveadm/libdoveadm_mail_crypt_plugin.so: undefined symbol: mail_crypt_box_get_pvt_digests (this is usually intentional, so just ignore this message) doveadm(user@example.com)<27674><>: Debug: auth USER input: user@example.com userdb_path=2000/6 quota_rule=*:bytes=0M nice=0 uid=1001 gid=1001 doveadm(user@example.com)<27674><>: Debug: Added userdb setting: plugin/quota_rule=*:bytes=0M doveadm(user@example.com)<27674><>: Debug: Added userdb setting: plugin/userdb_path=2000/6 doveadm(user@example.com): Debug: Effective uid=1001, gid=1001, home=/storage1/vmail/ doveadm(user@example.com): Debug: Quota root: name=User quota backend=dict args=:proxy::sqlquota doveadm(user@example.com): Debug: Quota rule: root=User quota mailbox=* bytes=0 messages=0 doveadm(user@example.com): Debug: Quota rule: root=User quota mailbox=#EXPUNGED bytes=+1073741824 messages=0 doveadm(user@example.com): Debug: Quota warning: bytes=0 (100%) messages=0 reverse=no command=quota-warning 100 user@example.com doveadm(user@example.com): Debug: Quota warning: bytes=0 (95%) messages=0 reverse=no command=quota-warning 95 user@example.com doveadm(user@example.com): Debug: Quota warning: bytes=0 (80%) messages=0 reverse=no command=quota-warning 80 user@example.com doveadm(user@example.com): Debug: Quota grace: root=User quota bytes=0 (10%) doveadm(user@example.com): Debug: dict quota: user=user@example.com, uri=proxy::sqlquota, noenforcing=0 doveadm(user@example.com): Debug: Namespace : type=private, prefix=#EXPUNGED/, sep=, inbox=no, hidden=yes, list=no, subscriptions=no location=mdbox:/storage1/fast/:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ doveadm(user@example.com): Debug: fs: root=/storage1/fast, index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, alt=/storage1/slow doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 1 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: Namespace : type=shared, prefix=#Users/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=yes location=mdbox:%h/mdbox doveadm(user@example.com): Debug: shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 0 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: Namespace inbox: type=private, prefix=, sep=/, inbox=yes, hidden=no, list=yes, subscriptions=yes location=mdbox:/storage1/fast/:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/:ALT=/storage1/slow/:VOLATILEDIR=/tmp/ doveadm(user@example.com): Debug: fs: root=/storage1/fast, index=/storage1/indexes/vmail, indexpvt=, control=, inbox=, alt=/storage1/slow doveadm(user@example.com): Debug: acl: initializing backend with data: vfile doveadm(user@example.com): Debug: acl: acl username = user@example.com doveadm(user@example.com): Debug: acl: owner = 1 doveadm(user@example.com): Debug: acl vfile: Global ACLs disabled doveadm(user@example.com): Debug: quota: quota_over_flag check: quota_over_script unset - skipping dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/test kontakt/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/test/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: acl vfile: file /storage1/fast/mailboxes/INBOX/gsdfg/iTrNiCs-DBOx-mAiLs/dovecot-acl not found dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace : Using permissions from /storage1/fast: mode=0755 gid=default dsync-remote(user@example.com)<CkATLXru91sabAAAUTwJdA>: Debug: Namespace #EXPUNGED/: Using permissions from /storage1/fast: mode=0755 gid=default
Am 23.11.2018 um 12:14 schrieb Harald Leithner:
Hi,
I tried to migrate my dovecot 2.2 to a new server with a other storage configuration and dovecot 2.3.
New (and old) Server uses mysql for user information
I use the following storage settings
mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path}
userdb:path is generated by the mysql query and ends in something like "2000/6"
SQL: CONCAT(u.idAccount, '/', u.idUser) AS userdb_path
If I login with imap dovecot is creating the INBOX on the correct path
/storage1/fast/2000/6/mailboxes/INBOX
btw. it creates a link to dbox-alt-root but without creating the target directory is this expected?
Now if I start
doveadm backup -u <username> remote:mailstore2
it ignores it seams that dsync-server doesn't make a database query and doesn't use the userdb_path field. It only uses
/storage1/fast/mailboxes/INBOX
as path.
Is this a problem with my configuration?
thx
--- doveconf -n # 2.3.3 (dcead646b): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.3 (f018bbab) # OS: Linux 4.15.18-7-pve x86_64 Debian 9.6 zfs # Hostname: mailstore2 auth_cache_negative_ttl = 1 secs auth_cache_size = 10 M auth_cache_ttl = 1 secs auth_master_user_separator = * auth_mechanisms = PLAIN LOGIN APOP auth_verbose = yes default_client_limit = 600 default_vsz_limit = 512 M dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlacl = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext sqlquota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext } disable_plaintext_auth = no first_valid_gid = 1001 first_valid_uid = 1001 hostname = mailstore2 imap_hibernate_timeout = 1 mins imap_id_log = * imap_id_send = * imap_idle_notify_interval = 10 mins imap_logout_format = bytes=%i/%o instance_name = mailstore2 last_valid_gid = 1001 last_valid_uid = 1001 lda_original_recipient_header = X-LDA-Original-To lmtp_rcpt_check_quota = yes login_greeting = ITronic Mail Store login_trusted_networks = 172.22.14.0/24 mail_cache_min_mail_count = 5 mail_gid = vmail mail_home = /storage1/vmail/%{userdb:path} mail_location = mdbox:/storage1/fast/%{userdb:path}:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} mail_plugins = lazy_expunge acl quota mail_log notify mail_prefetch_count = 100 mail_server_admin = mailto:postmaster@example.com mail_server_comment = Mail System mail_shared_explicit_inbox = yes mail_uid = vmail 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 vacation-seconds mdbox_preallocate_space = yes namespace { hidden = yes list = no location = mdbox:/storage1/fast/%{userdb:path}:MAILBOXDIR=expunged:LISTINDEX=expunged.list.index:FULLDIRNAME=iTrNiCs-DBOx-mAiLs:INDEX=/storage1/indexes/vmail/%{userdb:path}:ALT=/storage1/slow/%{userdb:path}:VOLATILEDIR=/tmp/%{userdb:path} prefix = "#EXPUNGED/" subscriptions = no type = private } namespace { list = children location = mdbox:%%h/mdbox prefix = "#Users/%%u/" separator = / subscriptions = yes type = shared } namespace inbox { hidden = no inbox = yes location = mailbox Archvie { special_use = \Archive } mailbox Drafts { special_use = \Drafts } mailbox Sent { special_use = \Sent } mailbox Spam { special_use = \Junk } mailbox Trash { special_use = \Trash } prefix = separator = / subscriptions = yes type = private } passdb { args = /etc/dovecot/master-users driver = passwd-file master = yes result_success = continue-ok } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = proxy::sqlacl last_login_dict = proxy::lastlogin last_login_key = # hidden, use -P to show it lazy_expunge = "#EXPUNGED/" lazy_expunge_only_last_instance = no mail_log_events = delete undelete expunge copy mailbox_delete mailbox_rename flag_change save mailbox_create mail_log_fields = uid box msgid size flags vsize from subject quota = dict:User quota::proxy::sqlquota quota_grace = 10%% quota_rule = *:storage=1024M quota_rule2 = "#EXPUNGED:storage=+1024M" quota_warning = storage=100%% quota-warning 100 %u quota_warning2 = storage=95%% quota-warning 95 %u quota_warning3 = storage=80%% quota-warning 80 %u recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_before = file:/storage1/vmail/%{userdb:idAccount}/ sieve_extensions = +vacation-seconds sieve_global = /etc/dovecot/sieve sieve_max_actions = 64 sieve_max_redirects = 8 sieve_max_script_size = 2M sieve_quota_max_scripts = 0 sieve_quota_max_storage = 64M sieve_vacation_default_period = 1d sieve_vacation_min_period = 1h } pop3_uidl_duplicates = rename protocols = imap lmtp sieve pop3 service auth-worker { user = $default_internal_user } service auth { inet_listener { port = 4180 } unix_listener auth-userdb { mode = 0666 } } service dict { unix_listener dict { group = vmail mode = 0666 } } service imap-hibernate { unix_listener imap-hibernate { group = vmail mode = 0666 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } process_min_avail = 1 service_count = 0 } service imap { process_limit = 1024 unix_listener imap-master { user = dovecot } unix_listener imap { group = vmail mode = 0666 } vsz_limit = 512 M } service lmtp { inet_listener lmtp { address = 172.22.14.136 port = 24000 } unix_listener lmtp { mode = 0666 } } service managesieve-login { inet_listener sieve { port = 4190 } process_min_avail = 0 service_count = 1 vsz_limit = 64 M } service managesieve { process_limit = 50 } service pop3-login { inet_listener pop3 { port = 110 } inet_listener pop3s { port = 995 ssl = yes } process_min_avail = 20 service_count = 1 vsz_limit = 64 M } service pop3 { process_limit = 1024 } service quota-warning { executable = script /opt/scripts/quota-warning.sh unix_listener quota-warning { user = vmail } user = dovecot } shutdown_clients = no ssl_cert =
-- Harald Leithner
ITronic Wiedner Hauptstraße 120/5.1, 1050 Wien, Austria Tel: +43-1-545 0 604 Mobil: +43-699-123 78 4 78 Mail: leithner@itronic.at | itronic.at
participants (1)
-
Harald Leithner