Bug 550795 - "Java indexing" runs forever in a larger workspace
Summary: "Java indexing" runs forever in a larger workspace
Status: REOPENED
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 4.13   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: JDT-Core-Inbox CLA
QA Contact:
URL:
Whiteboard: stalebug
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2019-09-05 04:38 EDT by Lars Vogel CLA
Modified: 2024-02-20 18:59 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Lars Vogel CLA 2019-09-05 04:38:45 EDT
I have a workspace with all plug-ins imported from the Eclipse top-level project.

Trying to Fetch children, seems to run forever or get stuck.

I opened org.eclipse.jface.text.source.ChangeRulerColumn and selected Open Call Hierarchy.

Most threads I see are idle, e.g. Updating index names and Setting up focus listener but the Java indexer runs my CPU hot. Hot spot according to Yourkit is Files.exists (14336 ms called from org.eclipse.jdt.internal.core.builder.ClasspathJrtWithReleaseOption.findClass(String, String, String, String, boolean, Predicate) ClasspathJrtWithReleaseOption.java:301 12692).


JStack below:

main" #1 prio=6 os_prio=0 cpu=425015,85ms elapsed=1654,40s tid=0x00007f1c741aa800 nid=0x37f3 runnable  [0x00007f1c7b0ee000]
   java.lang.Thread.State: RUNNABLE
	at org.eclipse.swt.internal.gtk.OS.$$YJP$$Call(Native Method)
	at org.eclipse.swt.internal.gtk.OS.Call(OS.java)
	at org.eclipse.swt.widgets.Display.sleep(Display.java:5433)
	at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopIdle(WorkbenchAdvisor.java:360)
	at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor.eventLoopIdle(IDEWorkbenchAdvisor.java:949)
	at org.eclipse.ui.internal.Workbench$1.eventLoopIdle(Workbench.java:481)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1165)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:633)
	at org.eclipse.ui.internal.Workbench$$Lambda$153/0x0000000801429840.run(Unknown Source)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:557)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@12.0.1/Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@12.0.1/NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@12.0.1/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@12.0.1/Method.java:567)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:660)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:597)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1468)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1441)

"Reference Handler" #2 daemon prio=10 os_prio=0 cpu=47,96ms elapsed=1654,39s tid=0x00007f1c74d33800 nid=0x37fd waiting on condition  [0x00007f1c50ed4000]
   java.lang.Thread.State: RUNNABLE
	at java.lang.ref.Reference.waitForReferencePendingList(java.base@12.0.1/Native Method)
	at java.lang.ref.Reference.processPendingReferences(java.base@12.0.1/Reference.java:241)
	at java.lang.ref.Reference$ReferenceHandler.run(java.base@12.0.1/Reference.java:213)

"Finalizer" #3 daemon prio=8 os_prio=0 cpu=36,43ms elapsed=1654,38s tid=0x00007f1c74d35800 nid=0x37fe in Object.wait()  [0x00007f1c50dd3000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@12.0.1/ReferenceQueue.java:155)
	- locked <0x000000070793bd18> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@12.0.1/ReferenceQueue.java:176)
	at java.lang.ref.Finalizer$FinalizerThread.run(java.base@12.0.1/Finalizer.java:170)

"Signal Dispatcher" #4 daemon prio=9 os_prio=0 cpu=0,35ms elapsed=1654,38s tid=0x00007f1c74d3b800 nid=0x37ff runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 cpu=187850,33ms elapsed=1654,38s tid=0x00007f1c74d3d800 nid=0x3800 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"C1 CompilerThread0" #7 daemon prio=9 os_prio=0 cpu=33099,48ms elapsed=1654,38s tid=0x00007f1c74d3f800 nid=0x3801 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE
   No compile task

"Sweeper thread" #8 daemon prio=9 os_prio=0 cpu=7774,35ms elapsed=1654,38s tid=0x00007f1c74d41800 nid=0x3802 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Common-Cleaner" #9 daemon prio=8 os_prio=0 cpu=4,06ms elapsed=1654,36s tid=0x00007f1c74d64000 nid=0x3803 in Object.wait()  [0x00007f1c508ce000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@12.0.1/ReferenceQueue.java:155)
	- locked <0x000000070793c508> (a java.lang.ref.ReferenceQueue$Lock)
	at jdk.internal.ref.CleanerImpl.run(java.base@12.0.1/CleanerImpl.java:148)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)
	at jdk.internal.misc.InnocuousThread.run(java.base@12.0.1/InnocuousThread.java:134)

