dovecot-2.2: TODO updated

dovecot at dovecot.org dovecot at dovecot.org
Wed Dec 9 15:37:34 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/42b5cde2d560
changeset: 19501:42b5cde2d560
user:      Timo Sirainen <tss at iki.fi>
date:      Wed Dec 09 17:37:13 2015 +0200
description:
TODO updated

diffstat:

 TODO |  75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 60 insertions(+), 15 deletions(-)

diffs (113 lines):

diff -r 452f9b0ea9f4 -r 42b5cde2d560 TODO
--- a/TODO	Wed Dec 09 17:36:49 2015 +0200
+++ b/TODO	Wed Dec 09 17:37:13 2015 +0200
@@ -1,3 +1,62 @@
+ - remove mail_deliver_session after all, do all the stuff transparently
+   by hooking into mailbox_copy().
+     - use this hook also to do the mail deduplication: 1) sort all destination
+       users, 2) create mail_user only once for each user, 3) remember in
+       src_mail the previously copied mail, 4) use that for mailbox_copy()ing
+       to following recipients
+     - make sure this removes duplicate dbox mails when sieve saves mail to
+       multiple mailboxes
+ - auth: user iterations shouldn't be able to use up all the workers
+ - indexer: if workers are stuck, we keep adding more and more stuff to them
+   which causes the ostream size to become huge. 
+ - quota: maybe check quota once more at commit time to make sure the whole
+   transaction fits. avoids multiple parallel slow COPY commands from being
+   able to go over quota
+ - lmtp: Calculate incoming mail's hash, forward it via proxying, have the
+   final delivery code verify that it's correct
+ - METADATA: quota, NOTIFY interaction, METADATA-SERVER capability
+ - virtual: why is it using 20 bytes instead of 16 bytes? because imap
+   keywords are not going in the middle, why?!
+ - fts: if SEARCH X-MAILBOX is used on virtual/all folder, it doesn't update
+   any indexes. (and it should skip those physical mailboxes that don't
+   match the X-MAILBOX)
+ - fts_autoindex=yes shouldn't really index Trash/Drafts
+ - fts: if indexer has request queued, SEARCH won't return anything until
+   it's done.
+     - maybe abort entirely after X time and return NO
+     - prioritize small quick indexing before slow large indexing?
+     - in virtual mailbox searches don't wait for indexing to finish to
+       large unindexed mailboxes, just show what you got
+ - figure out some way to avoid a million error messages getting logged
+   when service imap/pop3 reaches process_limit (some kind of notification
+   to login process that the post-login process is full?)
+ - lda: mail sending (bounce? forward?) is sending mixed CRLF+LFs
+ - auth: remove protocol !flop {} requirement. try again remote {} and local {}
+   support for auth. where do we go stuck? at least need to be able to share
+   identical passdb/userdbs
+ - doveadm sync -l: lock also when syncing public mailboxes? per-mailbox locks?
+ - dsync: dsync_mailbox_export_init() can be very slow and not send anything
+   to remote dsync for a long time, which thinks the other side is dead and
+   kills it. need to send some kind of keepalive-notifications.
+ - dsync: rename + re-subscribe isn't handled right in first sync, because
+   dsync moves the subscribed-flag when it renames the node
+ - virtual: use mailbox_list_index to optimize syncing
+ - "/asdf" in subscriptions -> LSUB lists -> dsync assert-crashes
+ - replicator: automatically remove users who don't exist
+ - imapc: sync_uid_next handling doesn't seem to be correct, especially with
+   Courier that doesn't send UIDNEXT on SELECT
+ - sdbox: dbox_file_fix() should assume there is only one message..
+ - pop3: if we can't fetch "order" field for UIDL (but could fetch it
+   initially), the order will be wrong and error is logged. probably just
+   need to read all the UIDLs into memory at startup?..
+
+ - fs_list_get_mailbox_flags() is unnecessarily stat()ing files/dirs
+ - doveadm-server: dsync doesn't work through proxying, because the data isn't
+   actually being proxied but handled via doveadm_print()
+ - CATENATE: Allow ~{binary} data but fail if there are any c-t-e: binary parts?
+   or simply silently save it?
+
+ - master-settings.c warnings aren't logged to log file at startup
  - dsync: delete foo, rename bar foo -> foo, foo-temp-1
  - dsync+imapc:
      - mailbox list could be synced pretty optimally by ignoring
@@ -5,11 +64,10 @@
        and can be matched -> rename mailbox.
      - GUID-less sync could optionally use just rfc822.size [and internaldate]
        to match messages.
-     - why does it use separate FETCH INTERNALDATE + FETCH BODY[HEADER]
 
  - virtual plugin doesn't verify the index file's data, crashes if broken.
  - imapc {} groups
- - libsasl: use it in imapc, pop3c, managesieve-login, doveadm auth
+ - libsasl: use it in pop3c, managesieve-login, doveadm auth
  - nonblocking passdb + blocking passdb -> deinit -> nonblocking passdb gets
    aborted -> calls auth_worker_call() which crashes because deinit is
    already done?
@@ -84,25 +142,13 @@
  - maildir_storage_sync_force() shouldn't do anything except find the new
    file, don't go expunging any more stuff or we could get recursively back to
    where we started, and stuff would break
- - imap: append/copy could trigger indexing (optionally)
  - fuzzy: be fuzzy about date/size
  - mailbox list index:
     - with in-memory indexes be sure to refresh it more often
     - refreshing could refresh only the parts that are actually requested,
       e.g. %
-    - virtual could use it to avoid keeping all mailboxes open
- - remove mail_deliver_session after all, do all the stuff transparently
-   by hooking into mailbox_copy().
-     - use this hook also to do the mail deduplication: 1) sort all destination
-       users, 2) create mail_user only once for each user, 3) remember in
-       src_mail the previously copied mail, 4) use that for mailbox_copy()ing
-       to following recipients
-     - make sure this removes duplicate dbox mails when sieve saves mail to
-       multiple mailboxes
  - notify_sync() could have "what changed" struct with old/new flags
  - maildir: copy dovecot-shared file from parent mailbox, not root.
- - if global ACL path points to a file instead of a directory, read all of
-   them from there. support wildcards in names.
 
  - master passdb preserves userdb_* extra fields. should it preserve
    non-userdb_* extra fields too?
@@ -111,7 +157,6 @@
  - doveadm search savedbefore 7d could be optimized in large mailboxes..
  - mdbox: storage rebuilding could log about changes it does
  - mdbox: broken extrefs header keeps causing index rebuilds
- - doveadm -A <<EOF expunge + purge + EOF
  - sent, drafts: .Sent/dovecot.index: modseq_hdr.log_offset too large
  - mail_max_lock_timeout error could be reported more nicely, also ones coming
    from lib-index


More information about the dovecot-cvs mailing list