OpenJFX custom build - Java application crash (semi-related to 8262276)
Primož Kokol
primoz.kokol at gmail.com
Fri Mar 12 09:06:17 UTC 2021
Hi everyone,
I would need some help related to OpenJFX build.
I was able to successfully prepare a build following this procedure (from
pull/417 request):
https://github.com/openjdk/jfx/pull/417#issuecomment-795178731
We wanted to use it in our existing application (Java 11.0.10) to debug an
issue where the application would hang/freeze for no obvious reason because
of WebKit.
In order to use this build we've manually overridden javafx-*.jar files in
our application with the ones from the above build.
We've also placed all produced DLL files in our application's "bin" folder
so they are properly picked up (I've verified and I can confirm that
jfxwebkit.dll produced by our debug build is loaded).
After using this native debug build, the application will crash instead
with:
Unhandled exception at 0x00007FFA1E93286E (ucrtbase.dll) in java.exe: Fatal
program exit requested.
It looks like it happens when JS code calls Java method.
There is the call stack at the time when exception happens:
> ucrtbase.dll!abort () Unknown Non-user code. Symbols loaded.
jfxwebkit.dll!WTFCrashWithInfo(int __formal, const char * __formal, const
char * __formal, int __formal) Line 672 C++ Symbols loaded.
jfxwebkit.dll!JSC::JSCastingHelpers::inheritsJSTypeImpl<JSC::InternalFunction,JSC::InternalFunction>(JSC::VM
& vm, JSC::InternalFunction * from, JSC::JSTypeRange range) Line 143 C++
Symbols loaded.
jfxwebkit.dll!JSC::JSCastingHelpers::InheritsTraits<JSC::InternalFunction>::inherits<JSC::InternalFunction>(JSC::VM
& vm, JSC::InternalFunction * from) Line 164 C++ Symbols loaded.
jfxwebkit.dll!JSC::jsDynamicCast<JSC::InternalFunction
*,JSC::InternalFunction>(JSC::VM & vm, JSC::InternalFunction * from) Line
182 C++ Symbols loaded.
jfxwebkit.dll!JSC::InternalFunction::finishCreation(JSC::VM & vm, const
WTF::String & name, JSC::InternalFunction::NameAdditionMode
nameAdditionMode) Line 49 C++ Symbols loaded.
jfxwebkit.dll!JSC::RuntimeMethod::finishCreation(JSC::VM & vm, const
WTF::String & ident) Line 58 C++ Symbols loaded.
jfxwebkit.dll!JavaRuntimeMethod::finishCreation(JSC::VM & globalData,
const WTF::String & name) Line 231 C++ Symbols loaded.
jfxwebkit.dll!JavaRuntimeMethod::create(JSC::JSGlobalObject *
globalObject, const WTF::String & name, JSC::Bindings::Method * method)
Line 212 C++ Symbols loaded.
jfxwebkit.dll!JSC::Bindings::JavaInstance::getMethod(JSC::JSGlobalObject
* globalObject, JSC::PropertyName propertyName) Line 241 C++ Symbols loaded.
jfxwebkit.dll!JSC::Bindings::RuntimeObject::methodGetter(JSC::JSGlobalObject
* lexicalGlobalObject, __int64 thisValue, JSC::PropertyName propertyName)
Line 124 C++ Symbols loaded.
jfxwebkit.dll!JSC::PropertySlot::customGetter(JSC::JSGlobalObject *
globalObject, JSC::PropertyName propertyName) Line 48 C++ Symbols loaded.
jfxwebkit.dll!JSC::PropertySlot::getValue(JSC::JSGlobalObject *
globalObject, JSC::PropertyName propertyName) Line 422 C++ Symbols loaded.
jfxwebkit.dll!JSC::JSValue::get(JSC::JSGlobalObject * globalObject,
JSC::PropertyName propertyName, JSC::PropertySlot & slot) Line 963 C++
Symbols loaded.
jfxwebkit.dll!JSC::LLInt::performLLIntGetByID(const JSC::Instruction *
pc, JSC::CodeBlock * codeBlock, JSC::JSGlobalObject * globalObject,
JSC::JSValue baseValue, const JSC::Identifier & ident,
JSC::GetByIdModeMetadata & metadata) Line 759 C++ Symbols loaded.
jfxwebkit.dll!llint_slow_path_get_by_id(JSC::CallFrame * callFrame, const
JSC::Instruction * pc) Line 833 C++ Symbols loaded.
jfxwebkit.dll!llint_entry () Unknown Non-user code. Symbols loaded.
000000c7ef8fae90() Unknown Non-user code
000000c7ef8faf50() Unknown Non-user code
0000028d52eeedbb() Unknown Non-user code
cccccccccccccccc() Unknown Non-user code
0000028d52eeedb6() Unknown Non-user code
... and partial output from the output console:
....
(S)tacking Context/(F)orced SC/O(P)portunistic SC, (N)ormal flow only,
(O)verflow clip, (A)lpha (opacity or mask), has (B)lend mode, (I)solates
blending, (T)ransform-ish, (F)ilter, Fi(X)ed position, Behaves as fi(x)ed,
(C)omposited, (P)rovides backing/uses (p)rovided backing/paints to
(a)ncestor, (c)omposited descendant, (s)scrolling ancestor, (t)transformed
ancestor
Dirty (z)-lists, Dirty (n)ormal flow lists
Traversal needs: requirements (t)raversal on descendants, (b)acking or
hierarchy traversal on descendants, (r)equirements traversal on all
descendants, requirements traversal on all (s)ubsequent layers, (h)ierarchy
traversal on all descendants, update of paint (o)rder children
Update needs: post-(l)ayout requirements, (g)eometry, (k)ids geometry,
(c)onfig, layer conne(x)ion, (s)crolling tree
Scrolling scope: box contents
S-------------- -- ------ -----s 34 34 0000028D98F22260 (0,0) width=460
height=650 RenderView 0x28d4d4d1cd0
S-------------- -- ------ ------ 34 34 + 0000028D4D98D430 (0,0) width= no
compositing work to do
FrameView 0000028D4F2A4CF0 performPostLayoutTasks
FrameView 0000028D4F2A4CF0 updateLayoutViewport() totalContentSize
width=460 height=650 unscaledDocumentRect (0,0) width=460 height=650 header
height 0 footer height 0 fixed behavior 0
layoutViewport: (0,0) width=460 height=650
visualViewport: (0,0) width=460 height=650 (is override 0)
stable origins: min: (0.00,0.00) max: (0.00,0.00)
DocumentTimelinesController::updateAnimationsAndSendEvents for time 24.89s
DeclarativeAnimation::tick for element node 0000028D40C406A0 DIV
0x28d40c406a0 class='leaflet-proxy leaflet-zoom-animated'
KeyframeEffect::invalidate on element node 0000028D40C406A0 DIV
0x28d40c406a0 class='leaflet-proxy leaflet-zoom-animated'
DeclarativeAnimation::tick for element node 0000028D40C42E90 DIV
0x28d40c42e90 class='leaflet-tile-container leaflet-zoom-animated'
KeyframeEffect::invalidate on element node 0000028D40C42E90 DIV
0x28d40c42e90 class='leaflet-tile-container leaflet-zoom-animated'
EventDispatcher::dispatchEvent transitioncancel on node DIV
EventDispatcher::dispatchEvent transitioncancel on node DIV
ASSERTION FAILED: canCast == from->JSCell::inherits(vm, Target::info())
C:\jfx\modules\javafx.web\src\main\native\Source\JavaScriptCore\runtime\JSCast.h(143)
: JSC::JSCastingHelpers::inheritsJSTypeImpl
Unhandled exception at 0x00007FFA1E93286E (ucrtbase.dll) in java.exe: Fatal
program exit requested.
Note that this crash isn't happening with official JavaFX 15, 16, and
17-ea+2 builds (that are at the time of writing this available on the
maven), but unfortunately we can't use these for debugging purposes.
Does that indicate any issues with the native debug build or is this some
regression that was introduced in the current `master` branch recently
(after 17-ea+2)?
Thanks for any helpful hints/advice in advance!
Best regards,
PrimosK
More information about the openjfx-dev
mailing list