Well, in the same processes I am using a jdbc connection to get all the
relative paths to the documents I want to index, then I parse the documents
to plain text using tones of open source libraries like POI, PFDBox
etc.(which might account for java2d) then I add them to the index and commit
every 2000 documents.

I write a db row for each row I index so I can resume where I left off after
a crash or exception. My app will happily index for hours then after it
hangs, the resumed indexing run will only last a few additional minutes! The
thread dumps look the same.

Cheers.


ryantxu wrote:
> 
> do you have anything custom going on?
> 
> The fact that the lock is in java2d seems suspicious...
> 
> 
> On Sep 23, 2009, at 7:01 PM, pof wrote:
> 
>>
>> I had the same problem again yesterday except the process halted  
>> after about
>> 20mins this time.
>>
>>
>> pof wrote:
>>>
>>> Hello, I was running a batch index the other day using the Solrj
>>> EmbeddedSolrServer when the process abruptly froze in it's tracks  
>>> after
>>> running for about 4-5 hours and indexing ~400K documents. There  
>>> were no
>>> document locks so it would seem likely that there was some kind of  
>>> thread
>>> deadlock. I was hoping someone might be able to tell me some  
>>> information
>>> about the following thread dump taken at the time:
>>>
>>> Full thread dump OpenJDK Client VM (1.6.0-b09 mixed mode):
>>>
>>> "DestroyJavaVM" prio=10 tid=0x9322a800 nid=0xcef waiting on condition
>>> [0x00000000..0x0018a044]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "Java2D Disposer" daemon prio=10 tid=0x0a28cc00 nid=0xf1c in  
>>> Object.wait()
>>> [0x0311d000..0x0311def4]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0x97a96840> (a java.lang.ref.ReferenceQueue 
>>> $Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java: 
>>> 133)
>>>        - locked <0x97a96840> (a java.lang.ref.ReferenceQueue$Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java: 
>>> 149)
>>>        at sun.java2d.Disposer.run(Disposer.java:143)
>>>        at java.lang.Thread.run(Thread.java:636)
>>>
>>> "pool-1-thread-1" prio=10 tid=0x93a26c00 nid=0xcf7 waiting on  
>>> condition
>>> [0x08a6a000..0x08a6b074]
>>>   java.lang.Thread.State: WAITING (parking)
>>>        at sun.misc.Unsafe.park(Native Method)
>>>        - parking to wait for  <0x967acfd0> (a
>>> java.util.concurrent.locks.AbstractQueuedSynchronizer 
>>> $ConditionObject)
>>>        at
>>> java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>>>        at
>>> java.util.concurrent.locks.AbstractQueuedSynchronizer 
>>> $ConditionObject.await(AbstractQueuedSynchronizer.java:1978)
>>>        at
>>> java 
>>> .util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java: 
>>> 386)
>>>        at
>>> java 
>>> .util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java: 
>>> 1043)
>>>        at
>>> java 
>>> .util 
>>> .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java: 
>>> 1103)
>>>        at
>>> java.util.concurrent.ThreadPoolExecutor 
>>> $Worker.run(ThreadPoolExecutor.java:603)
>>>        at java.lang.Thread.run(Thread.java:636)
>>>
>>> "Low Memory Detector" daemon prio=10 tid=0x93a00c00 nid=0xcf5  
>>> runnable
>>> [0x00000000..0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "CompilerThread0" daemon prio=10 tid=0x09fe9800 nid=0xcf4 waiting on
>>> condition [0x00000000..0x096a7af4]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "Signal Dispatcher" daemon prio=10 tid=0x09fe8800 nid=0xcf3 waiting  
>>> on
>>> condition [0x00000000..0x00000000]
>>>   java.lang.Thread.State: RUNNABLE
>>>
>>> "Finalizer" daemon prio=10 tid=0x09fd7000 nid=0xcf2 in Object.wait()
>>> [0x005ca000..0x005caef4]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0x966e6d40> (a java.lang.ref.ReferenceQueue 
>>> $Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java: 
>>> 133)
>>>        - locked <0x966e6d40> (a java.lang.ref.ReferenceQueue$Lock)
>>>        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java: 
>>> 149)
>>>        at java.lang.ref.Finalizer 
>>> $FinalizerThread.run(Finalizer.java:177)
>>>
>>> "Reference Handler" daemon prio=10 tid=0x09fd2c00 nid=0xcf1 in
>>> Object.wait() [0x00579000..0x00579d74]
>>>   java.lang.Thread.State: WAITING (on object monitor)
>>>        at java.lang.Object.wait(Native Method)
>>>        - waiting on <0x966e6dc8> (a java.lang.ref.Reference$Lock)
>>>        at java.lang.Object.wait(Object.java:502)
>>>        at
>>> java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
>>>        - locked <0x966e6dc8> (a java.lang.ref.Reference$Lock)
>>>
>>> "VM Thread" prio=10 tid=0x09fcf800 nid=0xcf0 runnable
>>>
>>> "VM Periodic Task Thread" prio=10 tid=0x93a02400 nid=0xcf6 waiting on
>>> condition
>>>
>>> JNI global references: 1072
>>>
>>> Heap
>>> def new generation   total 36288K, used 23695K [0x93f10000,  
>>> 0x96670000,
>>> 0x96670000)
>>>  eden space 32256K,  73% used [0x93f10000, 0x95633f60, 0x95e90000)
>>>  from space 4032K,   0% used [0x95e90000, 0x95e90000, 0x96280000)
>>>  to   space 4032K,   0% used [0x96280000, 0x96280000, 0x96670000)
>>> tenured generation   total 483968K, used 72129K [0x96670000,  
>>> 0xb3f10000,
>>> 0xb3f10000)
>>>   the space 483968K,  14% used [0x96670000, 0x9ace04b8, 0x9ace0600,
>>> 0xb3f10000)
>>> compacting perm gen  total 23040K, used 22983K [0xb3f10000,  
>>> 0xb5590000,
>>> 0xb7f10000)
>>>   the space 23040K,  99% used [0xb3f10000, 0xb5581ff8, 0xb5582000,
>>> 0xb5590000)
>>> No shared spaces configured.
>>>
>>> Cheers. Brett.
>>>
>>
>> -- 
>> View this message in context:
>> http://www.nabble.com/Solrj-possible-deadlock-tp25530146p25531321.html
>> Sent from the Solr - User mailing list archive at Nabble.com.
>>
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Solrj-possible-deadlock-tp25530146p25604919.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to