Opened 16 years ago
Closed 16 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)
Change History (3)
by , 16 years ago
| Attachment: | valuesaftercommit.cc added | 
|---|
comment:1 by , 16 years ago
| Milestone: | → 1.1.3 | 
|---|---|
| Status: | new → assigned | 
| 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 , 16 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | assigned → closed | 
Fixed in trunk r13492. Chert-only, so nothing to backport.

values-after-commit testcase