[ 
https://issues.apache.org/jira/browse/LUCENE-5002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13660669#comment-13660669
 ] 

Sergiusz Urbaniak commented on LUCENE-5002:
-------------------------------------------

Simon,

No FileNotFoundExceptions what so ever. The stack trace above is "complete" 
except the crappy ejb stack forrest which is not relevant.

Again thanks for the quick reaction, we'll use deleteQuery(new 
MatchAllDocsQuery()) instead and omit the global lock.
                
> Deadlock in DocumentsWriterFlushControl
> ---------------------------------------
>
>                 Key: LUCENE-5002
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5002
>             Project: Lucene - Core
>          Issue Type: Bug
>    Affects Versions: 4.3
>         Environment: OpenJDK 64-Bit Server VM (23.7-b01 mixed mode)
> Linux Ubuntu Server 12.04 LTS 64-Bit
>            Reporter: Sergiusz Urbaniak
>            Assignee: Simon Willnauer
>             Fix For: 5.0, 4.4, 4.3.1
>
>         Attachments: LUCENE-5002.patch, LUCENE-5002_test.patch
>
>
> Hi all,
> We have an obvious deadlock between a "MaybeRefreshIndexJob" thread
> calling ReferenceManager.maybeRefresh(ReferenceManager.java:204) and a
> "RebuildIndexJob" thread calling
> IndexWriter.deleteAll(IndexWriter.java:2065).
> Lucene wants to flush in the "MaybeRefreshIndexJob" thread trying to 
> intrinsically lock the IndexWriter instance at 
> {{DocumentsWriterPerThread.java:563}} before notifyAll()ing the flush. 
> Simultaneously the "RebuildIndexJob" thread who already intrinsically locked 
> the IndexWriter instance at IndexWriter#deleteAll wait()s at 
> {{DocumentsWriterFlushControl.java:245}} for the flush forever causing a 
> deadlock.
> {code}
> "MaybeRefreshIndexJob Thread - 2" daemon prio=10 tid=0x00007f8fe4006000 
> nid=0x1ac2 waiting for monitor entry [0x00007f8fa7bf7000]
>    java.lang.Thread.State: BLOCKED (on object monitor)
>       at 
> org.apache.lucene.index.IndexWriter.useCompoundFile(IndexWriter.java:2223)
>       - waiting to lock <0x00000000f1c00438> (a 
> org.apache.lucene.index.IndexWriter)
>       at 
> org.apache.lucene.index.DocumentsWriterPerThread.sealFlushedSegment(DocumentsWriterPerThread.java:563)
>       at 
> org.apache.lucene.index.DocumentsWriterPerThread.flush(DocumentsWriterPerThread.java:533)
>       at 
> org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:422)
>       at 
> org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:559)
>       at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:365)
>       - locked <0x00000000f1c007d0> (a java.lang.Object)
>       at 
> org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:270)
>       at 
> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:245)
>       at 
> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:235)
>       at 
> org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:170)
>       at 
> org.apache.lucene.search.SearcherManager.refreshIfNeeded(SearcherManager.java:118)
>       at 
> org.apache.lucene.search.SearcherManager.refreshIfNeeded(SearcherManager.java:58)
>       at 
> org.apache.lucene.search.ReferenceManager.doMaybeRefresh(ReferenceManager.java:155)
>       at 
> org.apache.lucene.search.ReferenceManager.maybeRefresh(ReferenceManager.java:204)
>       at jobs.MaybeRefreshIndexJob.timeout(MaybeRefreshIndexJob.java:47)
> "RebuildIndexJob Thread - 1" prio=10 tid=0x00007f903000a000 nid=0x1a38 in 
> Object.wait() [0x00007f9037dd6000]
>    java.lang.Thread.State: WAITING (on object monitor)
>       at java.lang.Object.wait(Native Method)
>       - waiting on <0x00000000f1c0c240> (a 
> org.apache.lucene.index.DocumentsWriterFlushControl)
>       at java.lang.Object.wait(Object.java:503)
>       at 
> org.apache.lucene.index.DocumentsWriterFlushControl.waitForFlush(DocumentsWriterFlushControl.java:245)
>       - locked <0x00000000f1c0c240> (a 
> org.apache.lucene.index.DocumentsWriterFlushControl)
>       at 
> org.apache.lucene.index.DocumentsWriter.abort(DocumentsWriter.java:235)
>       - locked <0x00000000f1c05370> (a 
> org.apache.lucene.index.DocumentsWriter)
>       at org.apache.lucene.index.IndexWriter.deleteAll(IndexWriter.java:2065)
>       - locked <0x00000000f1c00438> (a org.apache.lucene.index.IndexWriter)
>       at jobs.RebuildIndexJob.buildIndex(RebuildIndexJob.java:102)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to