[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