dovecot-2.0: TODO updated.

dovecot at dovecot.org dovecot at dovecot.org
Sun May 9 22:06:26 EEST 2010


details:   http://hg.dovecot.org/dovecot-2.0/rev/5779cbc79020
changeset: 11273:5779cbc79020
user:      Timo Sirainen <tss at iki.fi>
date:      Sun May 09 22:06:12 2010 +0300
description:
TODO updated.

diffstat:

 TODO |  140 +++++++++++++++++++++++-----------------------------------------------
 1 files changed, 46 insertions(+), 94 deletions(-)

diffs (228 lines):

diff -r 79a3aef47ddf -r 5779cbc79020 TODO
--- a/TODO	Sun May 09 22:05:39 2010 +0300
+++ b/TODO	Sun May 09 22:06:12 2010 +0300
@@ -1,11 +1,44 @@
-19295): Error: dbox map /home/tss/mdbox/storage/dovecot.map.index corrupted: Unexpectedly lost INBOX uid=1083397 map_uid=2001404
- ^ fixed, but it should continue breaking like:
-19295): Warning: dbox /home/tss/mdbox/storage: rebuilding indexes
-19295): Error: fcntl(write-lock) locking failed for file /home/tss/mdbox/mailboxes/INBOX/dbox-Mails/dovecot.index.log: Resource deadlock avoided
-19295): Error: mail_index_wait_lock_fd() failed with file /home/tss/mdbox/mailboxes/INBOX/dbox-Mails/dovecot.index.log: Resource deadlock avoided
-19295): Warning: dbox /home/tss/mdbox/storage: rebuilding indexes
-20162): Panic: file index-sync.c: line 40 (index_mailbox_set_recent_uid): assertion failed: (seq_range_exists(&ibox->recent_flags, uid))
+ - dovecot --version broken in openbsd/solaris
+ - mdbox+dotlocking: cleanup should delete stale *.lock files
+ - +|- before numbers? quota_rule2 = Trash:storage=+100M messages=+10
 
+#0  mail_thread_cache_sync_remove (box=<value optimized out>, 
+    args=<value optimized out>, ctx_r=<value optimized out>)
+    at index-thread.c:486
+#1  mail_thread_init (box=<value optimized out>, args=<value optimized out>, 
+    ctx_r=<value optimized out>) at index-thread.c:570
+#2  0x000000000042a3dc in imap_thread (cmd=0x11d8f70) at cmd-thread.c:89
+#3  cmd_thread (cmd=0x11d8f70) at cmd-thread.c:136
+#4  0x000000000042b33d in client_command_input (cmd=0x11d8f70)
+    at imap-client.c:646
+
+07:00 < Faxe> Info: dovecot: uidnext changed from -> to, has the wrong 
+              variables assigned:
+07:00 < Faxe> Info: dovecot: uidnext changed 81528 -> 81463
+07:00 < Faxe> (copy one mail and sync again)
+07:00 < Faxe> Info: dovecot: uidnext changed 81529 -> 81528
+  - same for highestmodseq, ~/m/dsync-v_mirror.txt
+
+ - doveadm help "mailbox rename"
+ - doveadm mailbox * [-7|-8] to specify if mailbox name mutf7/utf8
+     - default to utf8
+     - create -s to subscribe also
+ - doveadm mailbox convert [-7|-8] to convert mailbox name between mutf7/utf8
+ - doveadm import [-t storage] <dest mailbox> file|dir|-
+
+ - ns {prefix=, inbox=no}, ns { mbox, inbox=yes } -> INBOX shows up
+   as \noinferiors
+ - 1) mdbox: ns=INBOX. -> don't list INBOX.INBOX
+ - 2) same as 1), allow separate INBOX.INBOX mailbox!
+ - 3) INBOX.INBOX.foobar
+ - 4) dbox: ns= -> make sure INBOX/children are listed and accessiblex
+
+ - solr: crashes if expunge is done while search is indexing
+
+ - mdbox: existing INBOX dir in alt_path -> can't create INBOX. 
+   do storage rebuild instead
+ - change default dovecot_login_user to something else than "dovecot"
+    - dovein, doveless, dovenull?
  - single-dbox:
     - we get back to sdbox_sync_file() over and over again when expunging..
       especially with a broken guid expunge, it doesn't go away.
