Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Language IDEs » Java Development Tools (JDT) » Deadlock on Eclipse start-up
Deadlock on Eclipse start-up [message #893875] Thu, 05 July 2012 18:56 Go to next message
Shahim Essaid is currently offline Shahim EssaidFriend
Messages: 40
Registered: July 2009
Member
Hi,

I am not sure if this is the correct place to post this so please feel free to direct me in the right direction if needed.

Eclipse hung on start-up today and looking at the VM in jconsole showed a possible deadlock. I killed it and did a clean restart without a problem and this is the first time this happened. I am posting this in case it is useful.

My installation:
Eclipse SDK
Version: 3.7.2
Build id: M20120208-0800
Window XP 64bit

The stack traces:
Name: main
State: BLOCKED on org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@7ed45f89 owned by: org.eclipse.jdt.internal.ui.text.JavaReconciler
Total blocked: 19  Total waited: 830

Stack trace: 
 org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoadedClass(ClasspathManager.java:477)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:456)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
org.eclipse.jdt.ui.ProblemsLabelDecorator.getErrorTicksFromMarkers(ProblemsLabelDecorator.java:248)
org.eclipse.jdt.ui.ProblemsLabelDecorator.computeAdornmentFlags(ProblemsLabelDecorator.java:188)
org.eclipse.jdt.internal.ui.viewsupport.TreeHierarchyLayoutProblemsDecorator.computeAdornmentFlags(TreeHierarchyLayoutProblemsDecorator.java:70)
org.eclipse.jdt.internal.ui.packageview.PackageExplorerProblemsDecorator.computeAdornmentFlags(PackageExplorerProblemsDecorator.java:35)
org.eclipse.jdt.ui.ProblemsLabelDecorator.decorateImage(ProblemsLabelDecorator.java:163)
org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.decorateImage(JavaUILabelProvider.java:134)
org.eclipse.jdt.internal.ui.viewsupport.JavaUILabelProvider.getImage(JavaUILabelProvider.java:149)
org.eclipse.jdt.internal.ui.packageview.PackageExplorerLabelProvider.getImage(PackageExplorerLabelProvider.java:140)
org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.getImage(DelegatingStyledCellLabelProvider.java:184)
org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.getImage(DecoratingStyledCellLabelProvider.java:167)
org.eclipse.jface.viewers.DelegatingStyledCellLabelProvider.update(DelegatingStyledCellLabelProvider.java:118)
org.eclipse.jface.viewers.DecoratingStyledCellLabelProvider.update(DecoratingStyledCellLabelProvider.java:134)
org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:152)
org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:938)
org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:106)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:1018)
org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:485)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:49)
org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:175)
org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2167)
org.eclipse.jface.viewers.AbstractTreeViewer.createTreeItem(AbstractTreeViewer.java:833)
org.eclipse.jface.viewers.AbstractTreeViewer$1.run(AbstractTreeViewer.java:808)
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:782)
org.eclipse.jface.viewers.TreeViewer.createChildren(TreeViewer.java:644)
org.eclipse.jface.viewers.AbstractTreeViewer.createChildren(AbstractTreeViewer.java:753)
org.eclipse.jface.viewers.AbstractTreeViewer.internalInitializeTree(AbstractTreeViewer.java:1533)
org.eclipse.jface.viewers.TreeViewer.internalInitializeTree(TreeViewer.java:833)
org.eclipse.jface.viewers.AbstractTreeViewer$5.run(AbstractTreeViewer.java:1517)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1443)
org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:403)
org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1404)
org.eclipse.jface.viewers.AbstractTreeViewer.inputChanged(AbstractTreeViewer.java:1510)
org.eclipse.jface.viewers.ContentViewer.setInput(ContentViewer.java:280)
org.eclipse.jface.viewers.StructuredViewer.setInput(StructuredViewer.java:1690)
org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart.createPartControl(PackageExplorerPart.java:509)
org.eclipse.ui.internal.ViewReference.createPartHelper(ViewReference.java:375)
org.eclipse.ui.internal.ViewReference.createPart(ViewReference.java:229)
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
org.eclipse.ui.internal.WorkbenchPage$ActivationList.setActive(WorkbenchPage.java:4317)
org.eclipse.ui.internal.WorkbenchPage$18.runWithException(WorkbenchPage.java:3359)
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
   - locked org.eclipse.swt.widgets.RunnableLock@7aa8be43
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
org.eclipse.ui.application.WorkbenchAdvisor.openWindows(WorkbenchAdvisor.java:803)
org.eclipse.ui.internal.Workbench$33.runWithException(Workbench.java:1600)
org.eclipse.ui.internal.StartupThreading$StartupRunnable.run(StartupThreading.java:31)
org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
   - locked org.eclipse.swt.widgets.RunnableLock@31f0fe3
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2609)
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
org.eclipse.equinox.launcher.Main.run(Main.java:1410)
org.eclipse.equinox.launcher.Main.main(Main.java:1386)


