On 05/13/2012 11:40 PM, Alexander 'Leo' Bergolth wrote:
Since upgrading to 2.1.6, setting namespaces via environment variables using a imap-postlogin-script *sometimes* doesn't work.
Sometimes, the prefix of a namespace isn't set correctly, but is set to an empty string, which leads to the following error: namespace configuration error: Duplicate namespace prefix: ""
However, the environment is set correctly, the error seems to occur when parsing the environment.
See the attached log: The postlogin-script sets the environment variables attached as dovecot-postlogin-environment.txt. (dumped from postlogin script via env)
However, the variable "NAMESPACE/S-GSD/PREFIX=Shared/GSD/" gets parsed as: plugin/namespace/s-gsd/prefix=Shared/GSD/
See the error message: Unknown userdb setting: plugin/namespace/s-gsd/prefix=Shared/GSD/
The prefix "plugin/" is added in mail-storage-service.c:set_line():
-------------------- 8< -------------------- if (!settings_parse_is_valid_key(set_parser, key)) { /* assume it's a plugin setting */ key = t_strconcat("plugin/", key, NULL); -------------------- 8< --------------------
Looks like dovecot doesn't think that s-gsd isn't a valid namespace... Maybe the order of parsing the userdb settings is not well defined?
I think it should parse the list of allowed namespaces first (namespace=s-gsd s-kit s-rufhilfe s-sef s-homepage) and the namespace specific settings after that.
However, the debug output shows a different order:
-------------------- 8< -------------------- May 13 23:00:22 samba dovecot: imap: Debug: Unknown userdb setting: plugin/namespace/s-gsd/prefix=Shared/GSD/ May 13 23:00:22 samba dovecot: imap: Debug: Unknown userdb setting: plugin/namespace/s-rufhilfe/location=maildir:/var/spool/mail/Shared/Rufhilfe:INDEX=~/Maildir/index/Shared/Rufhilfe May 13 23:00:22 samba dovecot: imap: Debug: Added userdb setting: namespace=s-gsd s-kit s-rufhilfe s-sef s-homepage May 13 23:00:22 samba dovecot: imap: Debug: Added userdb setting: namespace/s-rufhilfe/separator=/ -------------------- 8< --------------------
The first two namespace settings are rejected because the allowed namespaces are not configured yet. The third line configures the namespaces and subsequent namespace-settings are working fine.
Does that sound reasonable?
Any hints on how to change the order of userdb settings?
Thanks, --leo
e-mail ::: Leo.Bergolth (at) wu.ac.at
fax ::: +43-1-31336-906050
location ::: IT-Services | Vienna University of Economics | Austria