Re: [Dovecot] OT: IMAP folder aliases

2009-09-25 Thread Stefan Förster
* Patrick Ben Koetter p...@state-of-mind.de:
 Has anyone seen an approach or a solution that solves the problem from a users
 point of view? A server side alias list that maps to a server standard?

Tried that, didn't work out that great (users got confused by 12
dozillion sent folders).

As for know, I auto-subscribe new users to a public namespace which
contains information on how to configure their email clients exactly
the same way that the different webmail interfaces I offer are.

As a second line of defense, a cron script checks once a day if
there is a typical duplication of folders (sent, sent-mail,
Gesendet) and this script then proceeds to annoy the hell out of
said users by sending them an email once a day, until the user either
acknowledges that he doesn't care (database entry), fixes the problem
or opts in for an automatic fix (moving messages to the right folders.
Make sure to include a huge disclaimer, this kills indices).


Ciao
Stefan
-- 
Stefan Förster http://www.incertum.net/ Public Key: 0xBBE2A9E9
FdI #28: ... werden wir den Schutz Minderjähriger in den Vordergrund -
stellen.  Im Grunde weiß ich genausowenig über die ganze Sache wie meine
Wähler, aber verbieten bringt mehr Stimmen. (Peter Berlich)


Re: [Dovecot] OT: IMAP folder aliases

2009-09-25 Thread Stefan Förster
* Patrick Ben Koetter p...@state-of-mind.de:
 * Timo Sirainen dovecot@dovecot.org:
 No. And one of the first commands they typically do is LIST. So
 there are no good ways to solve this.
 
 I suspected that.
 
 Would it be possible to identify a client by the folders it tries to subscribe
 to?

You could, of course, have a list of folders to hide in a LIST
command. Most clients would then try to create those folders (a
request which is ignored) and the IMAP server had to redirect all
further select requests. Something along the lines of:

/etc/dovecot/dovecot-ignore-aliases-in-list-or-create-command-and-redirect-select:
sent-mail   gesendet/i,gesendete nachrichten/i,sent\(-mail\)?/i
trash   trash/i,junk/i,geloeschte\ objekte/i

 User interaction or server side configuration is fine if it takes place in a
 company, but its not feasible in an ISP environment.

A corporate environment doesn't need that kind of functionality. Just
preconfigure all installed software to suit your company's needs.


Ciao
Stefan
-- 
Stefan Förster http://www.incertum.net/ Public Key: 0xBBE2A9E9
Er nahm sich das Leben - so wie er es brauchte.


Re: [Dovecot] Dovecot Versions and Debian

2009-08-12 Thread Stefan Förster
* Seth Mattinen se...@rollernet.us:
 Mario Antonio wrote:
 How do you deal with new important patches?
 
 Do you patch the source and then rebuild the packages? Is it safe or
 better just wait until SID release the new source?
 
 I just wait for it to show up in sid. You could also apply patches
 yourself and rebuild, either way works.

Or just grab the excellent source package provided by Stephan Bosch at
http://xi.rename-it.nl/debian/pool/dovecot-1.2/ - e.g:

aptitude -y build-dep dovecot (you only need to do that once)
wget -t0 -c 
http://xi.rename-it.nl/debian/pool/dovecot-1.2/dovecot_1.2.3.orig.tar.gz \
http://xi.rename-it.nl/debian/pool/dovecot-1.2/dovecot_1.2.3-0~auto+7.dsc \
http://xi.rename-it.nl/debian/pool/dovecot-1.2/dovecot_1.2.3-0~auto+7.diff.gz
dpkg-source -x dovecot_1.2.3-0~auto+7.dsc
cd dovecot-1.2.3
dpkg-buildpackage -rfakeroot

Guess this is the right time for a big Thank You, Stephan.


Cheers
Stefan


Re: [Dovecot] Dovecot Versions and Debian