"YJPAgent-Telemetry" #10 daemon prio=5 os_prio=0 cpu=1643,17ms elapsed=1654,25s tid=0x00007f1c74f67000 nid=0x3805 in Object.wait()  [0x00007f1c501aa000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at com.yourkit.runtime.TelemetryThread.run(TelemetryThread.java:621)
	- locked <0x0000000707a1a378> (a java.lang.Object)

"YJPAgent-RequestListener" #11 daemon prio=1 os_prio=0 cpu=40800,10ms elapsed=1654,25s tid=0x00007f1c74f68000 nid=0x3806 runnable  [0x00007f1c33223000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.$$YJP$$socketAccept(java.base@12.0.1/Native Method)
	at java.net.PlainSocketImpl.socketAccept(java.base@12.0.1/PlainSocketImpl.java)
	at java.net.AbstractPlainSocketImpl.accept(java.base@12.0.1/AbstractPlainSocketImpl.java:458)
	at java.net.ServerSocket.implAccept(java.base@12.0.1/ServerSocket.java:556)
	at java.net.ServerSocket.accept(java.base@12.0.1/ServerSocket.java:524)
	at com.yourkit.runtime.Core$4.run(Core.java:745)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"YJPAgent-OomeSnapshotDetector" #13 daemon prio=10 os_prio=0 cpu=12,96ms elapsed=1654,21s tid=0x00007f1c74f9a800 nid=0x3808 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"YJPAgent-CpuSampler" #14 daemon prio=10 os_prio=0 cpu=435,86ms elapsed=1654,21s tid=0x00007f1c74f9b800 nid=0x3809 runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Service Thread" #15 daemon prio=9 os_prio=0 cpu=3242,98ms elapsed=1654,19s tid=0x00007f1c74f9c000 nid=0x380a runnable  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Active Thread: Equinox Container: baa593ea-6660-4817-ba67-b7af20a7874e" #25 prio=5 os_prio=0 cpu=161,61ms elapsed=1652,38s tid=0x00007f1c75c7e800 nid=0x3864 waiting on condition  [0x00007f1bed9f5000]
   java.lang.Thread.State: TIMED_WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@12.0.1/Native Method)
	- parking to wait for  <0x0000000707c60ca8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.parkNanos(java.base@12.0.1/LockSupport.java:235)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(java.base@12.0.1/AbstractQueuedSynchronizer.java:2123)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@12.0.1/ScheduledThreadPoolExecutor.java:1182)
	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(java.base@12.0.1/ScheduledThreadPoolExecutor.java:899)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@12.0.1/ThreadPoolExecutor.java:1054)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@12.0.1/ThreadPoolExecutor.java:1114)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@12.0.1/ThreadPoolExecutor.java:628)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"Framework Event Dispatcher: Equinox Container: baa593ea-6660-4817-ba67-b7af20a7874e" #27 daemon prio=5 os_prio=0 cpu=54,31ms elapsed=1652,24s tid=0x00007f1c75d96000 nid=0x3865 in Object.wait()  [0x00007f1bed8f4000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
	- locked <0x0000000707c60e00> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

"Start Level: Equinox Container: baa593ea-6660-4817-ba67-b7af20a7874e" #28 daemon prio=5 os_prio=0 cpu=2749,74ms elapsed=1652,24s tid=0x00007f1c75d9c000 nid=0x3866 in Object.wait()  [0x00007f1bed7f3000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
	- locked <0x0000000707f00068> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

"Refresh Thread: Equinox Container: baa593ea-6660-4817-ba67-b7af20a7874e" #29 daemon prio=5 os_prio=0 cpu=404,29ms elapsed=1652,23s tid=0x00007f1c75da1800 nid=0x3867 in Object.wait()  [0x00007f1bed6f2000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
	- locked <0x0000000707d7bd90> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

