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