dovecot-2.2: TODO updated

dovecot at dovecot.org dovecot at dovecot.org
Mon Feb 25 17:25:19 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/539baf0adc2e
changeset: 15940:539baf0adc2e
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Feb 25 17:25:10 2013 +0200
description:
TODO updated

diffstat:

 TODO |  35 +++++++----------------------------
 1 files changed, 7 insertions(+), 28 deletions(-)

diffs (117 lines):

diff -r 2aee41cd72b0 -r 539baf0adc2e TODO
--- a/TODO	Mon Feb 25 17:23:25 2013 +0200
+++ b/TODO	Mon Feb 25 17:25:10 2013 +0200
@@ -1,4 +1,3 @@
- - dsync over tcp
  - if transaction log file corruption is noticed, make sure new dovecot.index
    snapshot gets written and don't mark the whole file corrupted.. rather maybe
    just rotate and truncate it
@@ -45,6 +44,10 @@
    so mail_storage_settings are copied to mail_namespace_settings. use the
    change tracking to figure out what settings are namespace-specific.
 
+ - doveadm import: add -d parameter to deduplicate mails based on their GUID
+   (or perhaps do it by default?)
+ - sdbox: altmoving is done with mailbox locked. that's not necessary, it could
+   do the copying while unlocked and delete the primary files while locked
  - passdb, userdb { username_format } that doesn't permanently change
    the username
  - mdbox/sdbox index rebuild -> quota rebuild?
@@ -61,10 +64,7 @@
     - with in-memory indexes be sure to refresh it more often
     - refreshing could refresh only the parts that are actually requested,
       e.g. %
-    - mailbox_get_metadata(guid) could be optimized
     - virtual could use it to avoid keeping all mailboxes open
- - check:
-    - dsyncing between two namespace separators is probably broken..
  - 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
@@ -93,13 +93,14 @@
  - 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
- - dsync: if mailbox is renamed due to it being invalid, its subscription
-   isn't renamed
  - sql pool: if async query is pending and sync query is sent and there
    are no more empty connections, it should flush the async query first
  - NTLMv1 and LM should be disabled if disable_plaintext_auth=yes
  - SEARCH SENT*/HEADER/etc. doesn't seem optimized when using with TEXT/BODY
  - dict sql: support ignoring some search key hierarchies (e.g. acl "anyone")
+ - dsync: avoid sending email when it could be copied from another mailbox.
+   probably requires storage to have guid => { instances } map? that's
+   rather annoying to add.
 
  - mdbox
     - dotlocking: cleanup should delete stale *.lock files
@@ -124,7 +125,6 @@
  - maildir: out-of-disk-space failures apparently cause all kinds of
    problems, e.g. "Expunged message reappeared", "Duplicate file entry"?
  - deliver -r <address> used as autoreplies' From-address?
- - add fd limit checks/warnings
  - istream-seekable is inefficient. it shouldn't be reading the temp file
    immediately after writing to it
  - config process is handling requests too slowly. maybe add some caching.
@@ -134,17 +134,6 @@
  - ipv6: auth penalty should begin from /64 and gradually grow to /48 if
    necessary. and the same could be done for ipv4 as well..
 
- - dsync:
-   - check for uid conflicts in the middle of mailbox based on next existing
-     message, not previous
-   - subscriptions syncing doesn't handle mixed hierarchy separators
-   - Can't rename mailbox INBOX_019acf2169c5784b307f000074ccac23 to INBOX: Target mailbox already exists
-   - copying can't work in non-full mode unless source mailbox is modified
-     in some way. possibly add some COPY records to transaction log in future?
-   - superfast mode: when syncing changes within a mailbox, use modseqs to
-     figure out what has changed similar to QRESYNC.
-
- - lda: add some -h 'Header: value' parameter that adds/replaces header
  - ldap: fix multiple-gid support somehow
  - search: use mail_get_parts() only when it's already cached. if it's not,
    add it to cache afterwards.
@@ -155,18 +144,12 @@
 	//FIXME:i_assert((t->flags & MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL) != 0);
   ^ appears to work now though, probably because of the added syncing stuff..
 
- - transaction log corruption should make sure dovecot.index is rewritten
-   and perhaps not delete the file.
  - use backup index in mail_index_fsck()
-
  - proxying: support fallbacking to local (or other?) server if the first
    one is down
  - i_panic("Message count decreased") happens - why?
      - at least one backtrace shows client_destroy -> client_command_cancel ->
        imap_sync_deinit
- - fsck -> log_file_tail_offset 2273345664 -> 996 ->
-   mail-transaction-log.c: line 341 (mail_transaction_log_set_mailbox_sync_pos):
-   assertion failed: (file_offset >= log->head->saved_tail_offset)
  - virtual: If last message matching INTHREAD rule gets expunged, the rest of
    the thread doesn't go away
  - how do shared mailboxes work with plugins?
@@ -180,7 +163,6 @@
       dovecot-acl files? at least not that often..
  - fs quota: getquotaroot inbox vs. other-box should return different quotas
    if two quotas are defined
- - new primes code: are hash tables now being resized too often?
  - auth_log_prefix setting similar to mail_log_prefix
 
  - thread indexes: if we expunge a duplicate message-id: and we have a sibling
@@ -221,8 +203,6 @@
        }
 
  - maildir+pop3 fast updates:
-   - with locking enabled, pop3 could just keep the one and same sync lock and
-     do the whole thing using sync transaction
    - don't update dovecot-uidlist if dovecot.index.cache doesn't exist /
      there's nothing to cache
    - if all messages are expunged and there are no unknown extensions in index,
@@ -268,7 +248,6 @@
     - COPY doesn't work to itself (lock assert crash, for now just disallowed)
 
  - index
-    - read-only support for mailboxes where we don't have write-access
     - index file format changes:
         - split to "old" and "new" indexes and try to avoid loading "old" into
 	  memory until needed


More information about the dovecot-cvs mailing list