Package: libxapian30
Version: 1.4.3-1
Severity: important
Tags: patch upstream

Kirill A. Shutemov noticed some queries in notmuch were giving different
answers on a repeat run without the data having changed.

Investigating, this turns out to be a bug in xapian-core with handling
an AND operator which is unweighted (e.g. under FILTER or AND_NOT) with
a subquery which uses the passed max weight value (the obvious case is
another operator such as OR) - the maximum weights of the subqueries
aren't initialised, but are then used to compute the maximum weight a
subquery needs to return - this can result in rejecting results which
should match.

This bug is present in both 1.2.x and 1.4.x.  It's presumably actually
affected many more people, but because there's no crash it's easy to
not notice the issue.

This is fixed in upstream git:

* 1.4 branch:
  https://trac.xapian.org/changeset/7b3349f91ae8e35592fe37606c4443b80577b924/git
* 1.2 branch:
  https://trac.xapian.org/changeset/6737fa7047142e2d3ce88a5bfaf7a4b5589ade9d/git

Cheers,
    Olly

Reply via email to