Deadlock: IndexWriter.addIndexes(IndexReader[])
-----------------------------------------------
Key: LUCENE-1544
URL: https://issues.apache.org/jira/browse/LUCENE-1544
Project: Lucene - Java
Issue Type: Bug
Components: Index
Affects Versions: 2.4
Environment: should be ubiquitous... but, Win XP on a MacBookPro
(Intel) under Eclipse (Ganymede) using default compiler/runtime
Reporter: Doug Sale
A deadlock issue occurs under the following circumstances
- IndexWriter.autoCommit == true
- IndexWriter.directory contains multiple segments
- IndexWriter.AddIndex(IndexReader[]) is invoked
I put together a JUnit test that recreates the deadlock, which I've attached.
It is the first test method, 'testAddIndexByIndexReader()'.
In a nutshell, here is what happens:
// 1) AddIndexes(IndexReader[]) acquires the write lock,
// then begins optimization of destination index (this is
// prior to adding any external segments).
//
// 2) Main thread starts a ConcurrentMergeScheduler.MergeThread
// to merge the 2 segments.
//
// 3) Merging thread tries to acquire the read lock at
// IndexWriter.blockAddIndexes(boolean) in
// IndexWriter.StartCommit(), but cannot as...
//
// 4) Main thread still holds the write lock, and is
// waiting for the IndexWriter.runningMerges data structure
// to be devoid of merges with their optimize flag
// set (IndexWriter.optimizeMergesPending()).
--
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]