Open ekupcik opened 2 years ago
I got the deadlock today, too.
The error message was:
While loading class "org.eclipse.buildship.core.internal.preferences.PersistentModelConverter$15", thread "Thread[Worker-14: Load persistent model for all projects,5,main]" timed out waiting (30029ms) for thread "Thread[main,6,main]" to finish starting bundle "org.eclipse.buildship.core_3.1.6.v20220511-1359 [67]". To avoid deadlock, thread "Thread[Worker-14: Load persistent model for all projects,5,main]" is proceeding but "org.eclipse.buildship.core.internal.preferences.PersistentModelConverter$15" may not be fully initialized.
My Eclipse installation info is:
eclipse.buildId=4.24.0.I20220607-0700 java.version=17.0.3 java.vendor=Eclipse Adoptium BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE Framework arguments: -product org.eclipse.epp.package.dsl.product Command-line arguments: -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.dsl.product
Created Time: 2022-08-12 07:36:35.887
I'm seeing this consistently when starting up Eclipse.
eclipse.buildId=4.24.0.I20220607-0700 java.version=15.0.1 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US Framework arguments: -product org.eclipse.epp.package.java.product Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.java.product
Buildship version is 3.1.6.v20220511-1359
Error message: While loading class "org.eclipse.buildship.core.internal.preferences.PersistentModelConverter", thread "Thread[Worker-2: Load persistent model for all projects,5,main]" timed out waiting (30057ms) for thread "Thread[Worker-6: Processing Java changes since last activation,5,main]" to finish starting bundle "org.eclipse.buildship.core_3.1.6.v20220511-1359 [1259]". To avoid deadlock, thread "Thread[Worker-2: Load persistent model for all projects,5,main]" is proceeding but "org.eclipse.buildship.core.internal.preferences.PersistentModelConverter" may not be fully initialized.
Attaching output of "jstack -l". jstack.txt
Same error as @zcronix, but during jdtls startup.
Same error in JDTLS startup. This issue can be easily reproduce when a project setting changed:
redhat.java
extension verison 1.12.2022102504
(newest pre-release)java.compile.nullAnalysis.nonnull
and java.compile.nullAnalysis.nullable
to empty array. (The default value of them are some null analysis types), this step will
IJavaProject.setOptions()
to update the project compiler optionsResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD);
typical error stack:
!ENTRY org.eclipse.osgi 2 0 2022-10-25 16:41:10.810
!MESSAGE While loading class "org.eclipse.buildship.core.internal.util.gradle.PublishedGradleVersions$LookupStrategy", thread "Thread[Worker-1: Loading available Gradle versions,5,main]" timed out waiting (30016ms) for thread "Thread[Worker-0: Synchronizing projects,5,main]" to finish starting bundle "org.eclipse.buildship.core_3.1.6.v20220511-1359 [16]". To avoid deadlock, thread "Thread[Worker-1: Loading available Gradle versions,5,main]" is proceeding but "org.eclipse.buildship.core.internal.util.gradle.PublishedGradleVersions$LookupStrategy" may not be fully initialized.
!STACK 0
org.osgi.framework.BundleException: Unable to acquire the state change lock for the module: osgi.identity; type="osgi.bundle"; version:Version="3.1.6.v20220511-1359"; osgi.identity="org.eclipse.buildship.core"; singleton:="true" [id=16] STARTED [STARTED]
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:350)
at org.eclipse.osgi.container.Module.start(Module.java:419)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
at org.eclipse.buildship.core.internal.util.gradle.PublishedGradleVersionsWrapper$LoadVersionsJob.run(PublishedGradleVersionsWrapper.java:60)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: java.util.concurrent.TimeoutException: Timeout after waiting 30 seconds to acquire the lock.
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:347)
... 12 more
Caused by: org.eclipse.osgi.framework.util.ThreadInfoReport: Thread dump
and
ThreadId: 37 ThreadName: Worker-2: Load persistent model for all projects ThreadState: TIMED_WAITING
Blocked On: java.util.concurrent.locks.ReentrantLock$NonfairSync@4cd4e723 LockOwnerId: 31 LockOwnerName: Worker-0: Synchronizing projects
Synchronizers Locked: none
Monitors Locked:
java.lang.Object@627b23b6
com.google.common.cache.LocalCache$StrongEntry@61d61160
Stack Trace:
java.base@17.0.4/jdk.internal.misc.Unsafe.park(Native Method)
java.base@17.0.4/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:252)
java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:717)
java.base@17.0.4/java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:986)
java.base@17.0.4/java.util.concurrent.locks.ReentrantLock$Sync.tryLockNanos(ReentrantLock.java:168)
java.base@17.0.4/java.util.concurrent.locks.ReentrantLock.tryLock(ReentrantLock.java:479)
org.eclipse.osgi.container.Module.lockStateChange(Module.java:309)
org.eclipse.osgi.container.Module.start(Module.java:419)
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
java.base@17.0.4/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence.doLoadModel(DefaultModelPersistence.java:130)
org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:62)
org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:57)
com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3529)
com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2278)
com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2155)
com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2045)
com.google.common.cache.LocalCache.get(LocalCache.java:3951)
com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3974)
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4935)
org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$2.run(DefaultModelPersistence.java:193)
org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
I'm also seeing an occasional deadlock with Buildship involved when I start Eclipse:
Found one Java-level deadlock:
=============================
"main":
waiting for ownable synchronizer 0x0000000080955cb0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler"
"org.eclipse.jdt.internal.ui.text.JavaReconciler":
waiting to lock monitor 0x00006000024a0340 (object 0x0000000083300178, a java.lang.Object),
which is held by "Worker-6: Load persistent model for all projects"
"Worker-6: Load persistent model for all projects":
waiting for ownable synchronizer 0x0000000080955cb0, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "org.eclipse.jdt.internal.ui.text.JavaReconciler"
Java stack information for the threads listed above:
===================================================
"main":
at jdk.internal.misc.Unsafe.park(java.base@18-beta/Native Method)
- parking to wait for <0x0000000080955cb0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@18-beta/LockSupport.java:252)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@18-beta/AbstractQueuedSynchronizer.java:717)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(java.base@18-beta/AbstractQueuedSynchronizer.java:986)
at java.util.concurrent.locks.ReentrantLock$Sync.tryLockNanos(java.base@18-beta/ReentrantLock.java:168)
at java.util.concurrent.locks.ReentrantLock.tryLock(java.base@18-beta/ReentrantLock.java:479)
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:309)
at org.eclipse.osgi.container.Module.start(Module.java:419)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.sources.SingleSourcePackage.loadClass(SingleSourcePackage.java:41)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:496)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.lang.ClassLoader.loadClass(java.base@18-beta/ClassLoader.java:521)
at java.lang.Class.getDeclaredConstructors0(java.base@18-beta/Native Method)
at java.lang.Class.privateGetDeclaredConstructors(java.base@18-beta/Class.java:3405)
at java.lang.Class.getConstructor0(java.base@18-beta/Class.java:3610)
at java.lang.Class.getConstructor(java.base@18-beta/Class.java:2303)
at org.eclipse.osgi.internal.framework.BundleContextImpl.loadBundleActivator(BundleContextImpl.java:801)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:753)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.lang.ClassLoader.loadClass(java.base@18-beta/ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:920)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.jdt.internal.ui.filters.FilterDescriptor$1.run(FilterDescriptor.java:142)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jdt.internal.ui.filters.FilterDescriptor.createViewerFilter(FilterDescriptor.java:146)
at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup$FilterItem.getFilterInstance(CustomFiltersActionGroup.java:190)
at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.updateViewerFilters(CustomFiltersActionGroup.java:514)
at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.<init>(CustomFiltersActionGroup.java:277)
at org.eclipse.jdt.ui.actions.CustomFiltersActionGroup.<init>(CustomFiltersActionGroup.java:244)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerActionGroup.<init>(PackageExplorerActionGroup.java:145)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.makeActions(PackageExplorerPart.java:796)
at org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl(PackageExplorerPart.java:516)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.createPartControl(CompatibilityPart.java:158)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityView.createPartControl(CompatibilityView.java:155)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:365)
at java.lang.invoke.LambdaForm$DMH/0x0000000800e49400.invokeVirtual(java.base@18-beta/LambdaForm$DMH)
at java.lang.invoke.LambdaForm$MH/0x0000000800cb6400.invoke(java.base@18-beta/LambdaForm$MH)
at java.lang.invoke.Invokers$Holder.invokeExact_MT(java.base@18-beta/Invokers$Holder)
at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@18-beta/DirectMethodHandleAccessor.java:154)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@18-beta/DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke(java.base@18-beta/Method.java:577)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:987)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:952)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:141)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:395)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:322)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$1.run(PartRenderingEngine.java:544)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:528)
at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.createWidget(ElementReferenceRenderer.java:73)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:995)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:659)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:763)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:728)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:712)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.lambda$0(PartServiceImpl.java:110)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$$Lambda$331/0x0000000800ff7570.handleEvent(Unknown Source)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$$Lambda$271/0x0000000800ff1870.run(Unknown Source)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:183)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:133)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:5250)
at org.eclipse.e4.ui.workbench.swt.DisplayUISynchronize.syncExec(DisplayUISynchronize.java:34)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:133)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.lambda$27(StackRenderer.java:1110)
at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer$$Lambda$356/0x00000008010da0d8.accept(Unknown Source)
at org.eclipse.swt.events.SelectionListener$1.widgetSelected(SelectionListener.java:84)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4646)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3253)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1892)
at org.eclipse.swt.custom.CTabFolder.lambda$0(CTabFolder.java:332)
at org.eclipse.swt.custom.CTabFolder$$Lambda$347/0x00000008010d6bb0.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4646)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1524)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1547)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1532)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1325)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4413)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3989)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1155)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1046)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:643)
at org.eclipse.ui.internal.Workbench$$Lambda$187/0x0000000800e176e8.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:550)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:171)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:152)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:136)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:402)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
at java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@18-beta/DirectMethodHandle$Holder)
at java.lang.invoke.LambdaForm$MH/0x0000000800c07800.invoke(java.base@18-beta/LambdaForm$MH)
at java.lang.invoke.LambdaForm$MH/0x0000000800c07c00.invokeExact_MT(java.base@18-beta/LambdaForm$MH)
at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@18-beta/DirectMethodHandleAccessor.java:156)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@18-beta/DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke(java.base@18-beta/Method.java:577)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:659)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:596)
at org.eclipse.equinox.launcher.Main.run(Main.java:1467)
"org.eclipse.jdt.internal.ui.text.JavaReconciler":
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:62)
- waiting to lock <0x0000000083300178> (a java.lang.Object)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:57)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
- locked <0x0000000083300270> (a com.google.common.cache.LocalCache$StrongEntry)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4956)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence.loadModel(DefaultModelPersistence.java:70)
at org.eclipse.buildship.core.internal.CorePlugin.scheduleSynchronizationForAbsentModels(CorePlugin.java:223)
at org.eclipse.buildship.core.internal.CorePlugin.start(CorePlugin.java:120)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:818)
at org.eclipse.osgi.internal.framework.BundleContextImpl$2.run(BundleContextImpl.java:1)
at java.security.AccessController.executePrivileged(java.base@18-beta/AccessController.java:807)
at java.security.AccessController.doPrivileged(java.base@18-beta/AccessController.java:569)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:810)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:767)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1032)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:371)
at org.eclipse.osgi.container.Module.doStart(Module.java:605)
at org.eclipse.osgi.container.Module.start(Module.java:468)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.lang.ClassLoader.loadClass(java.base@18-beta/ClassLoader.java:521)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:622)
at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:196)
at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:920)
at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:246)
at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:63)
at org.eclipse.jdt.core.JavaCore.computeClasspathContainerInitializer(JavaCore.java:3868)
at org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializer(JavaCore.java:3844)
at org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:3127)
at org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:2094)
at org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:3821)
at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3271)
at org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:3435)
at org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:2554)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.isTestSource(CompilationUnitProblemFinder.java:218)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:255)
at org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:348)
at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:193)
at org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:94)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:740)
at org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:806)
at org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1325)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:132)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:94)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:91)
at org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:189)
at org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:125)
at org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:139)
at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:100)
at org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:421)
- locked <0x000000008b943210> (a java.lang.Object)
at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:177)
"Worker-6: Load persistent model for all projects":
at jdk.internal.misc.Unsafe.park(java.base@18-beta/Native Method)
- parking to wait for <0x0000000080955cb0> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.parkNanos(java.base@18-beta/LockSupport.java:252)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@18-beta/AbstractQueuedSynchronizer.java:717)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(java.base@18-beta/AbstractQueuedSynchronizer.java:986)
at java.util.concurrent.locks.ReentrantLock$Sync.tryLockNanos(java.base@18-beta/ReentrantLock.java:168)
at java.util.concurrent.locks.ReentrantLock.tryLock(java.base@18-beta/ReentrantLock.java:479)
at org.eclipse.osgi.container.Module.lockStateChange(Module.java:309)
at org.eclipse.osgi.container.Module.start(Module.java:419)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:513)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:117)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:570)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:335)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:397)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass0(BundleLoader.java:500)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:416)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:168)
at java.lang.ClassLoader.loadClass(java.base@18-beta/ClassLoader.java:521)
at org.eclipse.buildship.core.internal.preferences.PersistentModelConverter.toModel(PersistentModelConverter.java:135)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence.doLoadModel(DefaultModelPersistence.java:130)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence.access$100(DefaultModelPersistence.java:51)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:62)
- locked <0x0000000083300178> (a java.lang.Object)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$1.load(DefaultModelPersistence.java:57)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3533)
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2282)
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2159)
- locked <0x0000000087b21fb0> (a com.google.common.cache.LocalCache$StrongEntry)
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2049)
at com.google.common.cache.LocalCache.get(LocalCache.java:3966)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3989)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4950)
at org.eclipse.buildship.core.internal.preferences.DefaultModelPersistence$2.run(DefaultModelPersistence.java:193)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Found 1 deadlock.
Expected Behavior
Eclipse should start up with no lock-ups.
Current Behavior
While the fix from #1148 has really improved the hanging during the start it can still happen once in a while. For me it was like 2-3 times since the release of 2022-06 / 3.1.16 but according to some colleagues it still happens for them quite often.
Steps to Reproduce
Start eclipse with a gradle based project and hope it happens. For me it was something like every 40-50th time I started eclipse. Compared to something like every 10th time before the fix from #1148
Your Environment
eclipse-jstack.txt eclipse-config.txt eclipse-errorlog.txt