jutzig / jabylon

Computer aided translation tool for java
66 stars 16 forks source link

Deadlock during index Reorg #239

Closed jutzig closed 9 years ago

jutzig commented 9 years ago

Between the property indexing job and the index reorg job there can be a deadlock

"Worker-1" prio=10 tid=0x00007f10f0c53000 nid=0x3ec8 in Object.wait() [0x00007f10e8f62000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:503)
    at org.apache.lucene.index.DocumentsWriter.waitForWaitQueue(DocumentsWriter.java:1063)
    - locked <0x000000074624f2d0> (a org.apache.lucene.index.DocumentsWriter)
    at org.apache.lucene.index.DocumentsWriter.finishDocument(DocumentsWriter.java:1050)
    - locked <0x000000074624f2d0> (a org.apache.lucene.index.DocumentsWriter)
    at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:772)
    at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:2066)
    at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:2040)
    at org.jabylon.index.properties.impl.PropertyIndex.run(PropertyIndex.java:101)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
"DefaultQuartzScheduler_Worker-10" prio=10 tid=0x000000000210f000 nid=0x3e07 waiting for monitor entry [0x00007f10ebbad000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.lucene.index.IndexWriter.deleteAll(IndexWriter.java:2927)
    - waiting to lock <0x000000074624f348> (a org.apache.lucene.index.IndexWriter)
    at org.jabylon.index.properties.jobs.impl.ReorgIndexJob.indexWorkspace(ReorgIndexJob.java:173)
    at org.jabylon.index.properties.jobs.impl.ReorgIndexJob.run(ReorgIndexJob.java:89)
    at org.jabylon.scheduler.internal.JabylonJob.execute(JabylonJob.java:79)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
    - locked <0x00000007408650d8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

compare to https://issues.apache.org/jira/browse/LUCENE-5002