[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dovecot
Subject:    Re: doveadm dsync-server doesn't use user parameter?
From:       Harald Leithner <leithner () itronic ! at>
Date:       2018-11-23 12:48:49
Message-ID: d8da0e35-8c42-d6b9-3030-cf3402b37d42 () itronic ! at
[Download RAW message or body]

[Attachment #2 (multipart/mixed)]


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:FUL \
> LDIRNAME=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.in \
> > dex: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 = </etc/dovecot/private/example.com.pem
> > ssl_cipher_list =
> > ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256: \
> > DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RS \
> > A-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE- \
> > RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:A \
> > ES256-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-RSA-CAMELLIA256-SHA:CAMELLIA128-SHA:CAMELLIA256-SHA:ECDHE-RSA-DES-CBC3-SHA:DES-CBC3-SHA
> >  ssl_dh = # hidden, use -P to show it
> > ssl_key = # hidden, use -P to show it
> > ssl_options = no_compression
> > ssl_prefer_server_ciphers = yes
> > submission_host = 192.168.14.198
> > syslog_facility = local0
> > userdb {
> > driver = prefetch
> > }
> > userdb {
> > args = /etc/dovecot/dovecot-sql.conf.ext
> > driver = sql
> > }
> > valid_chroot_dirs = /storage1
> > verbose_proctitle = yes
> > protocol imap {
> > mail_max_userip_connections = 30
> > mail_plugins = imap_zlib lazy_expunge quota imap_quota acl imap_acl
> > last_login mail_log notify
> > }
> > protocol lda {
> > mail_plugins = lazy_expunge acl sieve quota mail_log notify
> > }
> > protocol lmtp {
> > mail_plugins = lazy_expunge acl sieve quota mail_log notify
> > }
> > protocol sieve {
> > mail_max_userip_connections = 10
> > managesieve_max_compile_errors = 5
> > managesieve_max_line_length = 65536
> > }
> > protocol pop3 {
> > mail_max_userip_connections = 10
> > mail_plugins = lazy_expunge acl last_login mail_log notify
> > }
> > ---
> > 
> 

-- 
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


["signature.asc" (application/pgp-signature)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic