Time for 2.3.13?

Thomas Jarosch thomas.jarosch at intra2net.com
Thu Sep 11 11:16:25 EDT 2008

Hi Bron,

On Thursday, 11. September 2008 03:33:15 you wrote:
> Can you post the logic that your script was using?  That might help.

The problem is triggered by a perl script that syncs a list of users
against the actual user list in cyrus. It uses perl-IMAP-Admin to do this.

Unknown users get deleted from cyrus by recursivly deleting
the folders via $imap->delete($folder) starting at the lowest folder.
After that the user gets deleted from sasldb. Here's the relevant code:
    # Count number of "/" in a string.
    sub pntcnt

        for ($i=0; $i<length($s); $i++)
            if (substr($s,$i,1) eq "/")

        return $n;

    # $x is something like "user/jhope"

    # delete subfolders
    @sublist = $imap->list($x . "/*");
    foreach $s (reverse sort { pntcnt($a) cmp pntcnt($b) } @sublist)
        if ($err)
            print("error: $imap->{'Error'}\n");

    # delete inbox
    if ($err)
        print("error: $imap->{'Error'}\n");

    # delete from sasldb

I've noticed there is a "delayed delete" feature in imapd. I don't know
the exact details about this feature, but if it delays the delete request 
until the connection is closed, that might be the vunerable point
for a timeout as I was deleting multiple GBs of mail.

The script doesn't do anything magic besides calling
$imap->delete and $imap->close.

> Doesn't look like a skiplist issue directly to me.  Possibly it's a
> "was in a transaction and rolled back" issue, but that's separate,
> and it doesn't explain the mails still being on disk!
> Also - do you have split meta?  I.e. are the mail files in a different
> location than the cyrus.* files?

The meta data is in the same folder as the mails.

Any idea what might be going on?


More information about the Cyrus-devel mailing list