This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
This started yesterday. $ NBDIST=/export/home/av202691/cnd-main/nbbuild/netbeans ./suite.sh Copying NetBeans to /var/tmp/av202691/modeltests/netbeans-copy... /export/home/av202691/cnd-main/nbbuild/netbeans/cnd3 /export/home/av202691/cnd-main/nbbuild/netbeans/ide12 /export/home/av202691/cnd-main/nbbuild/netbeans/platform11... Done Then it hangs. Nothing else is printed. There is an idle java process in memory: $ ps -ef | grep java av202691 25688 25668 99 13:08 pts/2 00:00:03 /usr/lib/jvm//sun-jdk-1.6/bin/java -enableassertions -cp :/var/tmp/av202691/modeltests/netbeans-copy/ide12/modules/org-netbeans-modules-projectuiapi.jar:/var/tmp/av202691/modeltests/netbeans-copy/ide12/modules/org-netbeans-modules-projectapi.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/lib/org-openide-util.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/lib/org-openide-util-lookup.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/modules/org-openide-nodes.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/core/org-openide-filesystems.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/modules/org-openide-loaders.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/lib/org-openide-modules.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/lib/boot.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/core/core.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/modules/org-netbeans-api-progress.jar:/var/tmp/av202691/modeltests/netbeans-copy/platform11/modules/org-netbeans-modules-queries.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-api-model.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-modelimpl.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-antlr.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-api-project.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-apt.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-repository-api.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-repository.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-utils.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-model-services.jar:/var/tmp/av202691/modeltests/netbeans-copy/cnd3/modules/org-netbeans-modules-cnd-modelutil.jar -Dparser.report.errors=true -Dcnd.cache.skip.save=true -Dcnd.repository.cache.path=/var/tmp/av202691-modeltests-repository-caches org.netbeans.modules.cnd.modelimpl.trace.TraceModel -mp src/adler32.c.ppp Its thread dump (note that pool-1-thread-1 is WAITING, but it's not a daemon): $ jstack 25688 2009-12-22 13:11:28 Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode): "Attach Listener" daemon prio=10 tid=0x0000000040cd6000 nid=0x64a3 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "DestroyJavaVM" prio=10 tid=0x00007fa9f02fc800 nid=0x645c waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "TimerQueue" daemon prio=10 tid=0x00007fa9f0298000 nid=0x647b in Object.wait() [0x00007fa9f4171000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007faa28149ba8> (a javax.swing.TimerQueue) at javax.swing.TimerQueue.run(TimerQueue.java:232) - locked <0x00007faa28149ba8> (a javax.swing.TimerQueue) at java.lang.Thread.run(Thread.java:619) "AWT-XAWT" daemon prio=10 tid=0x00007fa9f01bf000 nid=0x646d runnable [0x00007fa9f4f24000] java.lang.Thread.State: RUNNABLE at sun.awt.X11.XToolkit.waitForEvents(Native Method) at sun.awt.X11.XToolkit.run(XToolkit.java:548) at sun.awt.X11.XToolkit.run(XToolkit.java:523) at java.lang.Thread.run(Thread.java:619) "Java2D Disposer" daemon prio=10 tid=0x00007fa9f0105800 nid=0x646c in Object.wait() [0x00007fa9f57fd000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007faa282bf710> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00007faa282bf710> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at sun.java2d.Disposer.run(Disposer.java:125) at java.lang.Thread.run(Thread.java:619) "pool-1-thread-1" prio=10 tid=0x00007fa9f0120000 nid=0x646b waiting on condition [0x00007fa9f6bbc000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x00007faa28127ad0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) "Active Reference Queue Daemon" daemon prio=10 tid=0x00007fa9f010d000 nid=0x646a in Object.wait() [0x00007fa9f6cbd000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007faa280a2060> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00007faa280a2060> (a java.lang.ref.ReferenceQueue$Lock) at org.netbeans.modules.openide.util.ActiveQueue.run(ActiveQueue.java:53) at java.lang.Thread.run(Thread.java:619) "Timer-0" daemon prio=10 tid=0x00007fa9f00a9800 nid=0x6469 in Object.wait() [0x00007fa9f6dbe000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007faa2829be00> (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked <0x00007faa2829be00> (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Low Memory Detector" daemon prio=10 tid=0x00007fa9f0078800 nid=0x6467 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=10 tid=0x00007fa9f0075000 nid=0x6466 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x00007fa9f0073000 nid=0x6465 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x00007fa9f0071000 nid=0x6464 runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x00007fa9f0053800 nid=0x6463 in Object.wait() [0x00007fa9f772f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007fa9fd7af2c0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00007fa9fd7af2c0> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=10 tid=0x00007fa9f0052000 nid=0x6462 in Object.wait() [0x00007fa9f7830000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00007fa9fd7af2f8> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x00007fa9fd7af2f8> (a java.lang.ref.Reference$Lock) "VM Thread" prio=10 tid=0x00007fa9f004b000 nid=0x6461 runnable "GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000040ce0000 nid=0x645d runnable "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000040ce2000 nid=0x645e runnable "GC task thread#2 (ParallelGC)" prio=10 tid=0x0000000040ce3800 nid=0x645f runnable "GC task thread#3 (ParallelGC)" prio=10 tid=0x0000000040ce5800 nid=0x6460 runnable "VM Periodic Task Thread" prio=10 tid=0x00007fa9f007b000 nid=0x6468 waiting on condition JNI global references: 1134
Happens in our incremental build on Solaris, and I can also reproduce it locally on my Linux box.
This ThreadPoolExecutor is created by org.openide.util.lookup.MetaInfServicesLookup. It is a consequence of http://hg.netbeans.org/cnd-main/rev/2449f7d7922d recently integrated into trunk. Reverting back to RequestProcessor fixes the hang. Test case to reproduce the problem: export NBDIST=/export/home/av202691/cnd-main/nbbuild/netbeans && java -enableassertions -cp $NBDIST/ide12/modules/org-netbeans-modules-projectuiapi.jar:$NBDIST/ide12/modules/org-netbeans-modules-projectapi.jar:$NBDIST/platform11/lib/org-openide-util.jar:$NBDIST/platform11/lib/org-openide-util-lookup.jar:$NBDIST/platform11/modules/org-openide-nodes.jar:$NBDIST/platform11/core/org-openide-filesystems.jar:$NBDIST/platform11/modules/org-openide-loaders.jar:$NBDIST/platform11/lib/org-openide-modules.jar:$NBDIST/platform11/lib/boot.jar:$NBDIST/platform11/core/core.jar:$NBDIST/platform11/modules/org-netbeans-api-progress.jar:$NBDIST/platform11/modules/org-netbeans-modules-queries.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-api-model.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-modelimpl.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-antlr.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-api-project.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-apt.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-repository-api.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-repository.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-utils.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-model-services.jar:$NBDIST/cnd3/modules/org-netbeans-modules-cnd-modelutil.jar org.netbeans.modules.cnd.modelimpl.trace.TraceModel -mp PATH_TO_ANY_EXISTING_CPP_FILE
I guess that for reasons of compatibility it is better if the MetaInfLookup continues to use the RequestProcessor, if it is available.
core-main#b887bda918ff
Integrated into 'main-golden', will be available in build *200912230201* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress) Changeset: http://hg.netbeans.org/main/rev/b887bda918ff User: Jaroslav Tulach <jtulach@netbeans.org> Log: #178960: Continuing to reuse RequestProcessor, if it is around
Thanks!