                     Known bugs in the Cyrus IMAP Server

    We're working on moving to a Bugzilla database. It's still being built
    up, but you can search/add to it here. Eventually, all the bugs below
    will be in there. 

imapd and core utilities

      * Multiple APPENDs don't always correctly return the EXISTS response.
        (can't reproduce?) 
      * Particularly large quotas can wrap around. 
      * The RENAME command is not atomic. 
      * reconstruct doesn't deal with the mailboxes.db file. 
      * we should deal with having to reset UIDs 
      * the algorithm used for naming stage files is fragile and not
        threadsafe. 
      * during appendstage(), the message is parsed once per delivery, not
        once at the beginning. 
      * master should pay attention to processes that have told it they are
        listening, and make sure they don't die abnormally. likewise, it
        should be on the lookout for continually forking services. 
      * master should probably have a babysitting service ("always keep
        this process running"). 

proxyd and Cyrus Murder

      * RENAME across servers isn't implemented. 
      * Tagged lines with literals can cause problems for proxyd. 

lmtpd, deliver, and sieve

      * 8-bit set characters are coerced to 'X', but not before the
        notify_zephyr code (if used) has had a chance to send them out. 
      * Deliver does not handle messages containing NUL properly due to
        stdio problems (the characters between the NUL and the LF will be
        lost.) 
      * Deliver doesn't gracefully handle CR CR sequences in messages.
        Well, ok, it hangs. 

authentication and authorization

      * Using AFS groups with ptclient, users with negative rights as part
        of groups may be granted access to mailboxes if ptclient has died.
        We plan to have this fixed eventually. 
      * In some failures of the krbck program, the error messages printed
        out bear no resemblance to what actually went wrong. 

other utilities

      * cyradm may need to change authname/username stuff. Something to
        check. 
      * imtest: it would be nice for the authorization name to default to
        the authentication name, except when specifically overridden. 
      * collectnews's routines in append.c are broken. either remove
        collectnews or fix it. 
      * any utilities doing db operations should catch signals and poll for
        them to see if it should exit (like mbpath, ipurge). 
      * imtest uses getpass() to grab passwords from users. On some systems
        (Solaris reported), this will only return the first 8 characters,
        causing authentication failures. 

libraries

      * libacap should use protection layers. 
      * does libacap leak memory? 

                     Things we want to do

      * Implement the IMAP VIEW extension. 
      * Implement the IMAP ANNOTATE extension. 
      * Implement some sort of backup/restore system that's more efficient
        and easier to use than Amanda on the filesystem. 
      * Add mailbox version numbers. 
      * Add mailbox tombstones (gives NEWNAME support). 
      * Design and implement ALIST, the advanced list command. 
      * Investigate changing from the prot layer to using sfio. 
      * Write a test module for lmtpengine. 
      * Allow renaming users. (RENAME user.joe user.harry.) Needs to move
        all metadata per-user data. (seen, subscriptions, sieve state?) 

    Please refer to Sending Feedback if you would like to submit a bug,
    feature request or (best of all) patch. 

