JDK-8152762 : crash in twkFireTimerEvent
  • Type: Bug
  • Component: javafx
  • Sub-Component: web
  • Affected Version: 8u60,9
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows
  • Submitted: 2016-03-25
  • Updated: 2016-06-02
  • Resolved: 2016-06-02
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9Resolved
Related Reports
Duplicate :  
Description
On Windows, a crash can be reproduced in webkit.
The crash occurs when a number of WebViews with their own WebEngine keep loading pages and is due to an access violation in code that is part of jfxwebkit.dll:

#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x2c79c043, pid=1076, tid=3680
#
# JRE version: Java(TM) SE Runtime Environment (8.0_73-b02) (build 1.8.0_73-b02)
# Java VM: Java HotSpot(TM) Client VM (25.73-b02 mixed mode windows-x86 )
# Problematic frame:
# C  [jfxwebkit.dll+0xa9c043]

We managed to trace this down to code being executed by the js lowlevelInterpreter, which is called in the following way:

modules/graphics/src/main/java/com/sun/javafx/tk/ToolKit.java:381			ToolKit.firePulse()
modules/graphics/src/main/java/com/sun/javafx/tk/ToolKit.java:355			ToolKit.runPulse()$lamdba
modules/web/src/main/java/javafx/scene/web/WebEngine.java:1201				WebEngine.PulseTimer$lambda
modules/web/src/main/java/com/sun/webkit/Timer.java:64					Timer.notifyTick()
modules/web/src/main/java/com/sun/webkit/Timer.java:83					Timer.fireTimerEvent()
modules/web/src/main/java/com/sun/webkit/Timer.java:106					Timer.twkFireTimerEvent()
modules/web/src/main/native/Source/WebCore/platform/java/SharedTimerJava.cpp:63		Java_com_sun_webkit_Timer_twkFireTimerEvent()
modules/web/src/main/native/Source/WebCore/platform/ThreadTimers.cpp:107		ThreadTimers::sharedTimerFired()
modules/web/src/main/native/Source/WebCore/platform/ThreadTimers.cpp:132		ThreadTimers::sharedTimerFiredInternal()
modules/web/src/main/native/Source/WebCore/platform/Timer.h:132				Timer::fired()
modules/web/src/main/native/Source/WebCore/dom/ScriptRunner.cpp:119			ScriptRunner::timerFired()
modules/web/src/main/native/Source/WebCore/dom/ScriptElement.cpp:327			ScriptElement::execute()
modules/web/src/main/native/Source/WebCore/dom/ScriptElement.cpp:307			ScriptElement::executeScript()
modules/web/src/main/native/Source/WebCore/binding/js/ScriptController.cpp:163		ScriptController::evaluate()
modules/web/src/main/native/Source/WebCore/binding/js/ScriptController.cpp:147		ScriptController::evaluateInWorld()
modules/web/src/main/native/Source/WebCore/binding/js/JSMainThreadExecState.h:62	JSMainThreadExecState::evaluate()
modules/web/src/main/native/Source/JavaScriptCore/runtime/Completion.cpp:82		evaluate()
modules/web/src/main/native/Source/JavaScriptCore/interpreter/Interpreter.cpp:903	Interpreter::execute()
modules/web/src/main/native/Source/JavaScriptCore/jit/JITCode.cpp:47			JITCode::execute()
modules/web/src/main/native/Source/JavaScriptCore/llint/LLIntThunks.cpp:100		callToJavaScript()
modules/web/src/main/native/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:434	CLoop::execute()
Comments
JDK-8153501
20-04-2016

Possible duplicate of JDK-8153501.
09-04-2016

This issue occurs when a WebEngine is being reused fast and often. The WebEngine.load() is called frequently, regardless of the statusProperty of its loadWorker and it loads a document containing JavaScript. When the Timer tries to execute the JS code, the WebEngine might already be loading the next resource.
31-03-2016