"Bundle File Closer" #30 daemon prio=5 os_prio=0 cpu=71,19ms elapsed=1651,73s tid=0x00007f1c75e27800 nid=0x386b in Object.wait()  [0x00007f1becaf0000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
	- locked <0x00000007081ee0d8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

"SCR Component Actor" #31 daemon prio=5 os_prio=0 cpu=0,15ms elapsed=1650,53s tid=0x00007f1c75fa0000 nid=0x386f in Object.wait()  [0x00007f1bec6e9000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.apache.felix.scr.impl.ComponentActorThread.run(ComponentActorThread.java:83)
	- locked <0x0000000707faaa38> (a java.util.LinkedList)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"Worker-JM" #33 prio=5 os_prio=0 cpu=4,95ms elapsed=1648,69s tid=0x00007f1bd524c000 nid=0x3871 in Object.wait()  [0x00007f1bcfdfe000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:62)
	- locked <0x0000000707faac60> (a java.util.ArrayList)

"Gogo shell" #34 prio=5 os_prio=0 cpu=25,30ms elapsed=1647,46s tid=0x00007f1c764e7000 nid=0x3872 waiting on condition  [0x00007f1bcfafd000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@12.0.1/Native Method)
	- parking to wait for  <0x0000000709d40948> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(java.base@12.0.1/LockSupport.java:194)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@12.0.1/AbstractQueuedSynchronizer.java:2081)
	at java.util.concurrent.LinkedBlockingQueue.take(java.base@12.0.1/LinkedBlockingQueue.java:433)
	at java.util.concurrent.ThreadPoolExecutor.getTask(java.base@12.0.1/ThreadPoolExecutor.java:1054)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@12.0.1/ThreadPoolExecutor.java:1114)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@12.0.1/ThreadPoolExecutor.java:628)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"EMF Reference Cleaner" #39 daemon prio=6 os_prio=0 cpu=121,54ms elapsed=1645,69s tid=0x00007f1c762e8000 nid=0x387c in Object.wait()  [0x00007f1bcf9fc000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.ref.ReferenceQueue.remove(java.base@12.0.1/ReferenceQueue.java:155)
	- locked <0x000000070bb742f8> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(java.base@12.0.1/ReferenceQueue.java:176)
	at org.eclipse.emf.common.util.CommonUtil$1ReferenceClearingQueuePollingThread.run(CommonUtil.java:70)

