[Xapian-tickets] [Xapian] #675: Exception in [Chert/Glass]Cursor::find_entry()
Xapian
nobody at xapian.org
Fri Apr 24 22:59:49 BST 2015
#675: Exception in [Chert/Glass]Cursor::find_entry()
--------------------+-------------------------
Reporter: Kronuz | Owner: olly
Type: defect | Status: new
Priority: high | Milestone:
Component: Other | Version:
Severity: normal | Resolution:
Keywords: | Blocked By:
Blocking: | Operating System: All
--------------------+-------------------------
Comment (by Kronuz):
The cursor received in `ChertTable::find()`, `C_`, is a different object
than that for which memory is allocated during
`ChertTable::do_open_to_read`, so it remains with the old freed pointers
during `ChertTable::close`. In other words, `ChertTable::C` is updated
with new memory allocated, but `ChertValueManager::cursor` (the one
calling `ChertCursor::find_entry()` -> `ChertTable::find()`) isn't so
`ChertValueManager::reset()` needs a `cursor.reset(0);` (since the cursor
will no longer be valid after the reopen) and `value_manager.reset();`
should be called *after* opening the tables in
`ChertDatabase::open_tables_consistent()`.
--
Ticket URL: <http://trac.xapian.org/ticket/675#comment:4>
Xapian <http://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list