<div dir="ltr">Created <a class="gmail-issue-link" href="https://bugs.openjdk.org/browse/JDK-8302336" id="gmail-key-val" rel="5093986" style="font-family:"DejaVu Sans",sans-serif;font-size:14px;color:rgb(0,82,204)">JDK-8302336</a></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 13, 2023 at 8:42 AM Kevin Rushforth <<a href="mailto:kevin.rushforth@oracle.com">kevin.rushforth@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Yes, please file a bug. An intermittent exception would be one thing, <br>
but it shouldn't actually crash when doing that.<br>
<br>
-- Kevin<br>
<br>
<br>
On 2/12/2023 3:49 PM, Scott Palmer wrote:<br>
> I'm seeing a hard crash in native code that brings down the JVM when I <br>
> accidentally called removeChild on an element from a WebView Document <br>
> while not on the Platform thread. While I know it's my error, <br>
> bringing down the JVM instead of throwing an exception seems wrong.<br>
><br>
> Should this be considered a bug or not?<br>
><br>
> Scott<br>
><br>
> With JavaFX 17:<br>
> Thread 50 Crashed:: Java: ForkJoinPool-1-worker-5<br>
> 0 libjfxwebkit.dylib 0x14fa2ac33 <br>
> WTFCrashWithInfo(int, char const*, char const*, int) + 19<br>
> 1 libjfxwebkit.dylib 0x14ea5b60d <br>
> WebCore::TimerBase::setNextFireTime(WTF::MonotonicTime) + 541<br>
> 2 libjfxwebkit.dylib 0x14ee0a513 <br>
> WebCore::RenderTreeBuilder::detachFromRenderElement(WebCore::RenderElement&, <br>
> WebCore::RenderObject&, WebCore::RenderTreeBuilder::WillBeDestroyed) + 179<br>
> 3 libjfxwebkit.dylib 0x14ee09fa2 <br>
> WebCore::RenderTreeBuilder::Block::detach(WebCore::RenderBlock&, <br>
> WebCore::RenderObject&, <br>
> WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) + 562<br>
> 4 libjfxwebkit.dylib 0x14ee085ef <br>
> WebCore::RenderTreeBuilder::detach(WebCore::RenderElement&, <br>
> WebCore::RenderObject&, <br>
> WebCore::RenderTreeBuilder::CanCollapseAnonymousBlock) + 543<br>
> 5 libjfxwebkit.dylib 0x14ee082ba <br>
> WebCore::RenderTreeBuilder::destroy(WebCore::RenderObject&) + 58<br>
> 6 libjfxwebkit.dylib 0x14ee0bd57 <br>
> WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers(WebCore::RenderObject&) <br>
> + 263<br>
> 7 libjfxwebkit.dylib 0x14ee19aae <br>
> WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&, <br>
> WebCore::RenderTreeUpdater::TeardownType, <br>
> WebCore::RenderTreeBuilder&)::$_7::operator()(unsigned int) const + 734<br>
> 8 libjfxwebkit.dylib 0x14ee18c13 <br>
> WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&, <br>
> WebCore::RenderTreeUpdater::TeardownType, WebCore::RenderTreeBuilder&) <br>
> + 1171<br>
> 9 libjfxwebkit.dylib 0x14ee196d1 <br>
> WebCore::RenderTreeUpdater::tearDownRenderers(WebCore::Element&) + 65<br>
> 10 libjfxwebkit.dylib 0x14e46db9c <br>
> WebCore::ContainerNode::removeBetween(WebCore::Node*, WebCore::Node*, <br>
> WebCore::Node&) + 108<br>
> 11 libjfxwebkit.dylib 0x14e46ad44 <br>
> WebCore::ContainerNode::removeChild(WebCore::Node&) + 324<br>
> 12 libjfxwebkit.dylib 0x14e50e24b <br>
> WebCore::Node::removeChild(WebCore::Node&) + 43<br>
> 13 libjfxwebkit.dylib 0x14d98deeb <br>
> Java_com_sun_webkit_dom_NodeImpl_removeChildImpl + 107<br>
> 14 ??? 0x1203e753a ???<br>
> 15 ??? 0x1203e335c ???<br>
> 16 ??? 0x1203e36a2 ???<br>
> 17 ??? 0x1203e342b ???<br>
> 18 ??? 0x1203e342b ???<br>
> 19 ??? 0x1203e388f ???<br>
> 20 ??? 0x1203e342b ???<br>
> 21 ??? 0x1203e3317 ???<br>
> 22 ??? 0x1203e3317 ???<br>
> 23 ??? 0x1203e342b ???<br>
> 24 ??? 0x1203e3317 ???<br>
> 25 ??? 0x1203e342b ???<br>
> 26 ??? 0x1203dacc9 ???<br>
> 27 libjvm.dylib 0x110790af6 <br>
> JavaCalls::call_helper(JavaValue*, methodHandle const&, <br>
> JavaCallArguments*, JavaThread*) + 710<br>
> 28 libjvm.dylib 0x11078fb47 <br>
> JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, <br>
> JavaCallArguments*, JavaThread*) + 327<br>
> 29 libjvm.dylib 0x11078fc13 <br>
> JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, <br>
> JavaThread*) + 99<br>
> 30 libjvm.dylib 0x11083ab94 <br>
> thread_entry(JavaThread*, JavaThread*) + 180<br>
> 31 libjvm.dylib 0x110d164af <br>
> JavaThread::thread_main_inner() + 335<br>
> 32 libjvm.dylib 0x110d1481f <br>
> Thread::call_run() + 207<br>
> 33 libjvm.dylib 0x110b1f898 <br>
> thread_native_entry(Thread*) + 328<br>
> 34 libsystem_pthread.dylib 0x7ff8062b4259 _pthread_start + 125<br>
> 35 libsystem_pthread.dylib 0x7ff8062afc7b thread_start + 15<br>
><br>
><br>
> With JavaFX 19.0.2.1<br>
> Thread 48 Crashed:: Java: ForkJoinPool-1-worker-2<br>
> 0 libjfxwebkit.dylib 0x14f2eb9f3 0x14d0d8000 + <br>
> 35731955<br>
> 1 libjfxwebkit.dylib 0x14e3744a6 0x14d0d8000 + <br>
> 19514534<br>
> 2 libjfxwebkit.dylib 0x14e747d49 0x14d0d8000 + <br>
> 23526729<br>
> 3 libjfxwebkit.dylib 0x14e747798 0x14d0d8000 + <br>
> 23525272<br>
> 4 libjfxwebkit.dylib 0x14e745b7f 0x14d0d8000 + <br>
> 23518079<br>
> 5 libjfxwebkit.dylib 0x14e745837 0x14d0d8000 + <br>
> 23517239<br>
> 6 libjfxwebkit.dylib 0x14e749766 0x14d0d8000 + <br>
> 23533414<br>
> 7 libjfxwebkit.dylib 0x14e757dc1 0x14d0d8000 + <br>
> 23592385<br>
> 8 libjfxwebkit.dylib 0x14e757033 0x14d0d8000 + <br>
> 23588915<br>
> 9 libjfxwebkit.dylib 0x14e757aa1 0x14d0d8000 + <br>
> 23591585<br>
> 10 libjfxwebkit.dylib 0x14dd3a2ec 0x14d0d8000 + <br>
> 12985068<br>
> 11 libjfxwebkit.dylib 0x14dd37344 0x14d0d8000 + <br>
> 12972868<br>
> 12 libjfxwebkit.dylib 0x14dddd01b 0x14d0d8000 + <br>
> 13651995<br>
> 13 libjfxwebkit.dylib 0x14d18841b <br>
> Java_com_sun_webkit_dom_NodeImpl_removeChildImpl + 107<br>
> 14 ??? 0x120a6453a ???<br>
> 15 ??? 0x120a6035c ???<br>
> 16 ??? 0x120a606a2 ???<br>
> 17 ??? 0x120a6042b ???<br>
> 18 ??? 0x120a6042b ???<br>
> 19 ??? 0x120a6088f ???<br>
> 20 ??? 0x120a6042b ???<br>
> 21 ??? 0x120a60317 ???<br>
> 22 ??? 0x120a60317 ???<br>
> 23 ??? 0x120a6042b ???<br>
> 24 ??? 0x120a60317 ???<br>
> 25 ??? 0x120a6042b ???<br>
> 26 ??? 0x120a57cc9 ???<br>
> 27 libjvm.dylib 0x110e0daf6 <br>
> JavaCalls::call_helper(JavaValue*, methodHandle const&, <br>
> JavaCallArguments*, JavaThread*) + 710<br>
> 28 libjvm.dylib 0x110e0cb47 <br>
> JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, Symbol*, <br>
> JavaCallArguments*, JavaThread*) + 327<br>
> 29 libjvm.dylib 0x110e0cc13 <br>
> JavaCalls::call_virtual(JavaValue*, Handle, Klass*, Symbol*, Symbol*, <br>
> JavaThread*) + 99<br>
> 30 libjvm.dylib 0x110eb7b94 <br>
> thread_entry(JavaThread*, JavaThread*) + 180<br>
> 31 libjvm.dylib 0x1113934af <br>
> JavaThread::thread_main_inner() + 335<br>
> 32 libjvm.dylib 0x11139181f <br>
> Thread::call_run() + 207<br>
> 33 libjvm.dylib 0x11119c898 <br>
> thread_native_entry(Thread*) + 328<br>
> 34 libsystem_pthread.dylib 0x7ff8062b4259 _pthread_start + 125<br>
> 35 libsystem_pthread.dylib 0x7ff8062afc7b thread_start + 15<br>
<br>
</blockquote></div>