Cyrus 2.4.6 problem with delayed expunge mode

Bron Gondwana brong at
Tue Feb 8 04:36:14 EST 2011

On Sun, Feb 06, 2011 at 02:27:12PM -0200, Lucas Zinato Carraro wrote:
> Hi,
> I configure cyrus (imapd.conf ) with:
> ..............
> delete_mode: delayed
> .............
> expunge_mode: delayed
> and in cyrus.conf
> ..................
>   checkpoint    cmd="/usr/cyrus/bin/ctl_cyrusdb -c" period=5
>   delprune        cmd="/usr/cyrus/bin/cyr_expire -E 60 -X 60 -D 60" at=2301
>   tlsprune      cmd="/usr/cyrus/bin/tls_prune" at=0400
>   squatter        cmd="/usr/cyrus/bin/squatter -s -r user" at=2300
> }
> But when i check with unexpunge the mailboxes does not have expunged
> messages from 60 days.
> I have mailboxes with 7 days, 14 days and 20 days.
> Only cyr_expire remove expunged messages ?

Oohh... I suspect you're being bitten by this: (from man imapd.conf)

 expunge_days: 7
      Number  of  days  to  retain  expunged messages before cleaning up
      their index records.  The default is 7.   This  is  necessary  for
      QRESYNC  to  work  correctly.   If  combined  with delayed expunge
      (above) you will also be able to unexpunge  messages  during  this

So it will clean up after 14 days actually - if you haven't done
the cleanup yourself in the meantime with cyr_expire.  This is done
during mailbox close.  It's me trying to be more clever than I should!
The easy fix is just to put "expunge_days: 60" in your config.  Longer
term I want to fix cyr_expire not to be so complex and multi-function.
Even just better defaults would be good!  At the moment it will still
wipe all expunged messages if you get the command line wrong.


More information about the Info-cyrus mailing list