"Java indexing" #41 daemon prio=5 os_prio=0 cpu=1559474,84ms elapsed=1637,39s tid=0x00007f1bc8f1f800 nid=0x389e runnable  [0x00007f1c33121000]
   java.lang.Thread.State: RUNNABLE
	at java.nio.file.Files.exists(java.base@12.0.1/Files.java:2524)
	at org.eclipse.jdt.internal.core.builder.ClasspathJrtWithReleaseOption.findClass(ClasspathJrtWithReleaseOption.java:301)
	at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findClass(JavaSearchNameEnvironment.java:276)
	at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findType(JavaSearchNameEnvironment.java:311)
	at org.eclipse.jdt.internal.compiler.env.IModuleAwareNameEnvironment.findType(IModuleAwareNameEnvironment.java:101)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:299)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getType(PackageBinding.java:195)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.findType(Scope.java:2020)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:3371)
	at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:3063)
	at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:57)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:514)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:624)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:620)
	at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveSuperType(TypeReference.java:592)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.findSupertype(ClassScope.java:1331)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectSuperclass(ClassScope.java:956)
	at org.eclipse.jdt.internal.compiler.lookup.ClassScope.connectTypeHierarchy(ClassScope.java:1117)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.connectTypeHierarchy(CompilationUnitScope.java:367)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.completeTypeBindings(LookupEnvironment.java:584)
	at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.accept(SourceIndexer.java:134)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:334)
	at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:276)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findImport(CompilationUnitScope.java:547)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.findSingleImport(CompilationUnitScope.java:619)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInImports(CompilationUnitScope.java:448)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.faultInTypes(CompilationUnitScope.java:521)
	at org.eclipse.jdt.internal.core.search.indexing.SourceIndexer.resolveDocument(SourceIndexer.java:174)
	at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.resolveDocument(JavaSearchParticipant.java:94)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager.indexResolvedDocument(IndexManager.java:551)
	at org.eclipse.jdt.internal.core.search.indexing.IndexManager$1.execute(IndexManager.java:1080)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.run(JobManager.java:401)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"ForkJoinPool.commonPool-worker-3" #44 daemon prio=6 os_prio=0 cpu=2,28ms elapsed=1635,88s tid=0x00007f1bc9ce0000 nid=0x38a4 waiting on condition  [0x00007f1bec3e8000]
   java.lang.Thread.State: WAITING (parking)
	at jdk.internal.misc.Unsafe.park(java.base@12.0.1/Native Method)
	- parking to wait for  <0x000000070781f440> (a java.util.concurrent.ForkJoinPool)
	at java.util.concurrent.locks.LockSupport.park(java.base@12.0.1/LockSupport.java:194)
	at java.util.concurrent.ForkJoinPool.runWorker(java.base@12.0.1/ForkJoinPool.java:1628)
	at java.util.concurrent.ForkJoinWorkerThread.run(java.base@12.0.1/ForkJoinWorkerThread.java:177)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #46 daemon prio=1 os_prio=0 cpu=7308,22ms elapsed=1628,27s tid=0x00007f1bcbd45000 nid=0x38b0 in Object.wait()  [0x00007f1c507cd000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x000000070e32d648> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jface.text.reconciler.MonoReconciler" #48 daemon prio=1 os_prio=0 cpu=122,49ms elapsed=1626,52s tid=0x00007f1bb4652000 nid=0x38b1 in Object.wait()  [0x00007f1c32804000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x000000070ebc3198> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"EventAdmin Async Event Dispatcher Thread" #49 daemon prio=6 os_prio=0 cpu=25,66ms elapsed=1624,28s tid=0x00007f1bb4c25000 nid=0x38b3 in Object.wait()  [0x00007f1bedaf6000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at java.lang.Object.wait(java.base@12.0.1/Object.java:326)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
	- locked <0x000000071061ebf0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:341)

"Worker-1: Decoration Calculation" #51 prio=5 os_prio=0 cpu=2458,98ms elapsed=1624,25s tid=0x00007f1c1007a000 nid=0x38b5 waiting on condition  [0x00007f1bb9893000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(java.base@12.0.1/Native Method)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:251)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.searchAllTypeNames(BasicSearchEngine.java:1851)
	at org.eclipse.jdt.core.search.SearchEngine.searchAllTypeNames(SearchEngine.java:1100)
	at org.eclipse.jdt.internal.ui.InterfaceIndicatorLabelDecorator.addOverlaysWithSearchEngine(InterfaceIndicatorLabelDecorator.java:185)
	at org.eclipse.jdt.internal.ui.InterfaceIndicatorLabelDecorator.addOverlays(InterfaceIndicatorLabelDecorator.java:148)
	at org.eclipse.jdt.internal.ui.InterfaceIndicatorLabelDecorator.decorate(InterfaceIndicatorLabelDecorator.java:131)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorDefinition.decorate(LightweightDecoratorDefinition.java:251)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager$LightweightRunnable.run(LightweightDecoratorManager.java:105)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.decorate(LightweightDecoratorManager.java:360)
	at org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations(LightweightDecoratorManager.java:346)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached(DecorationScheduler.java:386)
	at org.eclipse.ui.internal.decorators.DecorationScheduler$1.run(DecorationScheduler.java:362)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

"Worker-3" #53 prio=5 os_prio=0 cpu=1924,03ms elapsed=1624,21s tid=0x00007f1c44064800 nid=0x38b7 in Object.wait()  [0x00007f1bb9692000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:200)
	- locked <0x0000000708255218> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)

"YJP-Plugin-RequestListener" #65 daemon prio=1 os_prio=0 cpu=0,18ms elapsed=1623,97s tid=0x00007f1bf40a6000 nid=0x38c3 runnable  [0x00007f1bb8a86000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.$$YJP$$socketAccept(java.base@12.0.1/Native Method)
	at java.net.PlainSocketImpl.socketAccept(java.base@12.0.1/PlainSocketImpl.java)
	at java.net.AbstractPlainSocketImpl.accept(java.base@12.0.1/AbstractPlainSocketImpl.java:458)
	at java.net.ServerSocket.implAccept(java.base@12.0.1/ServerSocket.java:556)
	at java.net.ServerSocket.accept(java.base@12.0.1/ServerSocket.java:524)
	at com.yourkit.d.f.run(a:30)
	at java.lang.Thread.run(java.base@12.0.1/Thread.java:835)

