[
https://issues.apache.org/jira/browse/LUCENE-1239?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12579792#action_12579792
]
Michael Lossos commented on LUCENE-1239:
----------------------------------------
Here's the related Compass bug:
http://issues.compass-project.org/browse/CMP-581
In case this ends up being a problem in Compass's ExecutorMergeScheduler,
though that doesn't look to be the case at the moment.
> IndexWriter deadlock when using ConcurrentMergeScheduler
> --------------------------------------------------------
>
> Key: LUCENE-1239
> URL: https://issues.apache.org/jira/browse/LUCENE-1239
> Project: Lucene - Java
> Issue Type: Bug
> Components: Index
> Affects Versions: 2.3.1
> Environment: Compass 2.0.0M3 (nightly build #57), Lucene 2.3.1,
> Spring Framework 2.0.7.0
> Reporter: Michael Lossos
>
> I'm trying to update our application from Compass 2.0.0M1 with Lucene 2.2 to
> Compass 2.0.0M3 (latest build) with Lucene 2.3.1. I'm holding all other
> things constant and only changing the Compass and Lucene jars. I'm recreating
> the search index for our data and seeing deadlock in Lucene's IndexWriter. It
> appears to be waiting on a signal from the merge thread. I've tried creating
> a simple reproduction case for this but to no avail.
> Doing the exact same steps with Compass 2.0.0M1 and Lucene 2.2 has no
> problems and recreates our search index. That is to say, it's not our code.
> In particular, the main thread performing the commit (Lucene document save)
> from Compass is calling Lucene's IndexWriter.optimize(). We're using
> Compass's ExecutorMergeScheduler to handle the merging, and it is calling
> IndexWriter.merge(). The main thread in IndexWriter.optimize() enters the
> wait() at the bottom of that method and is never notified. I can't tell if
> this is because optimizeMergesPending() is returning true incorrectly, or if
> IndexWriter.merge()'s notifyAll() is being called prematurely. Looking at the
> code, it doesn't seem possible for IndexWriter.optimize() to be waiting and
> miss a notifyAll(), and Lucene's IndexWriter.merge() was recently fixed to
> always call notifyAll() even on exceptions -- that is all the relevant
> IndexWriter code looks properly synchronized. Nevertheless, I'm seeing the
> deadlock behavior described, and it's reproducible using our app and our test
> data set.
> Could someone familiar with IndexWriter's synchronization code take another
> look at it? I'm sorry that I can't give you a simple reproduction test case.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]