[Dovecot] SEARCH NOT not working

Julian Cowley julian at lava.net
Sat Sep 22 12:57:47 EEST 2007


I think I've found the source of a bug which I first saw when running 
dovecot and pine (or alpine), which I finally tracked down by doing a 
protocol trace.  In the IMAP session, the SEARCH command appears to have a 
problem with sets of messages and/or the NOT operator.

Probably the best way to show this is by doing operations on a folder with 
ten messages in it.

a select ten
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted.
* 10 EXISTS
* 0 RECENT
* OK [UNSEEN 1] First unseen.
* OK [UIDVALIDITY 1190450101] UIDs valid
* OK [UIDNEXT 11] Predicted next UID
a OK [READ-WRITE] Select completed.

     Now, start doing some basic searches using message sets:

b search (1:10)
* SEARCH 1 2 3 4 5 6 7 8 9 10
b OK Search completed.

     OK, so far so good.  Try the inverse:

c search not (1:10)
* SEARCH
c OK Search completed.

     OK.

d search not (1,10)
* SEARCH
d OK Search completed.

     Hmm, should have output 2..9.

e search not (2,10)
* SEARCH 1
e OK Search completed.

     Hmm.. that should have been 1, 3..9.

f search not (2:10)
* SEARCH 1
f OK Search completed.

     OK, expected.

g search not (1,9)
* SEARCH 10
g OK Search completed.

     Seems to affect other end of the range as well.

h search not (2,9)
* SEARCH 1 3 4 5 6 7 8 10
h OK Search completed.

     OK working again.


More information about the dovecot mailing list