"Worker-21: Fetching children of ChangeRulerColumn" #83 prio=5 os_prio=0 cpu=3937,93ms elapsed=1613,39s tid=0x00007f1c48078000 nid=0x38d6 waiting on condition  [0x00007f1ba2ffa000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
	at java.lang.Thread.sleep(java.base@12.0.1/Native Method)
	at org.eclipse.jdt.internal.core.search.processing.JobManager.performConcurrentJob(JobManager.java:251)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:234)
	at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:595)
	at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:670)
	at org.eclipse.jdt.internal.corext.callhierarchy.CallerMethodWrapper.findChildren(CallerMethodWrapper.java:155)
	at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.performSearch(MethodWrapper.java:267)
	at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.doFindChildren(MethodWrapper.java:198)
	at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.getCalls(MethodWrapper.java:89)
	at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.getCalls(DeferredMethodWrapper.java:70)
	at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.fetchDeferredChildren(DeferredMethodWrapper.java:78)
	at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:219)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)

"Worker-23" #85 prio=5 os_prio=0 cpu=922,92ms elapsed=1611,80s tid=0x00007f1c4435c800 nid=0x38d8 in Object.wait()  [0x00007f1ba2bf8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:200)
	- locked <0x0000000708255218> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #100 daemon prio=1 os_prio=0 cpu=69,38ms elapsed=1603,16s tid=0x00007f1c7535f000 nid=0x38e9 in Object.wait()  [0x00007f1ba283e000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x000000071e4ab100> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #101 daemon prio=1 os_prio=0 cpu=263,89ms elapsed=1602,94s tid=0x00007f1bca8ae000 nid=0x38eb in Object.wait()  [0x00007f1ba253d000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x000000071edb2000> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #123 daemon prio=1 os_prio=0 cpu=435,83ms elapsed=1487,94s tid=0x00007f1bb421b800 nid=0x394a in Object.wait()  [0x00007f1bb8c88000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x0000000729d7bd78> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #267 daemon prio=1 os_prio=0 cpu=421,74ms elapsed=1249,21s tid=0x00007f1bb665d000 nid=0x3a79 in Object.wait()  [0x00007f1bce3f2000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x0000000730ab2580> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"org.eclipse.jdt.internal.ui.text.JavaReconciler" #288 daemon prio=1 os_prio=0 cpu=150,73ms elapsed=921,40s tid=0x00007f1bb7c06800 nid=0x3b42 in Object.wait()  [0x00007f1becbf1000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:183)
	- locked <0x0000000743eeff60> (a org.eclipse.jface.text.reconciler.DirtyRegionQueue)

"Worker-26" #320 prio=5 os_prio=0 cpu=0,14ms elapsed=25,38s tid=0x00007f1b4787d000 nid=0x3cf2 in Object.wait()  [0x00007f1bb908c000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(java.base@12.0.1/Native Method)
	- waiting on <no object reference available>
	at org.eclipse.core.internal.jobs.WorkerPool.sleep(WorkerPool.java:200)
	- locked <0x0000000708255218> (a org.eclipse.core.internal.jobs.WorkerPool)
	at org.eclipse.core.internal.jobs.WorkerPool.startJob(WorkerPool.java:242)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)

"Attach Listener" #321 daemon prio=9 os_prio=0 cpu=0,32ms elapsed=0,10s tid=0x00007f1c28015800 nid=0x3d10 waiting on condition  [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"VM Thread" os_prio=0 cpu=10378,97ms elapsed=1654,39s tid=0x00007f1c74d30800 nid=0x37fc runnable  

"GC Thread#0" os_prio=0 cpu=3817,59ms elapsed=1654,40s tid=0x00007f1c74692000 nid=0x37f7 runnable  