@@ -117,9 +150,6 @@
  - use universal hash functions?
 
  - expire plugin: log more with mail_debug=yes
-  - expire-tool -v could log UID and expire timestamps and what messages got
-    expunged
- - fts-squat: support ORs
  - UIDVALIDITY changed while saving -> sync errors
    - mbox: copy to Trash, manually delete copied msg, change uidvalidity,
      set nextuid=1, copy again -> error
@@ -130,6 +160,7 @@
    work unless iter_is_mailbox() returns the children flags
  - lucene: handle replacement chars?
  - squat:
+   - support ORs
    - wrong indexid
    - fts_build_init() assertion failed: (last_uid < last_uid_locked)
    - is locking done right? it reads header without file being locked?
@@ -139,7 +170,6 @@
 
  - DEBUG: buffer overflow checking code probably doesn't handle a successful
    t_try_realloc() or pool_alloconly_realloc() properly
- - cache: compress when we can drop temporary fields.
  - new %modifier for reverse DNS lookups with a cache
    - auth_gssapi_hostname = %Xl
    - proxying would also want DNS lookups, but not reverse..
@@ -154,10 +184,6 @@
 	 quota_bytes = *:bytes=%{ldap:quota}
        }
 
- - Per-user options:
-   - Deny deleting non-empty mailboxes
-   - Disable IDLE "still here" notifications
-
  - 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
@@ -174,26 +200,19 @@
      dovecot-uidlist but newly saved mails are, so UIDs will be in wrong order
    - maildir_copy_with_hardlinks: copy already-cached data
 
- - mbox
-   - UID renumbering doesn't really work after all?
-   - still problems with CRLF mboxes..
-
- - logging consistency:
-   http://www.dovecot.org/list/dovecot/2007-April/021532.html
- - EXPUNGE command in read-only mailbox should give an error message if
-   there are messages marked as \Deleted?
  - file_cache: we're growing the mmap in page size blocks, which is horribly
    slow if mremap() doesn't exist.
- - login_max_processes_count shouldn't count proxying processes
 
  - ssl_verify_client_cert isn't working if the SSL cert doesn't have CRL
+ - configurable syslog prefix
 
  - keywords:
     - add some limits to how many there can be
        - don't return \* in PERMANENTFLAGS when we're full
     - remove unused keywords?
 
- - caching
+ - mail caching
+    - compress when we can drop temporary fields.
     - force bits should be used only for nonregistered fields
     - change envelope parsing not to use get_headers() so imap.envelope can
       actually be cached without all the headers..
@@ -207,6 +226,8 @@
       more space. all this to avoid cache file growing infinitely.
 
  - mbox
+    - UID renumbering doesn't really work after all?
+    - still problems with CRLF mboxes..
     - syncing existing indexes takes 4x longer than creating new one, why?
     - how well does dirty sync + status work? it reads the last mail every
       time? not very good..
@@ -240,21 +261,8 @@
     - x search charset asdf all -> should fail
 
  - login
-    - imap-login: Master sent reply with unknown tag 1. client closed
-      connection at the exact same time master was logging it in?
-      see master_request_abort()
     - Digest-MD5: support integrity protection, and maybe crypting. Do it
       through login process like SSL is done?
