[Dovecot] Hierarchy separator usage -- and a bijou bug? (was: Prayer, Maildir and Folders whose names begin with ".")

Timo Sirainen tss at iki.fi
Fri Mar 9 21:40:16 EET 2007


On Fri, 2007-03-09 at 19:13 +0000, Mike Brudenell wrote:
> Q.  Does anyone know how much of a performance hit ACLs add?  For  
> example the cranked-up debug logging I had turned on started moaning  
> that there wasn't a dovecot-acl file in each folder's directory,  
> implying (naturally enough) Dovecot is having to stat() each in turn  
> for this file when compiling the list of folders to return.

I don't think stat()ing the same files is all that slow, at least as
long as you're not using NFS. They should stay in kernel's buffer cache
so they won't do extra disk I/O.

> So it appears that using hierarchy separator:
> 
> 1.  Enables the chosen character to be used to separate name components
>      on the way TO Dovecot *IN ADDITION TO* the still-operating  
> standard "."
> 
> and
> 
> 2.  Translates mailbox names coming OUT from Dovecot (in most cases: see
>      Problem 2 below) to use the chosen character instead of "."
> 
> and
> 
> 3.  Doesn't magically :-) let you use "." in folder names as you've  
> changed
>      the hierarchy separator to "/"

I don't see any other way of doing this. Except possibly to give
"invalid mailbox name" errors, or maybe even change the dot silently to
some other character. All of these options kind of suck.

One possibility would be to use some kind of escaping like change dots
in the mailbox names to \d or something. That wouldn't exactly be
maildir++ compatible, but probably wouldn't be against the spec either.
So .. hmm. Maybe for Dovecot v1.2 :)

> I guess that changing MAILDIR_FS_SEP and MAILDIR_FS_SEP_S would be  
> the way forward to allow "." to be present in folder names?  But with  
> the downside that the folder structure is not truly Maildir++ compliant?

I think it's still Maildir++ compliant. Someone pointed out to me some
time ago that Maildir++ says it doesn't support subfolders, and that
*for example* '.' could be used to fake that. For Dovecot v1.2 I'll make
the filesystem separator configurable.

> However what I use GETQUOTAROOT it instead returns the mailbox name  
> with a "." separating the components instead of "/"
> 
>      a06 GETQUOTAROOT "ML/SupportCalls/00146832"
>      * QUOTAROOT "ML.SupportCalls.00146832" "pmb1"

This is a bug. Fixed:
http://dovecot.org/list/dovecot-cvs/2007-March/008015.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20070309/748897c2/attachment.pgp 


More information about the dovecot mailing list