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()