status behind JDK-8149738

Guru Hb guru.hb at oracle.com
Wed Apr 13 03:07:01 UTC 2016


Hi Matthieu,

If you could update the re-producer html/js in the JBS would be very 
help full.

I could reproduce with 
http://advanced-gwt.sourceforge.net/demo/index.html --> "Click Heading 
(Caption)" --> Crash. There are multiple Table listed in the left panel, 
where i can re-produce the crash which originates from 
"com.sun.webkit.WebPage.twkProcessMouseEvent".

Thanks,
Guru
On 12/4/16 10:00 PM, Matthieu BROUILLARD wrote:
> Hi Guru,
>
> I think I have isolated the problem ; it relates to GWT FlexTable 
> (with fixed column & row size) that is cleaned and refilled.
> Tomorrow I'll build a clean GWT reproducer app and will send it to you.
> I'll also do the exact same in pure html/js without GWT being involved.
>
> Matthieu
>
>
> On Tue, Apr 12, 2016 at 11:18 AM, Guru Hb <guru.hb at oracle.com 
> <mailto:guru.hb at oracle.com>> wrote:
>
>     Thank you Matthieu,
>
>     Let me create a sample GWT web  application with tabs along with
>     the use case mentioned below. Will update the status in the JBS.
>
>     Thanks,
>     Guru
>
>
>     On 12/4/16 2:26 PM, Matthieu BROUILLARD wrote:
>>     Hi,
>>
>>     let me try to give more insights
>>
>>     />>> 0. resume of running and crashing JVMs/
>>     64 bits: all tested work (at least issue not reproduced)
>>     32 bits:
>>        - 8u74-i586, 8u60-i586: fail
>>        - 8u45-i586: OK
>>
>>     />>> 00. Application under test/
>>     We have simplified the reproducer JavaFX app as "just" a simple
>>     webview opening our GWT webapplication.
>>     There's no magic here, just a call to load() method on the
>>     WebEngine of a WebView.
>>
>>     />>> 1. What Content is loaded to WebEngine. (Live webpage or
>>     custom content)/
>>     It is a dynamic GWT webapplication.
>>     When launched, the application loads correctly: dynamic content
>>     (multiple dynamic parts in the app) is created/loaded/shown.
>>     The loaded page shows several tabs, when clicking on a tab the
>>     JVM crashes.
>>
>>     />>> 2. which mouse event lead to crash (Right / left click,
>>     Double click, Scroll)/
>>     single left click.
>>
>>     />>> 3. W.r.t 2nd point, is there a pop-up dialog exist ? or what
>>     was the html element under which mouse event triggered (Input
>>     element, Editable div, Form elements, Image , upload dialog,
>>     table,etc)./
>>     it is a simple div element that is CSS styled.
>>
>>     />>> 4. Any Modal Dialog used in the application under test ,
>>     which will be used as a call back to an event from WebEngine ?/
>>     No in this case our JavaFX reproducer app, is nothing more than:
>>         ...
>>     WebView wv = new WebView();
>>     wv.getEngine().load("http://ourwebapp");
>>         ...
>>
>>     In our global product we have indeed interaction between the host
>>     JVM & the webapp ; but here we reproduce the crash with a simple
>>     app consisting of the 2 lines above.
>>
>>
>>     On Tue, Apr 12, 2016 at 9:41 AM, Guru Hb <guru.hb at oracle.com
>>     <mailto:guru.hb at oracle.com>> wrote:
>>
>>         Hi Matthieu,
>>
>>         Crash is due to Mouse event is not handled correctly from
>>         WebView context.
>>
>>         Could you please provide these details.
>>
>>         1. What Content is loaded to WebEngine. (Live webpage or
>>         custom content)
>>         2. which mouse event lead to crash (Right / left click,
>>         Double click, Scroll)
>>         3. W.r.t 2nd point, is there a pop-up dialog exist ? or what
>>         was the html element under which mouse event triggered (Input
>>         element, Editable div, Form elements, Image , upload dialog,
>>         table,etc).
>>         4. Any Modal Dialog used in the application under test ,
>>         which will be used as a call back to an event from WebEngine ?
>>
>>         With above details , i could derive a test content / scenario
>>         to re-produce the crash.
>>
>>         Thanks,
>>         Guru
>>
>>         On 11/4/16 10:09 PM, Matthieu BROUILLARD wrote:
>>
>>             Hi all,
>>
>>             In our application that integrates some webapps we are
>>             facing quite the
>>             same error than the one reported at
>>             https://bugs.openjdk.java.net/browse/JDK-8149738.
>>             The issue above has been marked with 'bugdb_22696741' ;
>>             does it mean it is
>>             referenced with more details elsewhere? Is there a known
>>             workaround?
>>
>>             In our use case, when navigating in the webview into some
>>             GWT based
>>             application using 8u74-i586 (or 8u60-i586) we always
>>             crash the JVM and
>>             using 8u74 (64 bits) everything works.
>>             Doing additional tests revealed that 8u45-b51-i586 is
>>             working ; but
>>             unfortunately we have already moved on to more recent
>>             JDKs for our entire
>>             application.
>>
>>             Sadly I do not have a simple reproduction app to provide.
>>             We also enable some prism debug settings without seeing
>>             anything relevant
>>             in the logs ; activating the software pipeline didn't
>>             changed anything
>>             neither.
>>
>>             Are there specific debug params for the webview, webkit &
>>             jfxwebkit.dll ?
>>
>>             The crash report looks the same than in the above issue:
>>
>>             # # # # # # # # # # # # # # # # #
>>
>>             #
>>             # A fatal error has been detected by the Java Runtime
>>             Environment:
>>             #
>>             #  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at
>>             pc=0x5456b7c9, pid=5836,
>>             tid=6260
>>             #
>>             # JRE version: Java(TM) SE Runtime Environment
>>             (8.0_74-b02) (build
>>             1.8.0_74-b02)
>>             # Java VM: Java HotSpot(TM) Client VM (25.74-b02 mixed
>>             mode windows-x86 )
>>             # Problematic frame:
>>             # C  [jfxwebkit.dll+0x8eb7c9]
>>             ...
>>             #
>>
>>             ---------------  T H R E A D ---------------
>>
>>             Current thread (0x0563d000):  JavaThread "JavaFX
>>             Application Thread"
>>             [_thread_in_native, id=6260, stack(0x05c70000,0x05cc0000)]
>>
>>             siginfo: ExceptionCode=0xc0000005, reading address 0x002e0060
>>
>>             Registers:
>>             EAX=0x002e0030, EBX=0x00000011, ECX=0x0d457870,
>>             EDX=0x00000000
>>             ESP=0x05cbd578, EBP=0x00000000, ESI=0x0d457870,
>>             EDI=0x0bae3030
>>             EIP=0x5456b7c9, EFLAGS=0x00210246
>>
>>             Top of Stack: (sp=0x05cbd578)
>>             0x05cbd578:   0d202f60 54580e41 00000001 00000001
>>             ...
>>             0x05cbd5e8:   54a51a88 00000000 54510e95 0d2f89a0
>>
>>             Instructions: (pc=0x5456b7c9)
>>             0x5456b7a9:   24 0c 01 75 35 8b 4e 14 8b c1 c1 e8 09 a8 01 75
>>             ...
>>             0x5456b7d9:   06 74 07 8b ce e8 4d de ff ff 5e c2 08 00 cc cc
>>
>>
>>             Register to memory mapping:
>>
>>             EAX=0x002e0030 is an unknown value
>>             EBX=0x00000011 is an unknown value
>>             ECX=0x0d457870 is an unknown value
>>             EDX=0x00000000 is an unknown value
>>             ESP=0x05cbd578 is pointing into the stack for thread:
>>             0x0563d000
>>             EBP=0x00000000 is an unknown value
>>             ESI=0x0d457870 is an unknown value
>>             EDI=0x0bae3030 is an unknown value
>>
>>
>>             Stack: [0x05c70000,0x05cc0000], sp=0x05cbd578,  free
>>             space=309k
>>             Native frames: (J=compiled Java code, j=interpreted,
>>             Vv=VM code, C=native
>>             code)
>>             C  [jfxwebkit.dll+0x8eb7c9]
>>
>>             Java frames: (J=compiled Java code, j=interpreted, Vv=VM
>>             code)
>>             j
>>             com.sun.webkit.WebPage.twkProcessMouseEvent(JIIIIIIIZZZZZF)Z+0
>>             j
>>             com.sun.webkit.WebPage.dispatchMouseEvent(Lcom/sun/webkit/event/WCMouseEvent;)Z+141
>>             j
>>             javafx.scene.web.WebView.processMouseEvent(Ljavafx/scene/input/MouseEvent;)V+175
>>             j
>>             javafx.scene.web.WebView.lambda$registerEventHandlers$32(Ljavafx/scene/input/MouseEvent;)V+2
>>             j
>>             javafx.scene.web.WebView$$Lambda$87.handle(Ljavafx/event/Event;)V+8
>>             j
>>             com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Ljavafx/event/Event;)V+5
>>             j
>>             com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Ljavafx/event/Event;)V+28
>>             j
>>             com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/EventType;Ljavafx/event/Event;)Ljavafx/event/Event;+29
>>             j
>>             com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+8
>>             j
>>             com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+11
>>             j
>>             com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+29
>>             j
>>             com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+69
>>             j
>>             com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
>>             j
>>             com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+69
>>             j
>>             com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;+17
>>             j
>>             com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Ljavafx/event/Event;)Ljavafx/event/Event;+69
>>             j
>>             com.sun.javafx.event.EventUtil.fireEventImpl(Ljavafx/event/EventDispatchChain;Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+10
>>             j
>>             com.sun.javafx.event.EventUtil.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)Ljavafx/event/Event;+46
>>             j
>>             javafx.event.Event.fireEvent(Ljavafx/event/EventTarget;Ljavafx/event/Event;)V+30
>>             j
>>             javafx.scene.Scene$MouseHandler.process(Ljavafx/scene/input/MouseEvent;Z)V+491
>>             j
>>             javafx.scene.Scene$MouseHandler.access$1500(Ljavafx/scene/Scene$MouseHandler;Ljavafx/scene/input/MouseEvent;Z)V+3
>>             j
>>             javafx.scene.Scene.impl_processMouseEvent(Ljavafx/scene/input/MouseEvent;)V+6
>>             j
>>             javafx.scene.Scene$ScenePeerListener.mouseEvent(Ljavafx/event/EventType;DDDDLjavafx/scene/input/MouseButton;ZZZZZZZZZ)V+46
>>             j
>>             com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run()Ljava/lang/Void;+476
>>             j
>>             com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run()Ljava/lang/Object;+1
>>             v  ~StubRoutines::call_stub
>>             J 1203
>>             java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
>>             (0 bytes) @ 0x029c8787 [0x029c8720+0x67]
>>             j
>>             com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$354()Ljava/lang/Void;+11
>>             j
>>             com.sun.javafx.tk.quantum.GlassViewEventHandler$$Lambda$191.get()Ljava/lang/Object;+4
>>             j
>>             com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Ljava/util/function/Supplier;)Ljava/lang/Object;+18
>>             j
>>             com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(Lcom/sun/glass/ui/View;JIIIIIIIZZ)V+103
>>             j com.sun.glass.ui.View.handleMouseEvent(JIIIIIIIZZ)V+30
>>             j com.sun.glass.ui.View.notifyMouse(IIIIIIIZZ)V+181
>>             v  ~StubRoutines::call_stub
>>             j
>>             com.sun.glass.ui.win.WinApplication._runLoop(Ljava/lang/Runnable;)V+0
>>             j
>>             com.sun.glass.ui.win.WinApplication.lambda$null$148(ILjava/lang/Runnable;)V+8
>>             j com.sun.glass.ui.win.WinApplication$$Lambda$38.run()V+12
>>             j  java.lang.Thread.run()V+11
>>             v  ~StubRoutines::call_stub
>>
>>             ...
>>
>>             # # # # # # # # # # # # # # # # #
>>
>>
>>
>
>



More information about the openjfx-dev mailing list