Opened 15 years ago

Closed 15 years ago

#397 closed defect (fixed)

ChertPostListTable::get_doclength skips new documents after flush

Reported by: Rich Lane Owned by: Olly Betts
Priority: normal Milestone: 1.1.3
Component: Backend-Chert Version: SVN trunk
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Operating System: All

Description

Chert's get_doclength sometimes skips documents, leading to Xapian throwing DocNotFound when retrieving the document for a search result. I've attached a testcase that passes with Flint and fails with Chert. Resetting doclen_pl on every call makes the problem go away, so a workaround might be to just reset it after a flush.

Attachments (1)

doclength_after_flush.cc (297 bytes ) - added by Rich Lane 15 years ago.
doclength_after_flush testcase

Download all attachments as: .zip

Change History (3)

by Rich Lane, 15 years ago

Attachment: doclength_after_flush.cc added

doclength_after_flush testcase

comment:1 by Olly Betts, 15 years ago

Milestone: 1.1.3
Status: newassigned
Version: SVN trunk

Marking to fix for 1.1.3.

comment:2 by Olly Betts, 15 years ago

Resolution: fixed
Status: assignedclosed

The cursor isn't going to be valid for the new table revision, so resetting doclen_pl on flush() is the appropriate fix, and makes your testcase pass.

Comitted to trunk in r13445. Chert-only, so nothing to backport.

Note: See TracTickets for help on using tickets.