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] Updated: (LUCENE-1544) Deadlock: IndexWriter.addIndexes(IndexReader[])
Date Thu, 19 Feb 2009 19:24:02 GMT

     [ https://issues.apache.org/jira/browse/LUCENE-1544?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Doug Sale updated LUCENE-1544:
------------------------------

    Attachment: TestAddIndexes.java

JUnit test.

method/testcase that recreates deadlock: testAddIndexesByIndexReader()

> 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
>         Attachments: TestAddIndexes.java
>
>
> 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