-    -  x login foo bar
-       x NO Authentication failed.
-       x login cras pass
-       * BYE Disconnected for inactivity.
-	^ but it's not disconnecting! (buggy dovecot-auth not replying)
-	  probably because userdb lookup didn't reply, and fd was already sent
-	  for master.. should imap-login be handling it anymore?..
-    - imap-login: Authenticate PLAIN failed: Authentication failed:
-      Authentication server isn't connected, try again later.. [127.0.0.1]
-        ^ NO Authentication failed. (should be Temporary login failure!)
     - if auth process dies, login process should retry authentication if
       possible. or if not, disconnect the client so it doesn't think the auth
       failed.
@@ -267,7 +275,6 @@
 	- auth_cache_negative_ttl doesn't check password mismatches
     - SIGHUP restarts auth processes .. but does it wait until they've finished
       with all requests? no.
-    - does dovecot-auth really break when it runs out of fds?
     - dovecot-auth should limit how fast authentication requests are allowed
       from login processes. especially if there's one login/connection the speed
       should be something like once/sec. also limit how fast to accept new
@@ -276,15 +283,6 @@
       read-access to mails so mails could be read relatively safely with
       untrusted computers. Maybe always send [ALERT] about the previous
       read-only login time with IP?
-    - dovecot-auth workers: create a separate dovecot-pam worker which shares
-      pretty much all code with dovecot-auth worker but isn't linked against
-      any libraries. or..? this might be difficult to do, especially because the
-      workers currently can handle any kind of passdb/userb requests. perhaps
-      there should be a completely separate simple PAM authenticator binary.
-
- - master
-    - configurable syslog prefix
-    - if there are duplicate settings, complain about it
 
  - quota
     - if dovecot-uidlist can't be written, assume the new mails have UIDs 
@@ -312,50 +310,4 @@
       the above attachment scanning.
 
  - general
-    - stop using atol(), atoi(), strtoul() etc. in places where we actually
-      care about what they return, and rather create our own function which
-      checks if the input overflows the integer, and if so call i_fatal()
-    - ability to build plugins statically into the binaries
-    - ~/.dovecotrc to override system wide settings. namespace settings should
-      override all the previous namespace settings instead of adding new.
     - things break if next_uid gets to 2^32
-
-capabilities:
- - THREAD=ORDEREDSUBJECT - although pretty useless I'd think.
- - mailbox-referrals (rfc2193)
-     - this is useful whenever we would otherwise need to make the
-       connection ourself. for example load balancing and shared mailboxes
-       requiring another UID to run.
-     - this rfc defines no exact way for server to detect if client
-       supports referrals or not. I don't think there's much point in
-       supporting only referrals, as most clients don't support them.
-       Instead we should return referrals when we know that client
-       supports them, otherwise do the connecting ourself. If client
-       issues RLIST or RLSUB command, it's safe to assume it supports
-       referrals.
-     - for load balancing this works just fine, but what about shared
-       mailboxes which require different UID? If we login with our own
-       username, we end up with our own UID instead of what we wanted.
-       IMAP URLs don't support separated authorization id which would
-       have made this very easy.. We could give the "userid at group" as
-       userid, but clients probably treat it as different userid and
-       ask the password again.
-     - problems, problems, .. maybe not worth the trouble.
- - drafts:
-     - http://www.imc.org/ids.html
-     - annotate (draft-ietf-imapext-annotate)
-	 - per-message annotations. this will be major change. especially
-	   because currently there's no suitable storage for them, and
-	   they'll probably change all the time.. maybe if we moved into
-	   berkeley db to store the .data file and these annotations.
-	 - this is separate problem from index files. indexes are treated as
-	   temporary files, annotations are permanent data. we'd have to
-	   support non-db way to do this too, which would probably be just a
-	   simple (slow) text file.
-	 - use lib-dict probably
-     - metadata (draft-daboo-imap-annotatemore)
-	 - server and per-mailbox annotations. much easier than
-	   per-message annotations, but they'd be easier to place into
-	   db as well.
-	 - lib-dict, again
-     - binary (draft-nerenberg-imap-binary)


More information about the dovecot-cvs mailing list