Uploaded image for project: 'Tools (JBoss Tools)'
  1. Tools (JBoss Tools)
  2. JBIDE-24186

Eclipse workspace deadlocking during refresh/rebuild

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • 4.5.0.AM1
    • 4.4.3.Final
    • maven, server
    • None
    • Hide

      Difficult to know full steps. Here's a brief description of my workspace

      • All projects in workspace are maven based (approx 30 interdependent projects)
      • Workspace containing 5 separate JBoss EAP 6.4 servers, referencing 4 different projects
      • Some projects are war projects, but not JBoss server projects. It seems to be these projects where the build hangs.
      Show
      Difficult to know full steps. Here's a brief description of my workspace All projects in workspace are maven based (approx 30 interdependent projects) Workspace containing 5 separate JBoss EAP 6.4 servers, referencing 4 different projects Some projects are war projects, but not JBoss server projects. It seems to be these projects where the build hangs.

      • Windows 7
      • Eclipse Neon.2 (4.6.2)
      • Developer Studio 10.3.0

      After a workspace SVN update, the rebuild in Eclipse hangs (Eclipse remains responsive for a short time) with the following jobs in the progress pane:

      + "Refreshing '/my-non-j2ee-webproject/target/m2e-wtp/web-resources'"
      + Updating Maven Project (Waiting)
      + Updating Maven Project (Waiting)
      + Updating Maven Project (Waiting)
      + Updating Maven Project (Waiting)
      ....

      The project referenced above is a simple web project with no J2EE or JBoss components, nor is it referenced by any servers in the workspace.

      Profiling with yourkit detects a deadlock in the following thread:

      Worker-33 <--- Frozen for at least 8m 27s
      org.eclipse.wst.server.core.internal.Server.getModules() Server.java:2526
      org.eclipse.wst.server.core.internal.Server.visit(IModuleVisitor, IProgressMonitor) Server.java:3035
      org.eclipse.wst.server.core.internal.Server$ResourceChangeJob.run(IProgressMonitor) Server.java:228
      org.eclipse.core.internal.jobs.Worker.run() Worker.java:55

      I started profiling Yourkit when the build hung. It shows the following as the live call stack:

      Call Tree Time (ms) Level
      <All threads> 530944 1
      org.eclipse.linuxtools.internal.docker.core.DockerContainerRefreshManager$ContainerRefreshThread.run() 530086 2
      org.eclipse.equinox.launcher.Main.run(String[]) 436 2
      org.eclipse.core.internal.jobs.Worker.run() 421 2

      I've not found a workaround yet. Killing eclipse and cleaning the workspace sometimes avoids the issue. This issue does not happen in an Eclipse installation where JBoss tools has not been installed

      Eclipse remains responsive until another call to 'Server.getModules' happens. Below is the deadlock trace from when Eclipse completely hangs:

      Frozen threads found (potential deadlock)

      It seems that the following threads have not changed their stack for more than 10 seconds.
      These threads are possibly (but not necessarily!) in a deadlock or hung.

      main <--- Frozen for at least 2m 21s
      org.eclipse.wst.server.core.internal.Server.getModules() Server.java:2527
      org.jboss.ide.eclipse.as.ui.actions.ChangeTimeStampActionDelegate.getServers(IModule) ChangeTimeStampActionDelegate.java:150
      org.jboss.ide.eclipse.as.ui.actions.ChangeTimeStampActionDelegate.buildActions() ChangeTimeStampActionDelegate.java:112
      org.jboss.ide.eclipse.as.ui.actions.ChangeTimeStampActionDelegate.selectionChanged(IAction, ISelection) ChangeTimeStampActionDelegate.java:69
      org.eclipse.ui.internal.PluginAction.refreshEnablement() PluginAction.java:206
      org.eclipse.ui.internal.PluginAction.selectionChanged(ISelection) PluginAction.java:273
      org.eclipse.ui.internal.PluginAction.selectionChanged(IWorkbenchPart, ISelection) PluginAction.java:297
      org.eclipse.ui.internal.e4.compatibility.SelectionService.notifyListeners(IWorkbenchPart, ISelection, ListenerList) SelectionService.java:259
      org.eclipse.ui.internal.e4.compatibility.SelectionService.handleSelectionChanged(MPart, Object, boolean) SelectionService.java:108
      org.eclipse.ui.internal.e4.compatibility.SelectionService.access$0(SelectionService, MPart, Object, boolean) SelectionService.java:92
      org.eclipse.ui.internal.e4.compatibility.SelectionService$1.selectionChanged(MPart, Object) SelectionService.java:67
      org.eclipse.e4.ui.internal.workbench.SelectionAggregator$2.run() SelectionAggregator.java:126
      org.eclipse.core.runtime.SafeRunner.run(ISafeRunnable) SafeRunner.java:42
      org.eclipse.e4.ui.internal.workbench.SelectionAggregator.notifyListeners(MPart, Object) SelectionAggregator.java:123
      org.eclipse.e4.ui.internal.workbench.SelectionAggregator.access$6(SelectionAggregator, MPart, Object) SelectionAggregator.java:121
      org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7$1.run() SelectionAggregator.java:231
      org.eclipse.e4.core.contexts.RunAndTrack.runExternalCode(Runnable) RunAndTrack.java:56
      org.eclipse.e4.ui.internal.workbench.SelectionAggregator$7.changed(IEclipseContext) SelectionAggregator.java:228
      org.eclipse.e4.core.internal.contexts.TrackableComputationExt.update(ContextChangeEvent) TrackableComputationExt.java:114
      org.eclipse.e4.core.internal.contexts.EclipseContext.processScheduled(Set) EclipseContext.java:343
      org.eclipse.e4.core.internal.contexts.EclipseContext.set(String, Object) EclipseContext.java:358
      org.eclipse.e4.ui.internal.workbench.SelectionServiceImpl.setSelection(Object) SelectionServiceImpl.java:31
      org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.selectionChanged(SelectionChangedEvent) CompatibilityPart.java:450
      org.eclipse.jface.viewers.Viewer$1.run() Viewer.java:158
      org.eclipse.core.runtime.SafeRunner.run(ISafeRunnable) SafeRunner.java:42
      org.eclipse.ui.internal.JFaceUtil$1.run(ISafeRunnable) JFaceUtil.java:50
      org.eclipse.jface.util.SafeRunnable.run(ISafeRunnable) SafeRunnable.java:173
      org.eclipse.jface.viewers.Viewer.fireSelectionChanged(SelectionChangedEvent) Viewer.java:155
      org.eclipse.jface.viewers.StructuredViewer.updateSelection(ISelection) StructuredViewer.java:2191
      org.eclipse.jface.viewers.StructuredViewer.handleSelect(SelectionEvent) StructuredViewer.java:1229
      org.eclipse.jface.viewers.StructuredViewer$4.widgetSelected(SelectionEvent) StructuredViewer.java:1258
      org.eclipse.jface.util.OpenStrategy.fireSelectionEvent(SelectionEvent) OpenStrategy.java:242
      org.eclipse.jface.util.OpenStrategy.access$4(OpenStrategy, SelectionEvent) OpenStrategy.java:236
      org.eclipse.jface.util.OpenStrategy$1.handleEvent(Event) OpenStrategy.java:405
      org.eclipse.swt.widgets.EventTable.sendEvent(Event) EventTable.java:84
      org.eclipse.swt.widgets.Display.sendEvent(EventTable, Event) Display.java:4418
      org.eclipse.swt.widgets.Widget.sendEvent(Event) Widget.java:1079
      org.eclipse.swt.widgets.Display.runDeferredEvents() Display.java:4236
      org.eclipse.swt.widgets.Display.readAndDispatch() Display.java:3824
      org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run() PartRenderingEngine.java:1121
      org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm, Runnable) Realm.java:336
      org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(MApplicationElement, IEclipseContext) PartRenderingEngine.java:1022
      org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(MApplicationElement) E4Workbench.java:150
      org.eclipse.ui.internal.Workbench$5.run() Workbench.java:693
      org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm, Runnable) Realm.java:336
      org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Display, WorkbenchAdvisor) Workbench.java:610
      org.eclipse.ui.PlatformUI.createAndRunWorkbench(Display, WorkbenchAdvisor) PlatformUI.java:148
      org.eclipse.ui.internal.ide.application.IDEApplication.start(IApplicationContext) IDEApplication.java:138
      org.eclipse.equinox.internal.app.EclipseAppHandle.run(Object) EclipseAppHandle.java:196
      org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(Object) EclipseAppLauncher.java:134
      org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(Object) EclipseAppLauncher.java:104
      org.eclipse.core.runtime.adaptor.EclipseStarter.run(Object) EclipseStarter.java:388
      org.eclipse.core.runtime.adaptor.EclipseStarter.run(String[], Runnable) EclipseStarter.java:243
      sun.reflect.NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) NativeMethodAccessorImpl.java (native)
      sun.reflect.NativeMethodAccessorImpl.invoke(Object, Object[]) NativeMethodAccessorImpl.java:62
      sun.reflect.DelegatingMethodAccessorImpl.invoke(Object, Object[]) DelegatingMethodAccessorImpl.java:43
      java.lang.reflect.Method.invoke(Object, Object[]) Method.java:498
      org.eclipse.equinox.launcher.Main.invokeFramework(String[], URL[]) Main.java:673
      org.eclipse.equinox.launcher.Main.basicRun(String[]) Main.java:610
      org.eclipse.equinox.launcher.Main.run(String[]) Main.java:1519

      Worker-33 <--- Frozen for at least 14m 43s
      org.eclipse.wst.server.core.internal.Server.getModules() Server.java:2526
      org.eclipse.wst.server.core.internal.Server.visit(IModuleVisitor, IProgressMonitor) Server.java:3035
      org.eclipse.wst.server.core.internal.Server$ResourceChangeJob.run(IProgressMonitor) Server.java:228
      org.eclipse.core.internal.jobs.Worker.run() Worker.java:55

            rob.stryker Rob Stryker (Inactive)
            beirti.onunain Beirti O'Nunain (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: