[Xapian-tickets] [Xapian] #833: The Xapian 1.4.25 causes the program to crash when performing concurrent multi-threaded queries.
Xapian
nobody at xapian.org
Fri Aug 16 05:29:07 BST 2024
#833: The Xapian 1.4.25 causes the program to crash when performing concurrent
multi-threaded queries.
---------------------------+-------------------------------
Reporter: myx | Owner: Olly Betts
Type: defect | Status: new
Priority: highest | Milestone:
Component: Backend-Glass | Version: 1.4.25
Severity: blocker | Resolution:
Keywords: | Blocked By:
Blocking: | Operating System: All
---------------------------+-------------------------------
Comment (by Olly Betts):
The internal implementation of `Xapian::Query` changed a lot between 1.2.x
and 1.4.x, and notably it doesn't use reference counted internals in 1.2.x
but does in 1.4.x.
(We also switched from a home-grown reference counter point to one based
on Boost's intrusive_ptr, but I'd expect Boost's implementation to be less
buggy than our old one as it will have seen a lot more use.)
I tried looking at your code, but it's too complex for me to easily follow
what's going on.
Are you sure you are locking between threads sufficiently? Not doing so
would explain problems. For example, you can't have two different threads
modifying the reference count on a Xapian object concurrently. For
example, care is needed if you want to pass ownership of an object between
threads.
Otherwise I'd suggest reducing it to a minimal testcase that shows the
problem. That may make it obvious what's going on, and if not it'll be
more feasible for me to investigate.
Not sure what the file you couldn't attach is, but if it's too large to
attach it's unlikely to be useful to me - I really need a small, self-
contained reproducer to look at.
--
Ticket URL: <https://trac.xapian.org/ticket/833#comment:2>
Xapian <https://xapian.org/>
Xapian
More information about the Xapian-tickets
mailing list