"GC Thread#1" os_prio=0 cpu=3931,57ms elapsed=1653,35s tid=0x00007f1c3437d000 nid=0x385c runnable  

"GC Thread#2" os_prio=0 cpu=3939,42ms elapsed=1653,35s tid=0x00007f1c3437e000 nid=0x385d runnable  

"GC Thread#3" os_prio=0 cpu=3744,13ms elapsed=1653,35s tid=0x00007f1c3437f000 nid=0x385e runnable  

"G1 Main Marker" os_prio=0 cpu=2,10ms elapsed=1654,40s tid=0x00007f1c746aa800 nid=0x37f8 runnable  

"G1 Conc#0" os_prio=0 cpu=720,17ms elapsed=1654,40s tid=0x00007f1c746ac000 nid=0x37f9 runnable  

"G1 Refine#0" os_prio=0 cpu=71,42ms elapsed=1654,39s tid=0x00007f1c74b99800 nid=0x37fa runnable  

"G1 Refine#1" os_prio=0 cpu=6,63ms elapsed=1650,85s tid=0x00007f1c3c001800 nid=0x386c runnable  

"G1 Refine#2" os_prio=0 cpu=0,14ms elapsed=1650,85s tid=0x00007f1be4008000 nid=0x386d runnable  

"G1 Refine#3" os_prio=0 cpu=0,08ms elapsed=1650,85s tid=0x00007f1be0008800 nid=0x386e runnable  

"G1 Young RemSet Sampling" os_prio=0 cpu=556,23ms elapsed=1654,39s tid=0x00007f1c74b9b000 nid=0x37fb runnable  
"VM Periodic Task Thread" os_prio=0 cpu=605,87ms elapsed=1654,18s tid=0x00007f1c74f6a800 nid=0x3812 waiting on condition  

JNI global refs: 145, weak refs: 0
Comment 1 Lars Vogel CLA 2019-09-05 04:43:25 EDT
Looks like Finding callers is waiting for the Java index to be created and that is very slow.

How to reproduce:

Ctrl+3 -> Rebuild Java Index in a larger workspace
Comment 2 Stephan Herrmann CLA 2019-09-05 10:33:52 EDT
(In reply to Lars Vogel from comment #0)
> [...] Hot spot according to Yourkit
> is Files.exists (14336 ms called from
> org.eclipse.jdt.internal.core.builder.ClasspathJrtWithReleaseOption.
> findClass(String, String, String, String, boolean, Predicate)
> ClasspathJrtWithReleaseOption.java:301 12692).

This is due to complexity added via JEP 247, which btw. doesn't hit modular projects (in terms of JPMS).

Suggestions for a more efficient algorithm are welcome but beware that we have no specification for this part of the implementation.
Comment 3 Eclipse Genie CLA 2021-08-26 18:03:22 EDT
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.
Comment 4 Aaron Digulla CLA 2022-02-25 05:09:09 EST
Still broken with Version: 2021-12 (4.22.0)
Build id: 20211202-1639

I have several Maven projects open with about 50 modules between all of them. It's roughly 5500 source files. Indexing them all after cleaning the index takes 10+ minutes and consumes 25% on a four core CPU. All those sources compile to about 14 MB of class files.

Indexing the 150 MB of JARs on the classpath takes only about half a minute.
Comment 5 Andrey Loskutov CLA 2022-02-25 06:31:45 EST
(In reply to Aaron Digulla from comment #4)
> Still broken with Version: 2021-12 (4.22.0)
> Build id: 20211202-1639
> 
> I have several Maven projects open with about 50 modules between all of
> them. It's roughly 5500 source files. Indexing them all after cleaning the
> index takes 10+ minutes and consumes 25% on a four core CPU. All those
> sources compile to about 14 MB of class files.

Are there any errors in the log? Just in case something is broken.

It would be interesting if you could run with 4.23 RC1 build (https://download.eclipse.org/eclipse/downloads/drops4/I20220223-1800/) and check if this is still the problem in 4.23.

If yes, can you run Eclipse with profiler or visualvm and attach the sampler report? Or create few jstack dumps while Eclipse is loading CPU and attach that here.
Comment 6 Eclipse Genie CLA 2024-02-20 18:59:24 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.