# 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.
- 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

# 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.

Last update: $Date: 2006/11/30 17:11:16 $
Return to the Cyrus IMAP Server Home Page