I've started a launch group multiple times quickly and UI froze.
Jstack shows classic deadlock.
Found one Java-level deadlock:
=============================
"main":
waiting to lock monitor 0x00007f3bec096b90 (object 0x00000000873f54a0, a java.util.HashMap),
which is held by "Worker-25: Launching Many_Ants"
"Worker-25: Launching Many_Ants":
waiting to lock monitor 0x00007f3bc800af30 (object 0x00000007ff4e4a48, a java.util.HashMap),
which is held by "Worker-10: Launching Many_Ants"
"Worker-10: Launching Many_Ants":
waiting to lock monitor 0x00007f3bec096b90 (object 0x00000000873f54a0, a java.util.HashMap),
which is held by "Worker-25: Launching Many_Ants"
Java stack information for the threads listed above:
===================================================
"main":
at org.eclipse.debug.internal.core.groups.GroupLaunch.isTerminated(GroupLaunch.java:98)
- waiting to lock <0x00000000873f54a0> (a java.util.HashMap)
at org.eclipse.debug.internal.ui.actions.RemoveAllTerminatedAction.isEnabled(RemoveAllTerminatedAction.java:37)
at org.eclipse.debug.internal.ui.actions.AbstractRemoveAllActionDelegate.update(AbstractRemoveAllActionDelegate.java:93)
at org.eclipse.debug.internal.ui.actions.AbstractRemoveAllActionDelegate.init(AbstractRemoveAllActionDelegate.java:73)
at org.eclipse.ui.internal.ViewPluginAction.initDelegate(ViewPluginAction.java:52)
at org.eclipse.ui.internal.PluginAction.createDelegate(PluginAction.java:128)
at org.eclipse.ui.internal.PluginAction.selectionChanged(PluginAction.java:262)
at org.eclipse.ui.internal.PartPluginAction.registerSelectionListener(PartPluginAction.java:41)
at org.eclipse.ui.internal.ViewPluginAction.<init>(ViewPluginAction.java:38)
at org.eclipse.ui.internal.ActionDescriptor.createAction(ActionDescriptor.java:262)
at org.eclipse.ui.internal.ActionDescriptor.<init>(ActionDescriptor.java:177)
at org.eclipse.ui.internal.ViewerActionBuilder.createActionDescriptor(ViewerActionBuilder.java:49)
at org.eclipse.ui.internal.PluginActionBuilder.readElement(PluginActionBuilder.java:160)
at org.eclipse.ui.internal.ViewerActionBuilder.readElement(ViewerActionBuilder.java:81)
at org.eclipse.ui.internal.registry.RegistryReader.readElements(RegistryReader.java:123)
at org.eclipse.ui.internal.registry.RegistryReader.readElementChildren(RegistryReader.java:112)
at org.eclipse.ui.internal.PluginActionBuilder.readElement(PluginActionBuilder.java:143)
at org.eclipse.ui.internal.ViewerActionBuilder.readElement(ViewerActionBuilder.java:81)
at org.eclipse.ui.internal.registry.RegistryReader.readElements(RegistryReader.java:123)
at org.eclipse.ui.internal.registry.RegistryReader.readExtension(RegistryReader.java:133)
at org.eclipse.ui.internal.registry.RegistryReader.readRegistry(RegistryReader.java:152)
at org.eclipse.ui.internal.PluginActionBuilder.readContributions(PluginActionBuilder.java:114)
at org.eclipse.ui.internal.ViewerActionBuilder.readViewerContributions(ViewerActionBuilder.java:98)
at org.eclipse.ui.internal.PopupMenuExtender.readStaticActionsFor(PopupMenuExtender.java:491)
at org.eclipse.ui.internal.PopupMenuExtender.addMenuId(PopupMenuExtender.java:229)
at org.eclipse.ui.internal.PopupMenuExtender.<init>(PopupMenuExtender.java:149)
at org.eclipse.ui.internal.PartSite.registerContextMenu(PartSite.java:125)
at org.eclipse.ui.part.PageSite.registerContextMenu(PageSite.java:221)
at org.eclipse.ui.console.TextConsolePage.createControl(TextConsolePage.java:166)
at org.eclipse.ui.internal.console.IOConsolePage.createControl(IOConsolePage.java:59)
at org.eclipse.ui.internal.console.ConsoleView.doCreatePage(ConsoleView.java:388)
at org.eclipse.ui.part.PageBookView.createPage(PageBookView.java:369)
at org.eclipse.ui.part.PageBookView.partActivated(PageBookView.java:693)
at org.eclipse.ui.internal.console.ConsoleView.lambda$0(ConsoleView.java:479)
at org.eclipse.ui.internal.console.ConsoleView$$Lambda/0x0000000035a32e38.run(Unknown Source)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:40)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:131)
- locked <0x00000000c4efb378> (a org.eclipse.swt.widgets.RunnableLock)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:5078)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4534)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1051)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
at org.eclipse.ui.internal.Workbench$$Lambda/0x0000000035197620.run(Unknown Source)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:339)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:583)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:173)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:193)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:219)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:149)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:115)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:467)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:298)
at java.lang.invoke.DirectMethodHandle$Holder.invokeStatic(java.base@25/DirectMethodHandle$Holder)
at java.lang.invoke.LambdaForm$MH/0x000000003504f800.invoke(java.base@25/LambdaForm$MH)
at java.lang.invoke.LambdaForm$MH/0x000000003504fc00.invokeExact_MT(java.base@25/LambdaForm$MH)
at jdk.internal.reflect.DirectMethodHandleAccessor.invokeImpl(java.base@25/DirectMethodHandleAccessor.java:156)
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(java.base@25/DirectMethodHandleAccessor.java:104)
at java.lang.reflect.Method.invoke(java.base@25/Method.java:565)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:615)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:563)
at org.eclipse.equinox.launcher.Main.run(Main.java:1415)
at org.eclipse.equinox.launcher.Main.main(Main.java:1387)
"Worker-25: Launching Many_Ants":
at org.eclipse.debug.internal.core.groups.GroupLaunch.launchChanged(GroupLaunch.java:203)
- waiting to lock <0x00000007ff4e4a48> (a java.util.HashMap)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.run(LaunchManager.java:426)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.notify(LaunchManager.java:409)
at org.eclipse.debug.internal.core.LaunchManager.fireUpdate(LaunchManager.java:919)
at org.eclipse.debug.core.Launch.fireChanged(Launch.java:471)
at org.eclipse.debug.core.Launch.addProcess(Launch.java:425)
at org.eclipse.debug.internal.core.groups.GroupLaunch.launchChanged(GroupLaunch.java:218)
- locked <0x00000000873f54a0> (a java.util.HashMap)
at org.eclipse.debug.internal.core.groups.GroupLaunchConfigurationDelegate.launchChild(GroupLaunchConfigurationDelegate.java:175)
at org.eclipse.debug.internal.core.groups.GroupLaunchConfigurationDelegate.launch(GroupLaunchConfigurationDelegate.java:127)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:790)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:701)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1051)
at org.eclipse.debug.internal.ui.DebugUIPlugin$1.run(DebugUIPlugin.java:1253)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
"Worker-10: Launching Many_Ants":
at org.eclipse.debug.internal.core.groups.GroupLaunch.launchChanged(GroupLaunch.java:203)
- waiting to lock <0x00000000873f54a0> (a java.util.HashMap)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.run(LaunchManager.java:426)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:47)
at org.eclipse.debug.internal.core.LaunchManager$LaunchNotifier.notify(LaunchManager.java:409)
at org.eclipse.debug.internal.core.LaunchManager.fireUpdate(LaunchManager.java:919)
at org.eclipse.debug.core.Launch.fireChanged(Launch.java:471)
at org.eclipse.debug.core.Launch.addProcess(Launch.java:425)
at org.eclipse.debug.internal.core.groups.GroupLaunch.launchChanged(GroupLaunch.java:218)
- locked <0x00000007ff4e4a48> (a java.util.HashMap)
at org.eclipse.debug.internal.core.groups.GroupLaunchConfigurationDelegate.launchChild(GroupLaunchConfigurationDelegate.java:175)
at org.eclipse.debug.internal.core.groups.GroupLaunchConfigurationDelegate.launch(GroupLaunchConfigurationDelegate.java:127)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:790)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:701)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1051)
at org.eclipse.debug.internal.ui.DebugUIPlugin$1.run(DebugUIPlugin.java:1253)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Found 1 deadlock.
I've started a launch group multiple times quickly and UI froze.
Jstack shows classic deadlock.