[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