[jbosstools-issues] [JBoss JIRA] (JBIDE-23757) Thread deadlock when starting Eclipse

Jon Kranes (JIRA) issues at jboss.org
Thu Jan 12 11:29:00 EST 2017


Jon Kranes created JBIDE-23757:
----------------------------------

             Summary: Thread deadlock when starting Eclipse
                 Key: JBIDE-23757
                 URL: https://issues.jboss.org/browse/JBIDE-23757
             Project: Tools (JBoss Tools)
          Issue Type: Feature Request
    Affects Versions: 4.4.2.Final
         Environment: MacOS Sierra, JDK 1.8.0_112
            Reporter: Jon Kranes


Steps to reproduce:

* Install latest Eclipse (Neon 4.6.2) (also tested with Spring ToolSuite 3.8.3 with same result)
* Install JBoss AS, Wildfly & EAP Server Tools from JBoss Tools 4.4.2 Final
* Add Wildfly 10.x runtime to Eclipse (tested 10.0 and 10.1 with same results)
* Add Wildfly 10.x server to Eclipse
* Create a default Maven Web App project
* Add the web app project to the Wildfly server
* Exit Eclipse and restart

Eclipse hangs on startup with a thread deadlock.  Eclipse "Progress" window shows "Registering Listeners" which never completes and blocks other Eclipse startup tasks.  At this point Eclipse cannot exit and must be force-quit.  

Thread dump output from jvisualvm shows a thread deadlock:

Found one Java-level deadlock:
=============================
"Thread-8":
  waiting to lock monitor 0x000000011fe4e758 (object 0x0000000782b7aa00, a org.eclipse.wst.server.core.internal.Server),
  which is held by "Worker-0"
"Worker-0":
  waiting to lock monitor 0x0000000101a566e8 (object 0x0000000782b7aa70, a org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager),
  which is held by "Thread-8"

Java stack information for the threads listed above:
===================================================
"Thread-8":
	at org.eclipse.wst.server.core.internal.Server.getServerNotificationManager(Server.java:1034)
	- waiting to lock <0x0000000782b7aa00> (a org.eclipse.wst.server.core.internal.Server)
	at org.eclipse.wst.server.core.internal.Server.removeServerListener(Server.java:697)
	at org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager.protectAddManagerAsListeners(UnitedServerListenerManager.java:152)
	- locked <0x0000000782b7aa70> (a org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager)
	at org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager.initializeManager(UnitedServerListenerManager.java:81)
	at org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager.access$1(UnitedServerListenerManager.java:73)
	at org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager$1.run(UnitedServerListenerManager.java:68)
"Worker-0":
	at org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager.addListener(UnitedServerListenerManager.java:109)
	- waiting to lock <0x0000000782b7aa70> (a org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager)
	at org.jboss.ide.eclipse.as.core.JBossServerCorePlugin.start(JBossServerCorePlugin.java:74)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:774)
	at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
	at java.security.AccessController.doPrivileged(Native Method)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:767)
	at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:724)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:932)
	at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:309)
	at org.eclipse.osgi.container.Module.doStart(Module.java:581)
	at org.eclipse.osgi.container.Module.start(Module.java:449)
	at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:470)
	at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:107)
	at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:529)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:325)
	at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:345)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:372)
	at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:364)
	at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:161)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:564)
	at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
	at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
	at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
	at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
	at org.eclipse.wst.server.core.internal.ServerType.createServerDelegate(ServerType.java:91)
	at org.eclipse.wst.server.core.internal.Server.getDelegate(Server.java:506)
	- locked <0x0000000782b7aa00> (a org.eclipse.wst.server.core.internal.Server)
	at org.eclipse.wst.server.core.internal.Server.getChildModules(Server.java:2634)
	at org.eclipse.wst.server.core.internal.Server.visitModule(Server.java:3058)
	at org.eclipse.wst.server.core.internal.Server.visit(Server.java:3039)
	at org.eclipse.wst.server.core.internal.Server.getAllModules(Server.java:1542)
	at org.eclipse.wst.server.ui.internal.cnf.ServersView2$3.run(ServersView2.java:189)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)

Found 1 deadlock.





--
This message was sent by Atlassian JIRA
(v7.2.3#72005)


More information about the jbosstools-issues mailing list