[Xapian-tickets] [Xapian] #427: xapian-compact results in corrupt postlist table (test data included)
Xapian
nobody at xapian.org
Thu Jan 28 20:04:31 GMT 2010
#427: xapian-compact results in corrupt postlist table (test data included)
---------------------------+------------------------------------------------
Reporter: Henry | Owner: olly
Type: defect | Status: assigned
Priority: normal | Milestone: 1.1.4
Component: Backend-Chert | Version: SVN trunk
Severity: normal | Keywords:
Blockedby: | Platform: Linux
Blocking: |
---------------------------+------------------------------------------------
Comment(by richard):
The patch I've just applied partially fixes this: the databases produced
with this fix appear to be nearly valid, but return a value of 0 for
get_lastdocid() - I think there's a secondary problem causing this which
will need a different fix.
My patch addresses the following issue: there was an off-by-one error in
the truncation of the key of follow-on chunks of postlists in
PostlistCursor which was meant to make the key into the equivalent key for
an initial chunk. My fix needs a testcase (which will in turn need a
database in which the postlist for a term is split into more than one
chunk), but seems to help, and makes sense to me. The problem is hidden
in flint because all keys have a trailing '\0' byte, so the key for the
first chunk in a postlist had the '\0' byte trailing when returned from
PostlistCursor, but still matched the key for the next chunk. For Chert
and Brass, the first chunk's key doesn't have a trailing '\0', so didn't
match the following keys after they had been (insufficiently) truncated.
--
Ticket URL: <http://trac.xapian.org/ticket/427#comment:5>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list