Shared namespace is empty after migration to new Dovecot installation

Peter Reinhold peter_dovecot at reinhold.dk
Mon Dec 9 10:47:54 EET 2019


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 at sharer.dk and the reading users to user at reader.dk)
>> 
>>   A1 LIST "Shared/" "*"
>>   * LIST (\HasNoChildren) "/" Shared/user at 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 at 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 at 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 at sharer.dk): auth USER input:
>> user at sharer.dk uid=120 gid=129 home=/data/mail/sharer.dk/user
>> auth-master: userdb lookup(user at sharer.dk): Finished userdb lookup
>> (username=user at 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 at reader.dk
>> acl: owner = 0
>> acl vfile: Global ACLs disabled
>> 
>> auth input: user at 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 at sharer.dk,
>> indexpvt=/data/mail/sharer.dk/user/Maildir/shared/user at sharer.dk,
>> control=, inbox=/data/mail/sharer.dk/user/maildir, alt=
>> acl: initializing backend with data: vfile
>> acl: acl username = user at 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 at sharer.dk,
>> indexpvt=/data/mail/reader.dk/user/Maildir/shared/user at sharer.dk,
>> control=, inbox=/data/mail/sharer.dk/user/maildir, alt=
>> acl: initializing backend with data: vfile
>> acl: acl username = user at 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 at sharer.dk/Junk
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Trash
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Sent
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Drafts
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Junk
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Trash
>> acl: Mailbox not in dovecot-acl-list: Shared/user at sharer.dk/Sent
>> acl: Mailbox not in dovecot-acl-list: Shared/user at 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


More information about the dovecot mailing list