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: java-dev-unsubscr...@lucene.apache.org For additional commands, e-mail: java-dev-h...@lucene.apache.org