Bug 287113
| Summary: | Crash/assert in WebKitGtk on Linux | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | reynolds2469 |
| Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Critical | CC: | bugs-noreply, lmoura |
| Priority: | P2 | ||
| Version: | WebKit Local Build | ||
| Hardware: | PC | ||
| OS: | Linux | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=275103 | ||
reynolds2469
Hi,
There is an issue with embedded WebKitGtk in PrusaSlicer, Bamboo Slicer and OrcaSlicer on multiple Linux distributions. I am using Xubuntu 24.10.
There reports from users from different distros here (https://github.com/SoftFever/OrcaSlicer/issues/7210#issuecomment-2440350811)
The same issue is reproduced with MiniBrowser test app, so I guess it is not specific to the host application.
The WebKit is asserting in RenderElement::setOutOfFlowChildNeedsStaticPositionLayout() when connecting to the Mainsail 3D printing control application.
The Mainsail has some kind of loading screen showing the project bar. After the client side code has loaded, the main screen is rendered.
I see the loading screen and can barely see the main screen, but then it is asserting.
I have tested the latest 2.46.5 distribution specific version. The same issue is reproduced with the vanilla local build without any distribution specific modifications.
The problem have started somewhere around middle last year.
Best regards,
Max.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Lauro Moura
Not sure if directly related, as it happens on Windows, but bug275103 also reports an assertion in setOutOfFlowChildNeedsStaticPositionLayout, starting early June last year.
reynolds2469
Hi,
I have re-tested with the latest version from the GitHub. The issue is still happening.
ASSERTION FAILED: posChildNeedsLayout() || selfNeedsLayout() || needsSimplifiedNormalFlowLayout() || !parent()
/hdd/Work/webkitgtk-rebuild/latest/WebKit-main/Source/WebCore/rendering/RenderElement.cpp(1244) : void WebCore::RenderElement::setOutOfFlowChildNeedsStaticPositionLayout()
1 0x7071c2f08b00 WebCore::RenderElement::setOutOfFlowChildNeedsStaticPositionLayout()
2 0x7071c32c9bec WebCore::RenderTreeBuilder::attachToRenderElementInternal(WebCore::RenderElement&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
3 0x7071c32c93fa WebCore::RenderTreeBuilder::attachToRenderElement(WebCore::RenderElement&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
4 0x7071c32ce2c1 WebCore::RenderTreeBuilder::Block::attachIgnoringContinuation(WebCore::RenderBlock&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
5 0x7071c32cd73f WebCore::RenderTreeBuilder::Block::attach(WebCore::RenderBlock&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
6 0x7071c32cf858 WebCore::RenderTreeBuilder::BlockFlow::attach(WebCore::RenderBlockFlow&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
7 0x7071c32c8583 WebCore::RenderTreeBuilder::attachInternal(WebCore::RenderElement&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
8 0x7071c32c7f4b WebCore::RenderTreeBuilder::attach(WebCore::RenderElement&, std::unique_ptr<WebCore::RenderObject, WebCore::RenderObjectDeleter>, WebCore::RenderObject*)
9 0x7071c32efa5a WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&, WebCore::RenderStyle&&)
10 0x7071c32ef618 WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&, WebCore::Style::ElementUpdate const&)
11 0x7071c32ee614 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&)
12 0x7071c32ed8a3 WebCore::RenderTreeUpdater::commit(std::unique_ptr<WebCore::Style::Update, std::default_delete<WebCore::Style::Update> >)
13 0x7071c1277ec7 WebCore::Document::updateRenderTree(std::unique_ptr<WebCore::Style::Update, std::default_delete<WebCore::Style::Update> >)
14 0x7071c12788a5 WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
15 0x7071c12790c7 WebCore::Document::updateStyleIfNeeded()
16 0x7071c12794c6 WebCore::Document::updateLayout(WTF::OptionSet<WebCore::LayoutOptions>, WebCore::Element const*)
17 0x7071c1279160 WebCore::Document::updateLayoutIgnorePendingStylesheets(WTF::OptionSet<WebCore::LayoutOptions>, WebCore::Element const*)
18 0x7071c127a2bf WebCore::Document::updateLayoutIfDimensionsOutOfDate(WebCore::Element&, WTF::OptionSet<WebCore::DimensionsCheck>)
19 0x7071c138333b WebCore::Element::clientWidth()
20 0x7071be4ae05d jsElement_clientWidthGetter
21 0x7071be4cc06c get<WebCore::jsElement_clientWidthGetter, (WebCore::CastedThisErrorBehavior)3>
22 0x7071be4ae0d5 jsElement_clientWidth
23 0x7071b68e2a2a WTF::FunctionPtr<(WTF::PtrTag)57072, long (JSC::JSGlobalObject*, long, JSC::PropertyName), (WTF::FunctionAttributes)1>::operator()(JSC::JSGlobalObject*, long, JSC::PropertyName) const
24 0x7071b6bba540 JSC::PropertySlot::customGetter(JSC::VM&, JSC::PropertyName) const
25 0x7071b4c03222 JSC::PropertySlot::getValue(JSC::JSGlobalObject*, JSC::PropertyName) const
26 0x7071b4c2e866 JSC::JSValue::get(JSC::JSGlobalObject*, JSC::PropertyName, JSC::PropertySlot&) const
27 0x7071b4c2e692 JSC::JSValue::get(JSC::JSGlobalObject*, JSC::PropertyName) const
28 0x7071b6474766 getByVal
29 0x7071b6474ac7 llint_slow_path_get_by_val
30 0x7071b4b908fd llint_op_get_by_val