[Dovecot] THREAD X-REFERENCES2 index bug?
Hi all,
$ sudo dovecot --version 1.2.beta3
I just started using Dovecot a few weeks ago, and my client is also using the X-REFERENCES2 thread algorithm. The client is misbehaving when trying to list messages in my INBOX, but only when a threaded message exists. I have tracked it down to the thread index that Dovecot is returning, but the problem is only extant when using the X-REFERENCES2 thread algorithm. Here is a snippet of transcript from imap client that comes with Dovecot:
$ export MAIL=maildir:~/Maildir:INBOX=~/Maildir/INBOX $ /usr/lib/dovecot/imap <snip> 1 SELECT "INBOX" <snip> 2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4) 2 OK Thread completed.
There are, in fact, only 4 messages in my INBOX, and the reference to (0) seems spurious. When I do the same test, but passing REFERENCES instead of X-REFERENCES2 Dovecot returns an index which I believe to be correct:
<snip> 2 THREAD REFERENCES UTF-8 ALL
- THREAD (1 3)(2)(4) 2 OK Thread completed. <snip>
Is this the normal and expected behavior of X-REFERENCES2 that the client just needs to take into account, or is the reference to thread index (0) an error?
Thanks!
Nathan
On Sat, 2009-03-21 at 15:55 +0000, Nathan Kinkade wrote:
$ export MAIL=maildir:~/Maildir:INBOX=~/Maildir/INBOX $ /usr/lib/dovecot/imap <snip> 1 SELECT "INBOX" <snip> 2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4) 2 OK Thread completed.
Could you send me the dovecot.index* files? Would make it easier for me to reproduce this bug. dovecot.index.cache file is the only one that might contain something sensitive.
Is this the normal and expected behavior of X-REFERENCES2 that the client just needs to take into account, or is the reference to thread index (0) an error?
It's a bug.
On Sat, 2009-03-21 at 15:55 +0000, Nathan Kinkade wrote:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4)
This should fix it: http://hg.dovecot.org/dovecot-1.2/rev/bf16646ec312
On Thu, 02 Apr 2009 15:28:29 -0400, Timo Sirainen <tss@iki.fi> wrote:
On Sat, 2009-03-21 at 15:55 +0000, Nathan Kinkade wrote:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4)
This should fix it: http://hg.dovecot.org/dovecot-1.2/rev/bf16646ec312
I can confirm that that seems to have fixed it. Thanks!
Nathan
On Fri, 2009-04-03 at 00:06 +0000, Nathan Kinkade wrote:
On Thu, 02 Apr 2009 15:28:29 -0400, Timo Sirainen <tss@iki.fi> wrote:
On Sat, 2009-03-21 at 15:55 +0000, Nathan Kinkade wrote:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4)
This should fix it: http://hg.dovecot.org/dovecot-1.2/rev/bf16646ec312
I can confirm that that seems to have fixed it. Thanks!
BTW. I just renamed X-REFERENCES2 to REFS. The THREAD=REFS is specified in INTHREAD draft.
On Fri, 03 Apr 2009 00:06:11 +0000, Nathan Kinkade <nath@nkinka.de> wrote:
On Thu, 02 Apr 2009 15:28:29 -0400, Timo Sirainen <tss@iki.fi> wrote:
On Sat, 2009-03-21 at 15:55 +0000, Nathan Kinkade wrote:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(2)(1 3)(4)
This should fix it: http://hg.dovecot.org/dovecot-1.2/rev/bf16646ec312
I can confirm that that seems to have fixed it. Thanks!
Nathan
Hmm. It looked as if it were working, but the same problem seems to have crept back in somehow. As I've been doing all along, I pulled the source from "deb-src http://xi.rename-it.nl/debian/ experimental-auto main" with apt-src, verified that the source had the fix, then built/installed the package. But I'm still seeing this:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(1 (2)(3)) 2 OK Thread completed.
I can recover from it by removing the dovecot.index* files, but after a bit of moving and copying messages in and out of a folder, the problem seems to come back.
Any thoughts?
Nathan
On Apr 4, 2009, at 11:58 AM, Nathan Kinkade wrote:
2 THREAD X-REFERENCES2 UTF-8 ALL
- THREAD (0)(1 (2)(3)) 2 OK Thread completed.
I can recover from it by removing the dovecot.index* files, but
after a bit of moving and copying messages in and out of a folder, the problem
seems to come back.
Could you again send me the index files when it happens?
participants (2)
-
Nathan Kinkade
-
Timo Sirainen