WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
257970
ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
https://bugs.webkit.org/show_bug.cgi?id=257970
Summary
ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData)
Bri Harris
Reported
2023-06-12 11:38:07 PDT
platform/mac/media/unmute-after-loading.html is a flaky crash on macOS Debug. HISTORY:
https://results.webkit.org/?suite=layout-tests&test=platform%2Fmac%2Fmedia%2Funmute-after-loading.html
STDERR LINK:
https://build.webkit.org/results/Apple-Ventura-Debug-AppleSilicon-WK2-Tests/265061@main%20(2760)/platform/mac/media/unmute-after-loading-stderr.txt
STDERR TEXT: STDERR TEXT: ASSERTION FAILED: willBeComposited == needsToBeComposited(layer, queryData) /Volumes/Data/worker/Apple-Ventura-Debug-Build/build/Source/WebCore/rendering/RenderLayerCompositor.cpp(1201) : void WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer *, WebCore::RenderLayer &, WebCore::LayerOverlapMap &, WebCore::RenderLayerCompositor::CompositingState &, WebCore::RenderLayerCompositor::BackingSharingState &, bool &) 1 0x151490100 WTFCrash 2 0x107908e40 WebCore::NetworkResourcesData::ResourceData::hasContent() const 3 0x1089ebbcc WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&) 4 0x1089eb85c WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&) 5 0x1089eb8e4 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::LayerOverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, WebCore::RenderLayerCompositor::BackingSharingState&, bool&) 6 0x1089e999c WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) 7 0x107e73008 WebCore::LocalFrameView::updateCompositingLayersAfterLayout() 8 0x107e76334 WebCore::LocalFrameView::didLayout(WTF::WeakPtr<WebCore::RenderElement, WTF::DefaultWeakPtrImpl>) 9 0x107e8f194 WebCore::LocalFrameViewLayoutContext::performLayout() 10 0x107e6d8e0 WebCore::LocalFrameViewLayoutContext::layout() 11 0x107e88680 WebCore::LocalFrameView::updateLayoutAndStyleIfNeededRecursive() 12 0x107ee318c WebCore::Page::layoutIfNeeded() 13 0x107ee3c0c WebCore::Page::updateRendering() 14 0x12cebcce4 WebKit::WebPage::updateRendering() 15 0x12c117990 WebKit::TiledCoreAnimationDrawingArea::updateRendering(WebKit::TiledCoreAnimationDrawingArea::UpdateRenderingType) 16 0x12c11b6cc WebKit::TiledCoreAnimationDrawingArea::renderingUpdateRunLoopCallback() 17 0x12c11d3a4 WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea(WebKit::WebPage&, WebKit::WebPageCreationParameters const&)::$_0::operator()() const 18 0x12c11d350 WTF::Detail::CallableWrapper<WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea(WebKit::WebPage&, WebKit::WebPageCreationParameters const&)::$_0, void>::call() 19 0x1067e1a8c WTF::Function<void ()>::operator()() const 20 0x1081d01d0 WebCore::RunLoopObserver::runLoopObserverFired() 21 0x1081d013c WebCore::RunLoopObserver::runLoopObserverFired(__CFRunLoopObserver*, unsigned long, void*) 22 0x18453d9f0 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ 23 0x18453d8dc __CFRunLoopDoObservers 24 0x18453c514 CFRunLoopRunSpecific 25 0x1854b5fcc -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 26 0x18552eccc -[NSRunLoop(NSRunLoop) run] 27 0x1841ae594 _xpc_objc_main 28 0x1841adeb4 xpc_main 29 0x12b469e58 WebKit::XPCServiceMain(int, char const**) 30 0x12d3eb6d0 WKXPCServiceMain 31 0x10075bfa0 main com.apple.WebKit.WebContent.Development terminated (pid 4291) for reason: crash LEAK: 1 WebPageProxy
Attachments
Add attachment
proposed patch, testcase, etc.
Radar WebKit Bug Importer
Comment 1
2023-06-12 11:38:35 PDT
<
rdar://problem/110656130
>
Simon Fraser (smfr)
Comment 2
2023-06-15 17:45:44 PDT
I confirmed that this happens when the answer to `canAccelerateVideoRendering()` changes without `RenderLayerBacking::contentChanged(VideoChanged)` being called.
Simon Fraser (smfr)
Comment 3
2023-06-15 18:24:29 PDT
Here's some logging showing the issue: 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ad8d0 supportsAcceleratedRendering 1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ad8d0 supportsAcceleratedRendering 1 18:22:34.834 93261 HTMLMediaElement::prepareForLoad(B188CAA22C26631F) gesture = false 18:22:34.834 93261 HTMLMediaElement::createMediaPlayer(B188CAA22C26631F) 18:22:34.834 93261 VideoLayerManagerObjC::didDestroyVideoLayer(B188CAA22C26631F) 18:22:34.834 93261 VideoLayerManagerObjC::setTextTrackRepresentationLayer(B188CAA22C26631F) 18:22:34.834 93261 HTMLMediaElement::setPlaybackRate(B188CAA22C26631F) 1 18:22:34.834 93261 MediaElementSession::clientWillBeginAutoplaying(B188CAA22C26631F) state = Autoplaying 18:22:34.834 93261 HTMLMediaElement::setShouldDelayLoadEvent(B188CAA22C26631F) true 18:22:34.834 93261 RenderLayerCompositor 0x1103584e0 [LocalFrameView 0x1120000b0 Frame 0x1100ac220 (main frame) file:///Volumes/Data/Development/system/webkit/OpenSource/LayoutTests/platform/mac/media/unmute-after-loading.html] updateCompositingLayers after layout contentLayersCount 6 18:22:34.834 93261 RenderLayerCompositor 0x1103584e0 [LocalFrameView 0x1120000b0 Frame 0x1100ac220 (main frame) file:///Volumes/Data/Development/system/webkit/OpenSource/LayoutTests/platform/mac/media/unmute-after-loading.html] updateCompositingLayers after layout contentLayersCount 6 18:22:34.834 93261 RenderLayerCompositor::computeCompositingRequirements when no change - layer 0x112001b70 video will composite: 1 because is already composited 1 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::computeCompositingRequirements - layer 0x112001b70 video will composite later: 0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 RenderLayerCompositor::requiresCompositingForVideo - layer 0x112001b70 requiresImmediateCompositing:0 shouldDisplayVideo:1 canAccelerateVideoRendering:0 18:22:34.834 93261 HTMLMediaElement 0x11202ec30 supportsAcceleratedRendering - player 0x1101ae250 supportsAcceleratedRendering 0 18:22:34.834 93261 willBeComposited (1) != needsToBeComposited(layer, queryData) (0 for layer 0x112001b70 So HTMLMediaElement::createMediaPlayer creates a new MediaPlayer object, which does not support accelerated rendering, but RenderLayerBacking::contentChanged(VideoChanged) was never called.
Robert Jenner
Comment 4
2023-06-20 14:50:52 PDT
***
Bug 258095
has been marked as a duplicate of this bug. ***
Robert Jenner
Comment 5
2023-06-20 14:51:16 PDT
***
Bug 258097
has been marked as a duplicate of this bug. ***
Robert Jenner
Comment 6
2023-06-20 14:54:21 PDT
Marked bugs 258095 and 258097 as duplicates of this bug because the tests mentioned in those are hitting the same assertion, and appear to have a similar regression point. The tests that are hitting the same assertion at: media/track/video-track-add-remove.html media/track/video-track-alternate-groups.html media/modern-media-controls/pip-support/pip-support-enabled.html
Jer Noble
Comment 7
2023-06-29 23:42:29 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/15435
EWS
Comment 8
2023-06-30 09:26:59 PDT
Committed
265656@main
(05ca73cb5029): <
https://commits.webkit.org/265656@main
> Reviewed commits have been landed. Closing PR #15435 and removing active labels.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug