[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