Shared namespace is empty after migration to new Dovecot installation
Hi all,
I've used most of this weekend finalizing my migration from an old server running Dovecot 2.2.22 to a brand new installation running 2.3.8.
In general, the migration was painless, everything just clicked, but checking up on the finer details post migration i've found out that user shared folders does not seem to work anymore, and I simply can't get it to work.
The setups are more or less identical, biggest change is probably the addition of a Solr search index, and i've done very little changes in the configuration files.
The acl_shared_dict file is being created and updated when I share a folder
In the user thats sharing the folder, the dovecot-acl and dovecot-acl-list files are created and look the same.
But, the user that should be reading the shared folder can not see it, the Shared namespace is simply empty, which it is not on the old installation, and namespace setup is identical across the two servers. (Except for the CaSiNg of the location of the index and indexpvt)
Logging in and doing an IMAP command : A1 LIST "Shared/" "*" yields this on the old server. (I've replaced the sharing users e-mail to user@sharer.dk and the reading users to user@reader.dk)
A1 LIST "Shared/" "*"
- LIST (\HasNoChildren) "/" Shared/user@sharer.dk A1 OK List completed (0.000 + 0.000 secs).
and this on the new
A1 LIST "Shared/" "*" A1 OK List completed (0.006 + 0.000 + 0.005 secs).
Log output from the new server below (i've only included the events happening during the LIST account)
-- New, non-working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/maildir/shared/%u:INDEXPVT:~/maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= fts: Indexes disabled for namespace 'Shared/%u/' acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
acl vfile: file /data/mail/reader.dk/user/maildir/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Junk/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Trash/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Sent/dovecot-acl not found auth-master: userdb lookup(user@sharer.dk): Started userdb lookup auth-master: conn unix:/var/run/dovecot/auth-userdb: Connecting auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=1636,uid=0): Client connected (fd=16) auth-master: userdb lookup(user@sharer.dk): auth USER input: user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user auth-master: userdb lookup(user@sharer.dk): Finished userdb lookup (username=user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user) Namespace Shared/: Using permissions from : mode=0700 gid=default
-- New, non-working log end --
and here from the old, working installation
-- Old, working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/Maildir/shared/%u:INDEXPVT=~/Maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
auth input: user@sharer.dk uid=118 gid=126 home=/data/mail/sharer.dk/user namespace/default/inbox=yes maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@sharer.dk acl: owner = 1 acl vfile: Global ACLs disabled maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled acl vfile: reading file /data/mail/sharer.dk/user/maildir/dovecot-acl acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts
-- Old, working log end --
The two logs are quite different, the new one seems to do user lookups via the auth socket, which the old one does not, and then just stops there.
I'm not going to try and speculate more, I hope that someone here can see something from the logs, as I simply do not know how to fix this problem.
-- Peter Reinhold
On 8.12.2019 13.13, Peter Reinhold via dovecot wrote:
Hi all,
I've used most of this weekend finalizing my migration from an old server running Dovecot 2.2.22 to a brand new installation running 2.3.8.
In general, the migration was painless, everything just clicked, but checking up on the finer details post migration i've found out that user shared folders does not seem to work anymore, and I simply can't get it to work.
The setups are more or less identical, biggest change is probably the addition of a Solr search index, and i've done very little changes in the configuration files.
The acl_shared_dict file is being created and updated when I share a folder
In the user thats sharing the folder, the dovecot-acl and dovecot-acl-list files are created and look the same.
But, the user that should be reading the shared folder can not see it, the Shared namespace is simply empty, which it is not on the old installation, and namespace setup is identical across the two servers. (Except for the CaSiNg of the location of the index and indexpvt)
Logging in and doing an IMAP command : A1 LIST "Shared/" "*" yields this on the old server. (I've replaced the sharing users e-mail to user@sharer.dk and the reading users to user@reader.dk)
A1 LIST "Shared/" "*" * LIST (\HasNoChildren) "/" Shared/user@sharer.dk A1 OK List completed (0.000 + 0.000 secs).
and this on the new
A1 LIST "Shared/" "*" A1 OK List completed (0.006 + 0.000 + 0.005 secs).
Log output from the new server below (i've only included the events happening during the LIST account)
-- New, non-working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/maildir/shared/%u:INDEXPVT:~/maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= fts: Indexes disabled for namespace 'Shared/%u/' acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
acl vfile: file /data/mail/reader.dk/user/maildir/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Junk/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Trash/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Sent/dovecot-acl not found auth-master: userdb lookup(user@sharer.dk): Started userdb lookup auth-master: conn unix:/var/run/dovecot/auth-userdb: Connecting auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=1636,uid=0): Client connected (fd=16) auth-master: userdb lookup(user@sharer.dk): auth USER input: user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user auth-master: userdb lookup(user@sharer.dk): Finished userdb lookup (username=user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user) Namespace Shared/: Using permissions from : mode=0700 gid=default
-- New, non-working log end --
and here from the old, working installation
-- Old, working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/Maildir/shared/%u:INDEXPVT=~/Maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
auth input: user@sharer.dk uid=118 gid=126 home=/data/mail/sharer.dk/user namespace/default/inbox=yes maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@sharer.dk acl: owner = 1 acl vfile: Global ACLs disabled maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled acl vfile: reading file /data/mail/sharer.dk/user/maildir/dovecot-acl acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts
-- Old, working log end --
The two logs are quite different, the new one seems to do user lookups via the auth socket, which the old one does not, and then just stops there.
I'm not going to try and speculate more, I hope that someone here can see something from the logs, as I simply do not know how to fix this problem.
-- Peter Reinhold
Can you provide doveconf -n?
On 2019-12-09 08:01, Aki Tuomi via dovecot wrote:
That I can, here (anonymized where relevant)
-- CONF START -- # 2.3.9 (e7f79df99): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.9 (db4e9a2f) # OS: Linux 4.15.0-54-generic x86_64 Ubuntu 18.04.3 LTS ext4 # Hostname: xxx auth_mechanisms = plain login first_valid_gid = ? first_valid_uid = ? hostname = ???.dk last_valid_gid = ? last_valid_uid = ? lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes listen = localhost mail_location = maildir:/data/mail/%d/%n/maildir mail_plugins = " acl fts fts_solr" 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 imapsieve vnd.dovecot.imapsieve namespace { list = children location = maildir:/data/mail/%%d/%%n/maildir:INDEX=~/maildir/shared/%%u:INDEXPVT:~/maildir/shared/%%u prefix = Shared/%%u/ separator = / subscriptions = no type = shared } namespace inbox { inbox = yes list = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { auto = subscribe autoexpunge = 2 weeks special_use = \Junk } mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { auto = subscribe autoexpunge = 1 weeks special_use = \Trash } prefix = separator = / type = private } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { acl = vfile acl_shared_dict = file:/var/lib/dovecot/shared-mailboxes.db fts = solr fts_autoindex = yes fts_autoindex_exclude = \Junk fts_autoindex_exclude2 = \Trash fts_autoindex_exclude3 = \CA Spam fts_autoindex_exclude4 = \P Spam fts_solr = url=http://172.18.0.12:8983/solr/dovecot/ imapsieve_mailbox1_before = file:/var/lib/dovecot/sieve-serverscripts/move_to_junk_folder.sieve imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_name = Junk imapsieve_mailbox2_before = file:/var/lib/dovecot/sieve-serverscripts/move_from_junk_folder.sieve imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_from = Junk imapsieve_mailbox2_name = * sieve = file:~/sieve;active=~/.dovecot.sieve sieve_default = /var/lib/dovecot/sieve/global/default.sieve sieve_default_name = Standard SPAM regel sieve_global_dir = /var/lib/dovecot/sieve/global/ sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment sieve_pipe_bin_dir = /var/lib/dovecot/sieve-pipe sieve_plugins = sieve_imapsieve sieve_extprograms } pop3_uidl_format = %g postmaster_address = ? protocols = " imap sieve pop3 sieve" service auth { unix_listener /var/spool/postfix/private/auth { group = postfix user = postfix } unix_listener auth-userdb { group = dovecot user = dovecot } } ssl_cert = <? ssl_key = # hidden, use -P to show it userdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } protocol lda { mail_plugins = " acl fts fts_solr sieve" } protocol imap { mail_plugins = " acl fts fts_solr imap_acl imap_sieve" } -- CONF END --
On 8.12.2019 13.13, Peter Reinhold via dovecot wrote:
Hi all,
I've used most of this weekend finalizing my migration from an old server running Dovecot 2.2.22 to a brand new installation running 2.3.8.
In general, the migration was painless, everything just clicked, but checking up on the finer details post migration i've found out that user shared folders does not seem to work anymore, and I simply can't get it to work.
The setups are more or less identical, biggest change is probably the addition of a Solr search index, and i've done very little changes in the configuration files.
The acl_shared_dict file is being created and updated when I share a folder
In the user thats sharing the folder, the dovecot-acl and dovecot-acl-list files are created and look the same.
But, the user that should be reading the shared folder can not see it, the Shared namespace is simply empty, which it is not on the old installation, and namespace setup is identical across the two servers. (Except for the CaSiNg of the location of the index and indexpvt)
Logging in and doing an IMAP command : A1 LIST "Shared/" "*" yields this on the old server. (I've replaced the sharing users e-mail to user@sharer.dk and the reading users to user@reader.dk)
A1 LIST "Shared/" "*" * LIST (\HasNoChildren) "/" Shared/user@sharer.dk A1 OK List completed (0.000 + 0.000 secs).
and this on the new
A1 LIST "Shared/" "*" A1 OK List completed (0.006 + 0.000 + 0.005 secs).
Log output from the new server below (i've only included the events happening during the LIST account)
-- New, non-working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/maildir/shared/%u:INDEXPVT:~/maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= fts: Indexes disabled for namespace 'Shared/%u/' acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
acl vfile: file /data/mail/reader.dk/user/maildir/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Junk/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Trash/dovecot-acl not found acl vfile: file /data/mail/reader.dk/user/maildir/.Sent/dovecot-acl not found auth-master: userdb lookup(user@sharer.dk): Started userdb lookup auth-master: conn unix:/var/run/dovecot/auth-userdb: Connecting auth-master: conn unix:/var/run/dovecot/auth-userdb (pid=1636,uid=0): Client connected (fd=16) auth-master: userdb lookup(user@sharer.dk): auth USER input: user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user auth-master: userdb lookup(user@sharer.dk): Finished userdb lookup (username=user@sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user) Namespace Shared/: Using permissions from : mode=0700 gid=default
-- New, non-working log end --
and here from the old, working installation
-- Old, working log start --
Namespace : type=shared, prefix=Shared/%u/, sep=/, inbox=no, hidden=no, list=children, subscriptions=no location=maildir:/data/mail/%d/%n/maildir:INDEX=~/Maildir/shared/%u:INDEXPVT=~/Maildir/shared/%u shared: root=/var/run/dovecot, index=, indexpvt=, control=, inbox=, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled
auth input: user@sharer.dk uid=118 gid=126 home=/data/mail/sharer.dk/user namespace/default/inbox=yes maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/sharer.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@sharer.dk acl: owner = 1 acl vfile: Global ACLs disabled maildir++: root=/data/mail/sharer.dk/user/maildir, index=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, indexpvt=/data/mail/reader.dk/user/Maildir/shared/user@sharer.dk, control=, inbox=/data/mail/sharer.dk/user/maildir, alt= acl: initializing backend with data: vfile acl: acl username = user@reader.dk acl: owner = 0 acl vfile: Global ACLs disabled acl vfile: reading file /data/mail/sharer.dk/user/maildir/dovecot-acl acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Junk acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Trash acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Sent acl: Mailbox not in dovecot-acl-list: Shared/user@sharer.dk/Drafts
-- Old, working log end --
The two logs are quite different, the new one seems to do user lookups via the auth socket, which the old one does not, and then just stops there.
I'm not going to try and speculate more, I hope that someone here can see something from the logs, as I simply do not know how to fix this problem.
-- Peter Reinhold
Can you provide doveconf -n?
-- Peter Reinhold
participants (2)
-
Aki Tuomi
-
Peter Reinhold