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