[jbosstools-issues] [JBoss JIRA] (JBIDE-14356) GC overhead limit exceeded when adding fileset to LiveReload Server

Rob Stryker (JIRA) jira-events at lists.jboss.org
Thu May 16 02:51:06 EDT 2013


    [ https://issues.jboss.org/browse/JBIDE-14356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12774660#comment-12774660 ] 

Rob Stryker commented on JBIDE-14356:
-------------------------------------

Every time you type in the UI, it is fetchng what paths match that pattern. In this case, it is making an array of all 'matching' paths, which includes every file on your filesystem. Thus, it fails. 

It does not do this via a job, and it does not do this with a progress monitor, so ti cannot be canceled.  The preview is automatically refreshed. This is an API deficiency. 
                
> GC overhead limit exceeded when adding fileset to LiveReload Server
> -------------------------------------------------------------------
>
>                 Key: JBIDE-14356
>                 URL: https://issues.jboss.org/browse/JBIDE-14356
>             Project: Tools (JBoss Tools)
>          Issue Type: Feature Request
>          Components: livereload
>            Reporter: Stian Thorgersen
>            Assignee: Rob Stryker
>
> When creating a LiveReload Server and adding a fileset Eclipse hangs consuming a lot of CPU. Eventually the error message "Unhandled event loop exception / GC overhead limit exceeded" is displayed.
> From the stack trace while this is going the only interesting thread is:
> {code}
> "main" prio=10 tid=0x00007ff9a0009800 nid=0x22c2 runnable [0x00007ff9a81fe000]
>    java.lang.Thread.State: RUNNABLE
>         at org.eclipse.swt.internal.gtk.OS._gtk_main_do_event(Native Method)
>         at org.eclipse.swt.internal.gtk.OS.gtk_main_do_event(OS.java:8654)
>         at org.eclipse.swt.widgets.Display.eventProc(Display.java:1243)
>         at org.eclipse.swt.internal.gtk.OS._g_main_context_iteration(Native Method)
>         at org.eclipse.swt.internal.gtk.OS.g_main_context_iteration(OS.java:2283)
>         at org.eclipse.swt.widgets.Shell.setVisible(Shell.java:2153)
>         at org.eclipse.swt.widgets.Shell.open(Shell.java:1546)
>         at org.eclipse.jface.window.Window.open(Window.java:798)
>         at org.eclipse.ui.internal.statushandlers.InternalDialog.open(InternalDialog.java:327)
>         at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.doAddStatusAdapter(WorkbenchStatusDialogManagerImpl.java:270)
>         at org.eclipse.ui.internal.statushandlers.WorkbenchStatusDialogManagerImpl.addStatusAdapter(WorkbenchStatusDialogManagerImpl.java:197)
>         at org.eclipse.ui.statushandlers.WorkbenchStatusDialogManager.addStatusAdapter(WorkbenchStatusDialogManager.java:156)
>         at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.showStatusAdapter(WorkbenchErrorHandler.java:101)
>         at org.eclipse.ui.statushandlers.WorkbenchErrorHandler.handle(WorkbenchErrorHandler.java:57)
>         at org.eclipse.ui.internal.ide.IDEWorkbenchErrorHandler.handle(IDEWorkbenchErrorHandler.java:106)
>         at org.eclipse.ui.internal.WorkbenchErrorHandlerProxy.handle(WorkbenchErrorHandlerProxy.java:36)
>         at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:189)
>         at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:231)
>         at org.eclipse.ui.statushandlers.StatusManager.handle(StatusManager.java:242)
>         at org.eclipse.ui.application.WorkbenchAdvisor.eventLoopException(WorkbenchAdvisor.java:326)
>         at org.eclipse.ui.internal.ExceptionHandler.handleException(ExceptionHandler.java:65)
>         at org.eclipse.jface.window.Window.runEventLoop(Window.java:830)
>         at org.eclipse.jface.window.Window.open(Window.java:802)
>         at org.jboss.ide.eclipse.archives.webtools.filesets.FilesetActionProvider$1.run(FilesetActionProvider.java:202)
>         at org.eclipse.jface.action.Action.runWithEvent(Action.java:499)
>         at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
>         at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
>         at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
>         at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
>         at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
>         at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3717)
>         at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3338)
>         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1108)
>         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>         at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:992)
>         at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:137)
>         at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:600)
>         at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
>         at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:555)
>         at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
>         at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
>         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
>         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
>         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:601)
>         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
>         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
>         at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
>         at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
> {code}
> I'm running:
> * Eclipse Kepler M6 with JBoss Tools 4.1 Alpha 2
> * OpenJDK 1.7.0_21
> * Ubuntu 13.04
> To reproduce create a new LiveReload server. Expand it, right click on 'Filesets' and select 'Create New File Filter'. Then write '/' in 'Root Directory'. Observe that Eclipse now consumes ~100% cpu on all available cores. Wait for a few minutes and the error message mentioned earlier should be displayed

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jbosstools-issues mailing list