Name: org.eclipse.jdt.internal.ui.text.JavaReconciler
State: BLOCKED on org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@33e2ad75 owned by: main
Total blocked: 5  Total waited: 1

Stack trace: 
 org.eclipse.jdt.internal.ui.viewsupport.ProblemMarkerManager.resourceChanged(ProblemMarkerManager.java:126)
org.eclipse.core.internal.events.NotificationManager$1.run(NotificationManager.java:291)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285)
org.eclipse.core.internal.events.NotificationManager.broadcastChanges(NotificationManager.java:149)
org.eclipse.core.internal.resources.Workspace.broadcastPostChange(Workspace.java:395)
org.eclipse.core.internal.resources.Workspace.endOperation(Workspace.java:1530)
org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2353)
org.eclipse.debug.core.model.Breakpoint.setAttributes(Breakpoint.java:228)
org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.configureAtStartup(JavaBreakpoint.java:849)
org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.setMarker(JavaBreakpoint.java:184)
org.eclipse.debug.internal.core.BreakpointManager.createBreakpoint(BreakpointManager.java:548)
org.eclipse.debug.internal.core.BreakpointManager.loadBreakpoints(BreakpointManager.java:264)
org.eclipse.debug.internal.core.BreakpointManager.initializeBreakpoints(BreakpointManager.java:449)
org.eclipse.debug.internal.core.BreakpointManager.getBreakpoints0(BreakpointManager.java:418)
   - locked org.eclipse.debug.internal.core.BreakpointManager@34d68841
