This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 428806 - [Workbench] heap status garbage collection/computation on UI thread
Summary: [Workbench] heap status garbage collection/computation on UI thread
Status: VERIFIED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.4.2   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 4.4 M6   Edit
Assignee: Paul Webster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 307545
Blocks: 384835
  Show dependency tree
 
Reported: 2014-02-21 16:31 EST by Paul Webster CLA
Modified: 2014-03-04 10:59 EST (History)
4 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Webster CLA 2014-02-21 16:31:22 EST
Port into 4.x

+++ This bug was initially created as a clone of Bug #307545 +++

Build Identifier: 

I have had a few hangs where the UI goes to sleep because of an extensive/long running garbage collection.
Is there a specific reason why this is done on the UI thread - the HeapStatus.gc() action waits and effectively renders the UI useless. This is especially annoying since sometimes garbage collection is done to improve performance, but this only worsens the experience. 

  "main" TID:0x41E21300, j9thread_t:0x00015514, state:CW, prio=6
          (native thread ID:0xBE4, native priority:0x6, native policy:UNKNOWN)
         at java/lang/Object.wait(Native Method)
         at java/lang/Object.wait(Object.java:196(Compiled Code))
         at java/lang/Thread.join(Thread.java:652(Compiled Code))
         at java/lang/Thread.join(Thread.java:633(Compiled Code))
         at org/eclipse/ui/internal/HeapStatus$6.run(HeapStatus.java:330(Compiled Code))
         at org/eclipse/swt/custom/BusyIndicator.showWhile(BusyIndicator.java:70(Compiled Code))
         at org/eclipse/ui/internal/HeapStatus.gc(HeapStatus.java:317(Compiled Code))
         at org/eclipse/ui/internal/HeapStatus.access$18(HeapStatus.java(Compiled Code))
         at org/eclipse/ui/internal/HeapStatus$3.handleEvent(HeapStatus.java:140(Compiled Code))
         at org/eclipse/swt/widgets/EventTable.sendEvent(EventTable.java:84(Compiled Code))
         at org/eclipse/swt/widgets/Widget.sendEvent(Widget.java:1003(Compiled Code))
         at org/eclipse/swt/widgets/Display.runDeferredEvents(Display.java:3815(Compiled Code))
         at org/eclipse/swt/widgets/Display.readAndDispatch(Display.java:3417(Compiled Code))
         at org/eclipse/ui/internal/Workbench.runEventLoop(Workbench.java:2385(Compiled Code))
         at org/eclipse/ui/internal/Workbench.runUI(Workbench.java:2348)
         at org/eclipse/ui/internal/Workbench.access$4(Workbench.java:2200)
         at org/eclipse/ui/internal/Workbench$5.run(Workbench.java:495)
         at org/eclipse/core/databinding/observable/Realm.runWithDefault(Realm.java:288)
         at org/eclipse/ui/internal/Workbench.createAndRunWorkbench(Workbench.java:490)
         at org/eclipse/ui/PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
         at org/eclipse/ui/internal/ide/application/IDEApplication.start(IDEApplication.java:113)
         at org/eclipse/equinox/internal/app/EclipseAppHandle.run(EclipseAppHandle.java:193)
         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:386)
         at org/eclipse/core/runtime/adaptor/EclipseStarter.run(EclipseStarter.java:179)
         at sun/reflect/NativeMethodAccessorImpl.invoke0(Native Method)
         at sun/reflect/NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun/reflect/DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37(Compiled Code))
         at java/lang/reflect/Method.invoke(Method.java:599(Compiled Code))
         at org/eclipse/equinox/launcher/Main.invokeFramework(Main.java:549)
         at org/eclipse/equinox/launcher/Main.basicRun(Main.java:504)
         at org/eclipse/equinox/launcher/Main.run(Main.java:1236)
         at org/eclipse/equinox/launcher/Main.main(Main.java:1212)


Reproducible: Always
Comment 2 Paul Webster CLA 2014-03-04 10:59:26 EST
In 4.4.0.I20140303-2000
PW
Comment 3 Paul Webster CLA 2014-03-04 10:59:35 EST
.