Details
-
Bug
-
Status: Closed
-
Normal
-
Resolution: Fixed
-
None
-
None
-
None
-
Platform 220 - Hardening, Platform 221 - 14.0 CodeFreeze
Description
In the MultiIndex there is room for a small synchronization issue:
While the updateInProgress = true it means something is happening with
the index, for example a documentĀ is being added/deleted, etc. So, as
long asĀ updateInProgress = true, we need to wait. After updateInProgress
has become false, we can try to invoke the 'Callable" synchronized on
the 'updateMonitor' only if directly after the 'updateMonitor' has
been notified not another thread has already set 'updateInProgress' to
true again. Therefor, we need another 'updateInProgress' check, and if
it is true, we still cannot proceed the call to the Callable but instead,
have to wait again.
Furthermore we've had use case where a JR Lucene Index Directory was accessed while it was already closed (by another thread). In this case, we should log traces about the thread that closed the index and the thread that access the index