Google

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.
  • DELETE and deleting user mailboxes.
  • 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

  • proxyd doesn't advertise ACAP=.
  • COPY across servers isn't tested and isn't robust.
  • RENAME across servers isn't implemented (less severe).
  • Tagged lines with literals can cause problems for proxyd.
  • acappush doesn't seem to deal with the ACAP server dying well.
  • acappush: should we be avoiding some ACAP round trips? do we have any concerns speed-wise? what about out-of-memory situations?
  • proxyd should deal with errors more cleanly in proxy_authenticate() and with backend servers overall.
  • target-acap doesn't work on ignoring zero-information updates. it doesn't deal with the ACAP server dying and in general should be replaced with something more general.
  • is proxyd implementing idle timeouts correctly?
  • skip-list code uses assert(). Does SIGABRT get properly trapped so we don't end up exiting holding locks?
  • setacl/getacl commands seem to reliably cause the proxy the die.
  • pop3proxyd appears to be non-functional.

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.
  • duplicate.c could be much more efficient than repeatedly opening and closing databases. (Cache last N databases used?)
  • Should duplicate.c use transactions? A single file?

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

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.


Last update: $Date: 2001/01/26 16:54:52 $
Return to the Cyrus IMAP Server Home Page