Bug: counting messages twice after excluding tags yields different results

Subject: Bug: counting messages twice after excluding tags yields different results

Date: Wed, 31 Aug 2016 10:23:59 +0200

To: notmuch@notmuchmail.org

Cc:

From: Lucas


Dear list members,

I think I found a bug or at least undocumented behaviour in the notmuch
library.  I would like to report this here.  Originally I found the bug
in the python library but I attached a c program that shows the same
behaviour.  I am running notmuch version 0.22.1 from the Arch Linux
repositories.

The setup:
1. chose a query string, e.g. "is:inbox or is:spam"
2. chose a tag to exclude that is matched by the query, e.g. "spam"
3. open the database
4. create a query
5. check the message or thread count any number of times
6. exclude the tag from the query
7. check the message or thread count any number of times

The result:
- In step 5 the result stays the same if I repeatedly call
  notmuch_query_count_messages_st or query.count_messages.
- In step 7 the count is different between the first call and all
  subsequent calls.  But neither seems correct to me.  I always get the
  same number as in step 5 for the first call and 0 afterwards.

Expected result:
- subsequent calls to notmuch_query_count_messages_st or
  query.count_messages should yield the same result
- the exclusion should change the count to the actual amount (for
  "is:inbox or is:spam" I get 891 and for a plain "is:inbox" I get 58,
  which never shows up in step 7)

Attached you can find a python and a c program that exhibit this
behaviour.  Please compile the c program with

cc -DDB_PATH=\"/path/to/your/mail\" -lnotmuch test.c

My question:
Is this documented somewhere?  Is it actually a bug or is it already
fixed in a newer version?

Thank you for developing notmuch!

Lucas
signature.asc (application/pgp-signature)

Thread: