Bug 457102 - [platform] UI freeze of 57s in org.eclipse.swt.internal.win32.OS.PeekMessageW
Summary: [platform] UI freeze of 57s in org.eclipse.swt.internal.win32.OS.PeekMessageW
Status: UNCONFIRMED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 4.5   Edit
Hardware: All Windows All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 457101 (view as bug list)
Depends on:
Blocks:
 
Reported: 2015-01-09 01:25 EST by EPP Error Reports CLA
Modified: 2019-02-27 01:37 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-01-09 01:25:08 EST
The following incident was reported via the automated error reporting:


    code:                   0
    plugin:                 org.eclipse.ui.monitoring_1.0.0.v20141021-2031
    message:                UI freeze of 57s at 13:15:08.969
    fingerprint:            de6aa106
    exception class:        org.eclipse.recommenders.internal.stacktraces.rcp.StandInStacktraceProvider$StandInException
    exception message:      Stand-In Stacktrace supplied by Eclipse Stacktraces & Error Reporting Tool
    number of children:     1
    
    org.eclipse.recommenders.internal.stacktraces.rcp.StandInStacktraceProvider$StandInException: Stand-In Stacktrace supplied by Eclipse Stacktraces & Error Reporting Tool
    at org.eclipse.ui.internal.monitoring.DefaultUiFreezeEventLogger.log(DefaultUiFreezeEventLogger.java:94)
    at org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.logEvent(EventLoopMonitorThread.java:743)
    at org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.run(EventLoopMonitorThread.java:607)
   

---   

      code:                   0
      plugin:                 org.eclipse.ui.monitoring_1.0.0.v20141021-2031
      message:                Sample at 13:16:07.042 (+58.073s)
Thread 'main' tid=1 (RUNNABLE)
      fingerprint:            22f918cf
      exception class:        java.lang.Exception
      exception message:      Stack Trace
      number of children:     2
    
    java.lang.Exception: Stack Trace
    at org.eclipse.swt.internal.win32.OS.PeekMessageW(OS.java:-2)
    at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756)
    at org.eclipse.jface.window.Window.runEventLoop(Window.java:827)
    at org.eclipse.jface.window.Window.open(Window.java:803)
    at org.eclipse.jface.dialogs.MessageDialog.open(MessageDialog.java:330)
    at org.eclipse.jface.dialogs.MessageDialogWithToggle.open(MessageDialogWithToggle.java:114)
    at org.eclipse.jface.dialogs.MessageDialogWithToggle.openOkCancelConfirm(MessageDialogWithToggle.java:209)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchWindowAdvisor.promptOnExit(IDEWorkbenchWindowAdvisor.java:211)
    at org.eclipse.ui.internal.ide.application.IDEWorkbenchAdvisor$1.handleEvent(IDEWorkbenchAdvisor.java:166)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4346)
    at org.eclipse.swt.widgets.Display.messageProc(Display.java:3305)
    at org.eclipse.swt.internal.win32.OS.DefWindowProcW(OS.java:-2)
    at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2544)
    at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:498)
    at org.eclipse.swt.widgets.Control.windowProc(Control.java:4725)
    at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:339)
    at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1626)
    at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2083)
    at org.eclipse.swt.widgets.Display.windowProc(Display.java:5050)
    at org.eclipse.swt.internal.win32.OS.PeekMessageW(OS.java:-2)
    at org.eclipse.swt.internal.win32.OS.PeekMessage(OS.java:3141)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3756)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
    at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
    at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:638)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:582)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
    at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(null:-2)
    at sun.reflect.NativeMethodAccessorImpl.invoke(null:-1)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(null:-1)
    at java.lang.reflect.Method.invoke(null:-1)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
   

---   

        code:                   0
        plugin:                 org.eclipse.ui.monitoring_1.0.0.v20141021-2031
        message:                Thread 'org.eclipse.jdt.internal.ui.text.JavaReconciler' tid=31 (TIMED_WAITING)
Waiting for: org.eclipse.jface.text.reconciler.DirtyRegionQueue@01a5cfd3
        fingerprint:            aef3c7d6
        exception class:        java.lang.Exception
        exception message:      Stack Trace
        number of children:     0
    
    java.lang.Exception: Stack Trace
    at java.lang.Object.wait(null:-2)
    at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:179)
   