2009-08-12 Thread Stefan Förster
* Mario Antonio supp...@webjogger.net:
 In previous emails, Stephan stated:
 As the WIKI states: do *NOT* use these packages for systems that need  
 to be *STABLE*! This is rebuilt every hour from repository commits from  
 Timo and myself and if/when one of us commits a mistake, your setup will  
 break accordingly upon upgrade. This is for testing purposes only.

 My guess he is just referring to the DEB packages ...

 So do you consider safe to use the source package ?

Of course this is safe. Just kidding.

If you want to compile these source packages, take _one_ version,
compile it and then test it thoroughly. If it passes all testing, then
put it into staging, test more, and only if it passes all test again,
move it to production environment.

And don't upgrade every time a new source package is available.

As always, you should know what you are doing if you install packages
provided by third parties, be it binaries or sources you compile
yourself. Example: The sources come with a 2: epoch. If one day, the
next stable version of Debian comes with 1:1.2.8 and you previously
installed your freshly built 2:1.2.1, then the upgrade process will
not replace your old, outdated, built-from-source packages.


Cheers
Stefan


[Dovecot] Wiki entry for expire plugin, PostgreSQL trigger needs update

2009-08-09 Thread Stefan Förster
The wiki entry at http://wiki.dovecot.org/Plugins/Expire needs an
update for Dovecot 1.2 and PostgreSQL:

-- v1.2+:
CREATE OR REPLACE FUNCTION merge_expires() RETURNS TRIGGER AS $$
BEGIN
  IF exists(SELECT 1 FROM expires WHERE username = NEW.username AND mailbox = 
NEW.mailbox) THEN
UPDATE expires SET expire_stamp = NEW.expire_stamp
  WHERE username = NEW.username AND mailbox = NEW.mailbox;
RETURN NULL;
  ELSE
RETURN NEW;
  END IF;
END;
$$ LANGUAGE plpgsql;

CREATE TRIGGER mergeexpires BEFORE INSERT ON expires
   FOR EACH ROW EXECUTE PROCEDURE merge_expires();

At least that's what I think after looking at the code:

iter = dict_iterate_init(dict, DICT_EXPIRE_PREFIX,
DICT_ITERATE_FLAG_RECURSE |
DICT_ITERATE_FLAG_SORT_BY_VALUE);