org.eclipse.debug.internal.core.BreakpointManager.start(BreakpointManager.java:408)
org.eclipse.debug.core.DebugPlugin.start(DebugPlugin.java:682)
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:711)
java.security.AccessController.doPrivileged(Native Method)
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:702)
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:683)
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:35)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:473)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
java.lang.ClassLoader.defineClass1(Native Method)
java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
java.lang.ClassLoader.defineClass(ClassLoader.java:615)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:188)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClassHoldingLock(ClasspathManager.java:626)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:608)
   - locked org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@7ed45f89
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:562)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:486)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:459)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:164)
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
org.eclipse.osgi.framework.internal.core.AbstractBundle.start(AbstractBundle.java:299)
org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:440)
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger(BundleLoader.java:268)
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:463)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:216)
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:400)
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:476)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
org.eclipse.jdt.core.JavaCore.computeClasspathContainerInitializer(JavaCore.java:2858)
org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializer(JavaCore.java:2834)
org.eclipse.jdt.internal.core.JavaModelManager.initializeContainer(JavaModelManager.java:2822)
org.eclipse.jdt.internal.core.JavaModelManager.getClasspathContainer(JavaModelManager.java:1876)
org.eclipse.jdt.core.JavaCore.getClasspathContainer(JavaCore.java:2811)
org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2689)
org.eclipse.jdt.internal.core.JavaProject.resolveClasspath(JavaProject.java:2853)
org.eclipse.jdt.internal.core.JavaProject.getResolvedClasspath(JavaProject.java:1958)
org.eclipse.jdt.internal.core.JavaProject.buildStructure(JavaProject.java:461)
org.eclipse.jdt.internal.core.Openable.generateInfos(Openable.java:258)
org.eclipse.jdt.internal.core.JavaElement.openWhenClosed(JavaElement.java:518)
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:255)
org.eclipse.jdt.internal.core.JavaElement.getElementInfo(JavaElement.java:241)
org.eclipse.jdt.internal.core.JavaProject.getJavaProjectElementInfo(JavaProject.java:1638)
org.eclipse.jdt.internal.core.JavaProject.newNameLookup(JavaProject.java:2325)
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:59)
org.eclipse.jdt.internal.core.SearchableEnvironment.<init>(SearchableEnvironment.java:66)
org.eclipse.jdt.internal.core.CancelableNameEnvironment.<init>(CancelableNameEnvironment.java:26)
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:176)
org.eclipse.jdt.internal.core.CompilationUnitProblemFinder.process(CompilationUnitProblemFinder.java:269)
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.makeConsistent(ReconcileWorkingCopyOperation.java:190)
org.eclipse.jdt.internal.core.ReconcileWorkingCopyOperation.executeOperation(ReconcileWorkingCopyOperation.java:89)
org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:728)
org.eclipse.jdt.internal.core.JavaModelOperation.runOperation(JavaModelOperation.java:788)
org.eclipse.jdt.internal.core.CompilationUnit.reconcile(CompilationUnit.java:1244)
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:126)
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.access$0(JavaReconcilingStrategy.java:108)
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy$1.run(JavaReconcilingStrategy.java:89)
org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.reconcile(JavaReconcilingStrategy.java:87)
org.eclipse.jdt.internal.ui.text.java.JavaReconcilingStrategy.initialReconcile(JavaReconcilingStrategy.java:178)
org.eclipse.jdt.internal.ui.text.CompositeReconcilingStrategy.initialReconcile(CompositeReconcilingStrategy.java:114)
org.eclipse.jdt.internal.ui.text.JavaCompositeReconcilingStrategy.initialReconcile(JavaCompositeReconcilingStrategy.java:136)
org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:105)
org.eclipse.jdt.internal.ui.text.JavaReconciler.initialProcess(JavaReconciler.java:406)
   - locked java.lang.Object@708b7e80
org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:173)

Re: Deadlock on Eclipse start-up [message #893879 is a reply to message #893875] Thu, 05 July 2012 19:16 Go to previous message
Stephan Herrmann is currently offline Stephan HerrmannFriend
Messages: 1853
Registered: July 2009
Senior Member
Generally, this could be caused by some kind of circular plug-in dependencies, which cause grief on JVMs <= 6 but starting with version 7 the JVM should be better able to handle this. At this level we are talking about how Equinox [1] orchestrates loading of plug-ins and classes.

From the stack traces the relevant plug-ins seem to be JDT/Core, JDT/Debug and JDT/UI, which is a very common combination so I'd be surprised if just these three can create a deadlock. So the Equinox folks may need to know whether you have any non-standard plug-ins that might be involved.

Unfortunately, we don't see where the lock on DefaultClassLoader@33e2ad75 is held. So maybe the stack trace is insufficient for exhaustive analysis.

If it occurs again you might also take more than one stack dump with some time in between.

After all, upgrading to Java7 might avoid this to happen again.

best,
Stephan

[1] http://www.eclipse.org/forums/index.php/f/31/
Previous Topic:JDT formatter option: closing parenthesis on a new line?
Next Topic:change modifier of a variable
Goto Forum:
  


Current Time: Thu Sep 26 14:56:31 GMT 2024

Powered by FUDForum. Page generated in 0.04307 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top