OpenJFX custom build - Java application crash (semi-related to 8262276)
Primož Kokol
primoz.kokol at gmail.com
Mon Mar 15 12:38:16 UTC 2021
I've tried to remove this particular assert statement at "JSCast.h:143":
// ASSERT_UNUSED(vm, canCast == from->JSCell::inherits(vm, Target::info()));
... and now application crashes at different assert statement:
> jfxwebkit.dll!WTFCrashWithInfo(int __formal, const char * __formal, const
char * __formal, int __formal) Line 672 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.
00000025dabfaf00() Unknown Non-user code
00000025dabfafc0() Unknown Non-user code
00000164ca445b4b() Unknown Non-user code
cccccccccccccccc() Unknown Non-user code
00000164ca445b46() Unknown Non-user code
Is there any way we could turn off assertions in general when producing
debug build?
On Sat, 13 Mar 2021 at 05:41, Arun Joseph <arun.aj.joseph at oracle.com> wrote:
> I’m currently looking into why the native debug build is crashing. This
> same assert fails while running FileReaderTest using the native debug
> build. For the time being, you can try building by removing this particular
> assert statement for debugging.
>
> — Arun Joseph
>
> > On 12-Mar-2021, at 11:47 PM, Primož Kokol <primoz.kokol at gmail.com>
> wrote:
> >
> > Hi Kevin,
> >
> > Unfortunately I don't have a test case. We are using various WebViews in
> > our production application hence we don't know where/why exactly the
> > application freezes.
> >
> > We were hoping that we will be able to identify it using the native debug
> > build (& attached debugged) but it is now unfortunately crashing with the
> > above error.
> >
> > Side note:
> > Should I contact Arun directly or is he seeing these messages?
> >
> > -- PrimosK
> >
> > On Fri, 12 Mar 2021 at 19:00, Kevin Rushforth <
> kevin.rushforth at oracle.com>
> > wrote:
> >
> >> Arun should be able to help you with the crash you are seeing in debug
> >> mode.
> >>
> >> Regarding the hang, do you have a test case that will reproduce it? A
> >> few different developers have reported similar hangs. We ended up
> >> closing a recently-filed bug, JDK-8260238 [1], because were (and still
> >> are) unable to reproduce the hang.
> >>
> >> -- Kevin
> >>
> >> [1] https://bugs.openjdk.java.net/browse/JDK-8260238
> >>
> >>
> >> On 3/12/2021 1:06 AM, Primož Kokol wrote:
> >>> 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