[Xapian-tickets] [Xapian] #675: Exception in [Chert/Glass]Cursor::find_entry()

Xapian nobody at xapian.org
Mon Apr 27 14:15:37 BST 2015


#675: Exception in [Chert/Glass]Cursor::find_entry()
---------------------------+-----------------------------
 Reporter:  Kronuz         |             Owner:  olly
     Type:  defect         |            Status:  assigned
 Priority:  high           |         Milestone:  1.3.3
Component:  Backend-Chert  |           Version:
 Severity:  normal         |        Resolution:
 Keywords:                 |        Blocked By:
 Blocking:                 |  Operating System:  All
---------------------------+-----------------------------

Comment (by Kronuz):

 Yes, I agree with the licensing of the patches. Is there anything else
 besides saying I do that I have to do?... I'd actually really love the
 whole Xapian was MIT licensed.

 Regarding Glass, the problem is also there in that backend as well (for
 some reason). I'm not sure how the `GlassValueManager::cursor` gets those
 pointers, but the memory **is** being released by the
 `GlassTable::close()` and later is tried to be used. In glass it might be
 the reference counter isn't being increased for some reason when cursor is
 copied/assigned, however simply adding that `cursor.reset(0)` to the
 `GlassValueManager::reset()` doesn't seem to fix the issue as it does in
 Chert... and thinking about it, even if it did keep the blocks alive (if
 the reference counting there was working), would we still want to use the
 old blocks after the reopen? I mean, the `close()` during the reopen
 resets the cursors for the tables, I don't think we'd still would want to
 use a stale cursor for the value manager... but I might be understanding
 cursors an blocks incorrectly.

--
Ticket URL: <http://trac.xapian.org/ticket/675#comment:8>
Xapian <http://xapian.org/>
Xapian



More information about the Xapian-tickets mailing list