---   

        code:                   0
        plugin:                 org.eclipse.ui.monitoring_1.0.0.v20141021-2031
        message:                Thread 'Active Thread: Equinox Container: 80a193fa-0497-0014-1330-e5758bd6e664' tid=9 (TIMED_WAITING)
Waiting for: java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@0184fc66
        fingerprint:            86f6769f
        exception class:        java.lang.Exception
        exception message:      Stack Trace
        number of children:     0
    
    java.lang.Exception: Stack Trace
    at sun.misc.Unsafe.park(null:-2)
    at java.util.concurrent.locks.LockSupport.parkNanos(null:-1)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(null:-1)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(null:-1)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(null:-1)
    at java.util.concurrent.ThreadPoolExecutor.getTask(null:-1)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(null:-1)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(null:-1)
    at java.lang.Thread.run(null:-1)
   
  

General Information:

    reported-by:      
    anonymous-id:     f108dead-da00-4063-b1fe-d0e4ca098320
    eclipse-build-id: 4.5.0.I20141029-2000
    eclipse-product:  org.eclipse.epp.package.committers.product
    operating system: Windows7 6.1.0 (x86) - win32
    jre-version:      1.8.0_25-b18

The following plug-ins were present on the execution stack (*):
    1. org.eclipse.core.databinding.observable_1.4.1.v20140910-2107
    2. org.eclipse.core.databinding_1.4.100.v20141002-1314
    3. org.eclipse.core.runtime_3.10.0.v20140724-1132
    4. org.eclipse.e4.ui.workbench_1.3.0.v20141024-2249
    5. org.eclipse.e4.ui.workbench.swt_0.12.100.v20141020-2115
    6. org.eclipse.equinox.app_1.3.200.v20130910-1609
    7. org.eclipse.equinox.launcher_1.3.0.v20140415-2008
    8. org.eclipse.jface_3.11.0.v20141013-0842
    9. org.eclipse.jface.text_3.10.0.v20141027-1716
    10. org.eclipse.swt_3.104.0.v20141029-1116
    11. org.eclipse.ui_3.107.0.v20141010-0853
    12. org.eclipse.ui.ide.application_1.0.600.v20141003-0522
    13. org.eclipse.ui.ide_3.10.100.v20141024-1629
    14. org.eclipse.ui.monitoring_1.0.0.v20141021-2031

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.
  
Please visit http://goo.gl/MWFSff for further details. 


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Marcel Bruch CLA 2015-01-09 01:25:33 EST
*** Bug 457101 has been marked as a duplicate of this bug. ***
Comment 2 Marcel Bruch CLA 2015-01-09 01:28:44 EST
Moving this to SWT. I'm not sure how to handle these kind of errors. A ui freeze of 57 seconds looks big - maybe even too big? Can any of the SWT committers share some insights whether this is a measurement error or actually a freeze in SWT?
Comment 3 Leo Ufimtsev CLA 2015-01-09 10:47:29 EST
Just my 50 cents:
I do SWT development on the Linux/Gtk side, so I can't quite say what goes on in windows land.
But in **general SWT** land:
one situation where such freeze ups occur if for example you use thread.sleep(<time>) as oppose to display.asyncexec(). Or you execute too much work on the display thread.

Also there are two display execs, 
display.syncexec() makes everything freeze until the thread is done (synchronous execution) 
display.asyncexec() allows actions to be performed in the background( asynchronous exec).

However, in this specific stack trace, it wonders of into Win32/OS land to see if there is an event in the queue that needs to be processed:
org.eclipse.swt.internal.win32.OS.PeekMessageW(OS.java:-2)

This usually only takes a short time normally, but here it takes a long time. I'm not sure what goes on down there. Maybe windows was very busy with other applications during this time and didn't give swt enough cpu time?
Comment 4 Leo Ufimtsev CLA 2015-01-09 10:54:30 EST
This might be relevant:
Eclipse Git gets faster – UI freeze reporting activated by default in saneclipse
http://blog.vogella.com/2015/01/09/eclipse-git-gets-faster-ui-freeze-reporting-activated-by-default-in-saneclipse/

https://git.eclipse.org/r/#/c/38890/ (UI freeze fix)

https://git.eclipse.org/r/#/c/38863/

https://git.eclipse.org/r/#/c/38860