Opened 15 years ago

Closed 15 years ago

#399 closed defect (fixed)

ChertValueManager::get_value skips document 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

I've been seeing empty values returned immediately after flushing. The reader.at_end() condition following the reader.skip_to(did) call is true even though the document should exist. I've attached a testcase that passes with Flint and fails with Chert.

Attachments (1)

valuesaftercommit.cc (432 bytes ) - added by Rich Lane 15 years ago.
values-after-commit testcase

Download all attachments as: .zip

Change History (3)

by Rich Lane, 15 years ago

Attachment: valuesaftercommit.cc added

values-after-commit testcase

comment:1 by Olly Betts, 15 years ago

Milestone: 1.1.3
Status: newassigned
Version: SVN trunk

Looking at the database with xapian-inspect, it seems we manage to create a chunk for value 0 for document 2, and then a new chunk for value 0 for documents 1 and 3, which is wrong - we should be rewriting the existing chunk.

Then when we look for value 0 for document 3, we look in the chunk for document 2 (since that's the largest chunk start <= 3) and don't find it.

Needs fixing for 1.1.3.

comment:2 by Olly Betts, 15 years ago

Resolution: fixed
Status: assignedclosed

Fixed in trunk r13492. Chert-only, so nothing to backport.

Note: See TracTickets for help on using tickets.