/* We'll get the oldest values (timestamps) first */
while (dict_iterate(iter, key, value)  0) {
   /* key = DICT_EXPIRE_PREFIXuser/mailbox */
   userp = key + strlen(DICT_EXPIRE_PREFIX);
[...]
T_BEGIN {
 username = t_strdup_until(userp, p);

If this code does somehow iterate usernames which are not present in
the dict, I apologize.


Cheers
Stefan


[Dovecot] autocreate plugin fails to subscribe mailbox in public namespace

2009-08-09 Thread Stefan Förster
Hi,

I'm one step away from replacing a 7 years old qmail/uw-imapd setup
with some state of the art soft- and hardware. We got migration
scripts and test almost done - just one thing that keeps failing:

The autocreate plugin is supposed to subscribe new users to different
mailboxes, one of them being in namespace Public. - this
subscription to Public.announcements fails.

Below is a dovecot -n - and no, there are no error messages in the
logs.


# 1.2.2: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.30-bpo.1-amd64 x86_64 Debian 5.0.2 
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
listen(default): *:143
listen(imap): *:143
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(managesieve): 
ssl_cert_file: /etc/ssl/owncerts/snakeoil.crt
ssl_key_file: /etc/ssl/private/snakeoil.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
verbose_proctitle: yes
mail_privileged_group: vmail
mail_location: maildir:~/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_process_size: 384
mail_plugins(default): quota imap_quota fts fts_squat acl autocreate expire 
trash
mail_plugins(imap): quota imap_quota fts fts_squat acl autocreate expire trash
mail_plugins(managesieve): 
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
namespace:
  type: private
  separator: .
  inbox: yes
  list: yes
  subscriptions: yes
namespace:
  type: public
  separator: .
  prefix: Public.
  location: maildir:/export/vmailboxes/public:INDEX=~/Maildir/public
  list: yes
lda:
  postmaster_address: postmas...@test.cite.lan
  hostname: testvm06.test.cite.lan
  mail_plugins: quota sieve expire trash
  auth_socket_path: /var/run/dovecot/auth-master
auth default:
  mechanisms: plain login cram-md5
  passdb:
driver: ldap
args: /etc/dovecot/dovecot-ldap.conf
  userdb:
driver: ldap
args: /etc/dovecot/dovecot-ldap.conf
  socket:
type: listen
client:
  path: /var/spool/postfix/private/auth
  mode: 432
  user: postfix
  group: sasl
master:
  path: /var/run/dovecot/auth-master
  mode: 384
  user: vmail
  group: vmail
plugin:
  quota: maildir:User quota
  quota_warning:  storage=90%% /usr/local/bin/quota-warning.sh 90
  quota_warning2: storage=95%% /usr/local/bin/quota-warning.sh 95
  sieve: ~/.dovecot.sieve
  sieve_storage: ~/sieve
  sieve_extensions: +imapflags
  fts: squat
  fts_squat: partial=4 full=10
  acl: vfile
  autocreate: Trash
  autocreate2: Drafts
  autocreate3: Sent
  autocreate4: learn-spam
  autosubscribe: Trash
  autosubscribe2: Drafts
  autosubscribe3: Sent
  autosubscribe4: learn-spam
  autosubscribe5: Public.announcements
  autosubscribe6: INBOX
  expire: Trash 60 Trash/* 60
  expire_dict: proxy::expire
  trash: /etc/dovecot/dovecot-trash.conf
dict:
  expire: pgsql:/etc/dovecot/dovecot-dict-expire.conf

Any hints are really appreciated.


Cheers
Stefan

BTW: If anybody is interested, I could provide load and usage
statistics of our old and new software once step 1 of our migration
(new hardware is step 2) is done. Only ~1000 users, but still...


[Dovecot] ACL plugin, public namespace, erroneous \HasNoChildren

2009-08-05 Thread Stefan Förster
Hi,

dovecot 1.2.2 with a second namespace called Public, mapped to
/export/vmailboxes/public, LIST returning \HasNoChildren:

r...@testvm06:~# cat /export/vmailboxes/public/dovecot-acl
user=cite lrwstiekxa
authenticated lrs
anyone lrs
r...@testvm06:~# ls -l /export/vmailboxes/public/.announcements/dovecot-acl 
lrwxrwxrwx 1 root root 14 Aug  6 03:50 
/export/vmailboxes/public/.announcements/dovecot-acl - ../dovecot-acl

With ACL plugin enabled (notice the \HasNoChildren):

r...@testvm06:~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS 
AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
. login cite secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT 
THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE 
UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES 
WITHIN CONTEXT=SEARCH ACL RIGHTS=texk QUOTA] Logged in
. list  Public
* LIST (\Noselect \HasNoChildren) . Public
. OK List completed.
. select Public.announcements
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags 
permitted.
* 0 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1249522417] UIDs valid
* OK [UIDNEXT 1] Predicted next UID
* OK [HIGHESTMODSEQ 1]
. OK [READ-WRITE] Select completed.

I included the select to show that filesystem permissions are OK.

Without ACL plugin (notice the \HasChildren here):

r...@testvm06:~# telnet localhost 143
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE STARTTLS 
AUTH=PLAIN AUTH=LOGIN AUTH=CRAM-MD5] Dovecot ready.
. login cite secret
. OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE SORT 
THREAD=REFERENCES THREAD=REFS MULTIAPPEND UNSELECT IDLE CHILDREN NAMESPACE 
UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES 
WITHIN CONTEXT=SEARCH QUOTA] Logged in
. list  Public
* LIST (\Noselect \HasChildren) . Public
. OK List completed.

Is this intended behaviour, am I just too stupid for ACLs or something
completely different? I wonder how clients are supposed to get a
listing of a public namespace...

dovecot -n:
# 1.2.2: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-2-amd64 x86_64 Debian 5.0.2 
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
listen(default): *:143
listen(imap): *:143
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(managesieve): 
ssl_cert_file: /etc/ssl/owncerts/snakeoil.crt
ssl_key_file: /etc/ssl/private/snakeoil.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
verbose_proctitle: yes
mail_privileged_group: vmail
mail_location: maildir:~/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_process_size: 1024
mail_plugins(default): quota imap_quota fts fts_squat acl
mail_plugins(imap): quota imap_quota fts fts_squat acl
mail_plugins(managesieve): 
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
namespace:
  type: private
  separator: .
  inbox: yes
  list: yes
  subscriptions: yes
namespace:
  type: public
  separator: .
  prefix: Public.
  location: maildir:/export/vmailboxes/public
  list: yes
lda:
  postmaster_address: postmas...@test.cite.lan
  hostname: testvm06.test.cite.lan
  mail_plugins: quota sieve
  auth_socket_path: /var/run/dovecot/auth-master
auth default:
  mechanisms: plain login cram-md5
  passdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
  userdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
  socket:
type: listen
client:
  path: /var/spool/postfix/private/auth
  mode: 432
  user: postfix
  group: sasl
master:
  path: /var/run/dovecot/auth-master
  mode: 384
  user: vmail
  group: vmail
plugin:
  quota: maildir:User quota
  quota_warning: storage=80%% /usr/local/bin/quota-warning.sh 80
  quota_warning: storage=95%% /usr/local/bin/quota-warning.sh 95
  sieve: ~/.dovecot.sieve
  sieve_storage: ~/sieve
  sieve_extensions: +imapflags
  fts: squat
  fts_squat: partial=4 full=10
  acl: vfile


Cheers
Stefan


[Dovecot] Performance problem with STATUS after upgrade (1.0.15 - 1.2.2)

2009-08-03 Thread Stefan Förster
Hello list,

after upgrading dovecot from 1.0.15 to 1.2.2 (and carefully reading
through the upgrading notes in the wiki), I got sieve, quota and fts
up and running, but I'm now suffering some kind of performance problem
with the STATUS command.

Symptoms: Reading mail on the IMAP server itself with mutt, no TLS/SSL,
connected through loopback interface. Whenever I idle a bit and then hit any
key thereafter, for example to change into another mailbox, mutt will send a
number of STATUS commands:

#
T 127.0.0.1:53604 - 127.0.0.1:143 [AP]
  DONE..a0070 STATUS postfix-buch (UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0071 
STATUS postfix-users (UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0072 STATUS 
Trash (UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0073 STATUS Sent (UIDNEXT 
UIDVALID
  ITY UNSEEN RECENT)..a0074 STATUS mailman-users (UIDNEXT UIDVALIDITY UNSEEN 
RECENT)..a0075 STATUS mailman-developers (UIDNEXT UIDVALIDITY UNSEEN 
RECENT)..a0076 STATUS de-postfix-users (UIDNEXT UIDVALIDITY UNSEEN 
RECENT)..a0077 
  STATUS amavis-users (UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0078 STATUS 
spam (UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0079 STATUS localreports 
(UIDNEXT UIDVALIDITY UNSEEN RECENT)..a0080 STATUS Drafts (UIDNEXT UIDVALIDITY 
UNSEEN R
  ECENT)..a0081 STATUS exim-users (UIDNEXT UIDVALIDITY UNSEEN RECENT)..   

  
#

(The whole conversation is available as: 
http://www.incertum.net/~cite/dovecot-snoop.log)

Those commands take almost one(!) second to complete. I've used strace to
capture what happens and made the results available at
http://www.incertum.net/~cite/imap.log.

With 1.0.15, I never noticed this kind of delay, and reading mail
feels really sluggish at the moment. Is there any way to improve
performance?

Configuration data:

Filesystem mounted to /export/vmailboxes is an ext3:

# tune2fs -l /dev/rootvg/mailhome_lv  | grep ^Filesystem features
Filesystem features:  has_journal resize_inode dir_index filetype 
needs_recovery sparse_super large_file

(needs_recovery is set because the filesystem is mounted, I umounted
it, did fsck -Dfy and it didn't display that feature when unmounted).

dovecot -n (also available as:
http://www.incertum.net/~cite/dovecot-n.log):
# 1.2.2: /etc/dovecot/dovecot.conf
# OS: Linux 2.6.26-2-amd64 x86_64 Debian 5.0.2 
log_timestamp: %Y-%m-%d %H:%M:%S 
protocols: imap imaps managesieve
listen(default): *:143
listen(imap): *:143
listen(managesieve): *
ssl_listen(default): *:993
ssl_listen(imap): *:993
ssl_listen(managesieve): 
ssl_cert_file: /etc/ssl/owncerts/mail_incertum_net.crt
ssl_key_file: /etc/ssl/private/mail_incertum_net.key
login_dir: /var/run/dovecot/login
login_executable(default): /usr/lib/dovecot/imap-login
login_executable(imap): /usr/lib/dovecot/imap-login
login_executable(managesieve): /usr/lib/dovecot/managesieve-login
verbose_proctitle: yes
mail_privileged_group: vmail
mail_location: maildir:~/Maildir
mbox_write_locks: fcntl dotlock
mail_executable(default): /usr/lib/dovecot/imap
mail_executable(imap): /usr/lib/dovecot/imap
mail_executable(managesieve): /usr/lib/dovecot/managesieve
mail_process_size: 1024
mail_plugins(default): quota imap_quota fts fts_squat
mail_plugins(imap): quota imap_quota fts fts_squat
mail_plugins(managesieve): 
mail_plugin_dir(default): /usr/lib/dovecot/modules/imap
mail_plugin_dir(imap): /usr/lib/dovecot/modules/imap
mail_plugin_dir(managesieve): /usr/lib/dovecot/modules/managesieve
lda:
  postmaster_address: postmas...@incertum.net
  hostname: mail.incertum.net
  mail_plugins: quota sieve
  auth_socket_path: /var/run/dovecot/auth-master
auth default:
  mechanisms: plain login cram-md5
  passdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
  userdb:
driver: sql
args: /etc/dovecot/dovecot-sql.conf
  socket:
type: listen
client:
  path: /var/spool/postfix/private/auth
  mode: 432
  user: postfix
  group: sasl
master:
  path: /var/run/dovecot/auth-master
  mode: 384
  user: vmail
  group: vmail
plugin:
  quota: maildir:User quota
  quota_warning: storage=80%% /usr/local/bin/quota-warning.sh 80
  quota_warning: storage=95%% /usr/local/bin/quota-warning.sh 95
  sieve: ~/.dovecot.sieve
  sieve_storage: ~/sieve
  sieve_extensions: +imapflags
  fts: squat
  fts_squat: partial=4 full=10

SQL-Configuration:

# grep -v '^ *\(#.*\)\?$' dovecot-sql.conf
driver = pgsql
connect = hostaddr=333.33.33.3 port=5432 dbname=secret
user=secret password=secret sslmode=require
default_pass_scheme = PLAIN
password_query = SELECT login AS user, password FROM virtual_user_maps
WHERE login IN ('%u', '%n')
user_query = SELECT vum.uid, vum.gid, ('*:storage=' ||
vum.quota_kbytes || 'k') AS quota_rule, ('/export/vmailboxes/' ||
SUBSTR(vum.login, 1, 1) || '/' || vum.login) AS home FROM
virtual_mailbox_domains AS vmd LEFT JOIN virtual_mailbox_maps AS vmm
ON (vmd.id = 

Re: [Dovecot] Performance problem with STATUS after upgrade (1.0.15 - 1.2.2)

2009-08-03 Thread Stefan Förster
Quick follwup to myself:

* Stefan Förster cite+dovecot-us...@incertum.net:
 (The whole conversation is available as: 
 http://www.incertum.net/~cite/dovecot-snoop.log)
[...]
 dovecot -n (also available as:  http://www.incertum.net/~cite/dovecot-n.log):

I've noticed some people trying to access this URLs with the enclosing
) still in place. Of course, the URLs are:

http://www.incertum.net/~cite/dovecot-snoop.log
http://www.incertum.net/~cite/dovecot-n.log

And in case that it wasn't clear: This...

http://www.incertum.net/~cite/imap.log

...is the strace output.

 Any help/insights are really appreciated.


Cheers
Stefan


Re: [Dovecot] Performance problem with STATUS after upgrade (1.0.15 - 1.2.2)

2009-08-03 Thread Stefan Förster
Another follow-up on my first posting:

* Stefan Förster cite+dovecot-us...@incertum.net:
 Those commands take almost one(!) second to complete. I've used strace to
 capture what happens and made the results available at
 http://www.incertum.net/~cite/imap.log.

Comaring this to a 1.0.15, the main difference seems to be that the
dovecot-uidlist file is rewritten every time I issue a STATUS
command. Here's what 1.0.15 does:

read(0, a0071 STATUS \postfix-users\ (UID..., 4072) = 66
setsockopt(1, SOL_TCP, TCP_CORK, [1], 4) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users, {st_mode=S_IFDIR|0700, 
st_size=4096, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/cur, 
{st_mode=S_IFDIR|0700, st_size=1650688, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/new, 
{st_mode=S_IFDIR|0700, st_size=36864, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/tmp, 
{st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users, {st_mode=S_IFDIR|0700, 
st_size=4096, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/dovecot-shared, 
0x7fff35082530) = -1 ENOENT (No such file or directory)
brk(0x8b)   = 0x8b
gettimeofday({1249300019, 466489}, NULL) = 0
open(/export/vmailboxes/c/cite/Maildir/.postfix-users/dovecot.index, O_RDWR) 
= 7
alarm(120)  = 0
fcntl(7, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)= 120
fstat(7, {st_mode=S_IFREG|0600, st_size=289344, ...}) = 0
mmap(NULL, 289344, PROT_READ|PROT_WRITE, MAP_SHARED, 7, 0) = 0x7fde2d02c000
open(/export/vmailboxes/c/cite/Maildir/.postfix-users/dovecot.index.log, 
O_RDWR) = 8
fstat(8, {st_mode=S_IFREG|0600, st_size=296440, ...}) = 0
pread(8, \1\0\30\0Y\315vJ\1\0\0\0\0\0\0\0\0\0\0\0Y\315vJ..., 24, 0) = 24
fcntl(7, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
access(/export/vmailboxes/c/cite/Maildir/.postfix-users/cur, W_OK) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/new, 
{st_mode=S_IFDIR|0700, st_size=36864, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/cur, 
{st_mode=S_IFDIR|0700, st_size=1650688, ...}) = 0
fstat(7, {st_mode=S_IFREG|0600, st_size=289344, ...}) = 0
stat(/export/vmailboxes/c/cite/Maildir/.postfix-users/dovecot.index, 
{st_mode=S_IFREG|0600, st_size=289344, ...}) = 0
alarm(120)  = 0
fcntl(7, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
alarm(0)= 120
fstat(8, {st_mode=S_IFREG|0600, st_size=296440, ...}) = 0
mmap(NULL, 296440, PROT_READ, MAP_SHARED, 8, 0) = 0x7fde2cfe3000
madvise(0x7fde2cfe3000, 296440, MADV_SEQUENTIAL) = 0
fcntl(7, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
gettimeofday({1249300019, 471527}, NULL) = 0
write(1, * STATUS \postfix-users\ (RECENT ..., 111) = 111
setsockopt(1, SOL_TCP, TCP_CORK, [0], 4) = 0
gettimeofday({1249300019, 471961}, NULL) = 0
epoll_wait(4,  unfinished ...

As you can see, dovecot-uidlist istn recreated.

Is this intended behaviour, some unfortunate side effect of mounting
the partition with relatime or something completely different,
perhaps something about my plugin (quota, sieve, fts)?


Ciao
Stefan
-- 
Stefan Förster http://www.incertum.net/ Public Key: 0xBBE2A9E9
UNIX *is* user-friendly; it's just picky about its friends.