status behind JDK-8149738

Guru Hb guru.hb at oracle.com
Wed Apr 13 17:49:11 UTC 2016


Hi Matthieu,

I could re-produce the crash as you have mentioned. Thanks for helping 
out to for the html test content.

Please keep an eye on JI-9035239 for further updates.

Thanks,
Guru

On 13/4/16 9:13 PM, Matthieu BROUILLARD wrote:
> Hi Guru,
>
> I have filled an issue in http://bugreport.java.com/ ; denominated for 
> the moment JI-9035239.
>
> I have a simple reproducer test app that I also put in the bug report: 
> https://gist.github.com/McFoggy/e6166349b8ea012c925665fcf9625501
>
> The problem occures when colgroups>col width are reset/recomputed 
> only. If in the webapp you uncheck the "Clear col sizes" combobox then 
> the app should work correctly.
> If at startup you uncheck it ; it will normally work. What is weird is 
> that if then you re-check it ; it will continue to work and will not 
> fail anymore.
>
> Notice that with this simple reproducer test case I now reproduce the 
> problem not only on 32bits versions but also on 64bits 8u74 & 8u77.
>
> Thanks
>
> Matthieu
>
>
> On Wed, Apr 13, 2016 at 5:07 AM, Guru Hb <guru.hb at oracle.com 
> <mailto:guru.hb at oracle.com>> wrote:
>
>     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