lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael McCandless <luc...@mikemccandless.com>
Subject Re: I may have run into something interesting with luceneutil
Date Mon, 07 Apr 2014 11:29:35 GMT
Oh no, I could swear I changes this StatisticsHelper thread to be a
daemon thread ...

Mike McCandless

http://blog.mikemccandless.com


On Mon, Apr 7, 2014 at 6:54 AM, Dawid Weiss
<dawid.weiss@cs.put.poznan.pl> wrote:
> There is very likely a bug in the code using StatisticsHelper.java
> somewhere; the scheduler:
>
> scheduler = Executors.newSingleThreadScheduledExecutor();
>
> is started but then never cleaned up. I don't know why, but you can
> add a custom thread factory and:
>
> 1) give the thread a meaningful name,
> 2) make it a daemon thread so that the jvm can finish.
>
> Try it.
>
> D.
>
>
>
> On Mon, Apr 7, 2014 at 12:40 PM, Benson Margulies <bimargulies@gmail.com> wrote:
>> Well, it never produced any benchmark results; it is not as if it ran
>> the benchmark and then got itself stuck. When I run the same thing
>> with the 10M wikipedia, it does not get stuck.
>>
>> Does anyone else have a jumbo computer to try this on? I could try
>> adding print statements.
>>
>> On Mon, Apr 7, 2014 at 6:27 AM, Dawid Weiss
>> <dawid.weiss@cs.put.poznan.pl> wrote:
>>> Looks like an orphaned ThreadPoolExecutor thread preventing JVM exit.
>>> Hard to tell where it came from based on just the name (generic
>>> factory).
>>>
>>> D.
>>>
>>> On Mon, Apr 7, 2014 at 12:21 PM, Benson Margulies <bimargulies@gmail.com>
wrote:
>>>> ➜  util git:(trunk) ✗ jstack 75623
>>>> 2014-04-06 20:42:34
>>>> Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.21-b01 mixed mode):
>>>>
>>>> "Attach Listener" daemon prio=10 tid=0x00007f1760001000 nid=0x135cd
>>>> waiting on condition [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "DestroyJavaVM" prio=10 tid=0x00007f2cb8009800 nid=0x12768 waiting on
>>>> condition [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "pool-1-thread-1" prio=10 tid=0x00007f2cb81c1800 nid=0x12788 waiting
>>>> on condition [0x00007f175f6cc000]
>>>>    java.lang.Thread.State: WAITING (parking)
>>>> at sun.misc.Unsafe.park(Native Method)
>>>> - parking to wait for  <0x00007f18ee497038> (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:2043)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1079)
>>>> at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807)
>>>> at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1068)
>>>> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
>>>> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>>>> at java.lang.Thread.run(Thread.java:722)
>>>>
>>>> "Service Thread" daemon prio=10 tid=0x00007f2cb8119000 nid=0x12786
>>>> runnable [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "C2 CompilerThread1" daemon prio=10 tid=0x00007f2cb8117000 nid=0x12785
>>>> waiting on condition [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "C2 CompilerThread0" daemon prio=10 tid=0x00007f2cb8114000 nid=0x12784
>>>> waiting on condition [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "Signal Dispatcher" daemon prio=10 tid=0x00007f2cb8112000 nid=0x12783
>>>> runnable [0x0000000000000000]
>>>>    java.lang.Thread.State: RUNNABLE
>>>>
>>>> "Finalizer" daemon prio=10 tid=0x00007f2cb80c4800 nid=0x12782 in
>>>> Object.wait() [0x00007f17746a0000]
>>>>    java.lang.Thread.State: WAITING (on object monitor)
>>>> at java.lang.Object.wait(Native Method)
>>>> - waiting on <0x00007f18b4bd0b50> (a java.lang.ref.ReferenceQueue$Lock)
>>>> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
>>>> - locked <0x00007f18b4bd0b50> (a java.lang.ref.ReferenceQueue$Lock)
>>>> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
>>>> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:189)
>>>>
>>>> "Reference Handler" daemon prio=10 tid=0x00007f2cb80c2000 nid=0x12781
>>>> in Object.wait() [0x00007f17747a1000]
>>>>    java.lang.Thread.State: WAITING (on object monitor)
>>>> at java.lang.Object.wait(Native Method)
>>>> - waiting on <0x00007f18b4bd7738> (a java.lang.ref.Reference$Lock)
>>>> at java.lang.Object.wait(Object.java:503)
>>>> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
>>>> - locked <0x00007f18b4bd7738> (a java.lang.ref.Reference$Lock)
>>>>
>>>> "VM Thread" prio=10 tid=0x00007f2cb80ba800 nid=0x12780 runnable
>>>>
>>>> "GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f2cb8017800
>>>> nid=0x12769 runnable
>>>>
>>>> "GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f2cb8019000
>>>> nid=0x1276a runnable
>>>>
>>>> "GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f2cb801b000
>>>> nid=0x1276b runnable
>>>>
>>>> "GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f2cb801d000
>>>> nid=0x1276c runnable
>>>>
>>>> "GC task thread#4 (ParallelGC)" prio=10 tid=0x00007f2cb801e800
>>>> nid=0x1276d runnable
>>>>
>>>> "GC task thread#5 (ParallelGC)" prio=10 tid=0x00007f2cb8020800
>>>> nid=0x1276e runnable
>>>>
>>>> "GC task thread#6 (ParallelGC)" prio=10 tid=0x00007f2cb8022800
>>>> nid=0x1276f runnable
>>>>
>>>> "GC task thread#7 (ParallelGC)" prio=10 tid=0x00007f2cb8024000
>>>> nid=0x12770 runnable
>>>>
>>>> "GC task thread#8 (ParallelGC)" prio=10 tid=0x00007f2cb8026000
>>>> nid=0x12771 runnable
>>>>
>>>> "GC task thread#9 (ParallelGC)" prio=10 tid=0x00007f2cb8028000
>>>> nid=0x12772 runnable
>>>>
>>>> "GC task thread#10 (ParallelGC)" prio=10 tid=0x00007f2cb8029800
>>>> nid=0x12773 runnable
>>>>
>>>> "GC task thread#11 (ParallelGC)" prio=10 tid=0x00007f2cb802b800
>>>> nid=0x12774 runnable
>>>>
>>>> "GC task thread#12 (ParallelGC)" prio=10 tid=0x00007f2cb802d800
>>>> nid=0x12775 runnable
>>>>
>>>> "GC task thread#13 (ParallelGC)" prio=10 tid=0x00007f2cb802f000
>>>> nid=0x12776 runnable
>>>>
>>>> "GC task thread#14 (ParallelGC)" prio=10 tid=0x00007f2cb8031000
>>>> nid=0x12777 runnable
>>>>
>>>> "GC task thread#15 (ParallelGC)" prio=10 tid=0x00007f2cb8033000
>>>> nid=0x12778 runnable
>>>>
>>>> "GC task thread#16 (ParallelGC)" prio=10 tid=0x00007f2cb8035000
>>>> nid=0x12779 runnable
>>>>
>>>> "GC task thread#17 (ParallelGC)" prio=10 tid=0x00007f2cb8036800
>>>> nid=0x1277a runnable
>>>>
>>>> "GC task thread#18 (ParallelGC)" prio=10 tid=0x00007f2cb8038800
>>>> nid=0x1277b runnable
>>>>
>>>> "GC task thread#19 (ParallelGC)" prio=10 tid=0x00007f2cb803a800
>>>> nid=0x1277c runnable
>>>>
>>>> "GC task thread#20 (ParallelGC)" prio=10 tid=0x00007f2cb803c000
>>>> nid=0x1277d runnable
>>>>
>>>> "GC task thread#21 (ParallelGC)" prio=10 tid=0x00007f2cb803e000
>>>> nid=0x1277e runnable
>>>>
>>>> "GC task thread#22 (ParallelGC)" prio=10 tid=0x00007f2cb8040000
>>>> nid=0x1277f runnable
>>>>
>>>> "VM Periodic Task Thread" prio=10 tid=0x00007f2cb8124000 nid=0x12787
>>>> waiting on condition
>>>>
>>>> JNI global references: 130
>>>>
>>>> On Mon, Apr 7, 2014 at 2:50 AM, Uwe Schindler <uwe@thetaphi.de> wrote:
>>>>> Hi Benson,
>>>>>
>>>>> there must be another thread that sits on this lock:
>>>>> - parking to wait for  <0x00007f18ee497038>
>>>>> But the stack trace you have shown has nothing to do with Lucene! This
looks like one of the normal threads always waiting for some external trigger (they are used
by the garbage collector). Could this be that one: https://issues.apache.org/jira/browse/LUCENE-5573
>>>>>
>>>>> So it would be better to get the *full* stack trace of all threads.
>>>>>
>>>>> Uwe
>>>>>
>>>>> -----
>>>>> Uwe Schindler
>>>>> H.-H.-Meier-Allee 63, D-28213 Bremen
>>>>> http://www.thetaphi.de
>>>>> eMail: uwe@thetaphi.de
>>>>>
>>>>>
>>>>>> -----Original Message-----
>>>>>> From: Benson Margulies [mailto:bimargulies@gmail.com]
>>>>>> Sent: Monday, April 07, 2014 2:41 AM
>>>>>> To: dev@lucene.apache.org
>>>>>> Subject: I may have run into something interesting with luceneutil
>>>>>>
>>>>>> Or I may not.
>>>>>>
>>>>>> https://code.google.com/a/apache-
>>>>>> extras.org/p/luceneutil/wiki/AddToBuildTree?ts=1396830970&updated=Add
>>>>>> ToBuildTree
>>>>>>
>>>>>> I'm trying to learn something about direct posting format using luceneutil.
>>>>>>
>>>>>> The above-linked page is what I'm trying on a 160G multicore machine.
>>>>>>
>>>>>> Using trunk, the SearchPerfTest process seems to be stuck.
>>>>>>
>>>>>> top shows a memory size of 60g -- not even the full 80 I gave it.
>>>>>>
>>>>>> No CPU is being consumed.
>>>>>>
>>>>>> No significant I/O from iostat.
>>>>>>
>>>>>> strace shows no activity.
>>>>>>
>>>>>> jstack is completely boring except for the one thread shown below.
>>>>>>
>>>>>> Anyone got any ideas?
>>>>>>
>>>>>>
>>>>>> "pool-1-thread-1" prio=10 tid=0x00007f2cb81c1800 nid=0x12788 waiting
on
>>>>>> condition [0x00007f175f6cc000]
>>>>>>    java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native
>>>>>> Method)
>>>>>> - parking to wait for  <0x00007f18ee497038> (a
>>>>>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>>>>>> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>>>>>> at
>>>>>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.aw
>>>>>> ait(AbstractQueuedSynchronizer.java:2043)
>>>>>> at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
>>>>>> e(ScheduledThreadPoolExecutor.java:1079)
>>>>>> at
>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.tak
>>>>>> e(ScheduledThreadPoolExecutor.java:807)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1
>>>>>> 068)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.jav
>>>>>> a:1130)
>>>>>> at
>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
>>>>>> va:615)
>>>>>> at java.lang.Thread.run(Thread.java:722)
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org For additional
>>>>>> commands, e-mail: dev-help@lucene.apache.org
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>>>>> For additional commands, e-mail: dev-help@lucene.apache.org
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>>>> For additional commands, e-mail: dev-help@lucene.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>>> For additional commands, e-mail: dev-help@lucene.apache.org
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: dev-help@lucene.apache.org
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
> For additional commands, e-mail: dev-help@lucene.apache.org
>

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


Mime
View raw message