[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