lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Sale (JIRA)" <j...@apache.org>
Subject [jira] Created: (LUCENE-1544) Deadlock: IndexWriter.addIndexes(IndexReader[])
Date Thu, 19 Feb 2009 19:22:02 GMT
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-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org


Mime
View raw message