RESOLVED FIXED 237588
[GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
https://bugs.webkit.org/show_bug.cgi?id=237588
Summary [GTK][WPE] Crash during the WebPage::close() related to GL resources destruction
Pablo Saavedra
Reported 2022-03-08 01:37:52 PST
``` #0 __libc_do_syscall () at libc-do-syscall.S:49 #1 0x748eda56 in __libc_signal_restore_set (set=0x689fe6c0) at ../sysdeps/unix/sysv/linux/internal-signals.h:86 #2 __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:48 #3 0x748de768 in __GI_abort () at abort.c:79 #4 0x744eb84c in get_dlopen_handle (handle=<optimized out>, exit_on_fail=true, load=true, lib_name=0x745094b0 "libGL.so.1") at ../libepoxy-1.5.4/src/dispatch_common.c:316 #5 get_dlopen_handle (handle=<optimized out>, lib_name=0x745094b0 "libGL.so.1", exit_on_fail=<optimized out>, load=<optimized out>) at ../libepoxy-1.5.4/src/dispatch_common.c:293 #6 0x744eb890 in epoxy_load_gl () at ../libepoxy-1.5.4/src/dispatch_common.c:683 #7 0x744ebd8e in epoxy_gl_dlsym (name=0x744f98d8 <entrypoint_strings+10212> "glDeleteTextures") at ../libepoxy-1.5.4/src/dispatch_common.c:691 #8 epoxy_get_core_proc_address (name=0x744f98d8 <entrypoint_strings+10212> "glDeleteTextures", core_version=<optimized out>) at ../libepoxy-1.5.4/src/dispatch_common.c:765 #9 0x744c5308 in epoxy_glDeleteTextures_resolver () at src/gl_generated_dispatch.c:81936 #10 epoxy_glDeleteTextures_global_rewrite_ptr (n=1, textures=0x6cd1bb14) at src/gl_generated_dispatch.c:49476 #11 0x75ff8ffa in WebCore::BitmapTextureGL::copyFromExternalTexture(unsigned int) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #12 0x75ff90ec in WebCore::BitmapTextureGL::copyFromExternalTexture(unsigned int) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #13 0x7504fe7e in WebCore::CoordinatedBackingStoreTile::~CoordinatedBackingStoreTile() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #14 0x75058a54 in Nicosia::BackingStoreTextureMapperImpl::updateTile(unsigned int, WebCore::SurfaceUpdateInfo const&, WebCore::IntRect const&) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #15 0x75058a7e in Nicosia::BackingStoreTextureMapperImpl::updateTile(unsigned int, WebCore::SurfaceUpdateInfo const&, WebCore::IntRect const&) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #16 0x750573ea in Nicosia::CompositionLayer::{unnamed type#1}::CompositionLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #17 0x75057b54 in Nicosia::Scene::State::~State() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #18 0x750571e4 in Nicosia::ContentLayer::~ContentLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #19 0x7505724c in Nicosia::BackingStore::~BackingStore() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #20 0x750579e4 in Nicosia::CompositionLayer::LayerState::~LayerState() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #21 0x750571e4 in Nicosia::ContentLayer::~ContentLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #22 0x7505724c in Nicosia::BackingStore::~BackingStore() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #23 0x750579e4 in Nicosia::CompositionLayer::LayerState::~LayerState() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #24 0x750571e4 in Nicosia::ContentLayer::~ContentLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #25 0x7505724c in Nicosia::BackingStore::~BackingStore() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #26 0x750579e4 in Nicosia::CompositionLayer::LayerState::~LayerState() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #27 0x750571e4 in Nicosia::ContentLayer::~ContentLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #28 0x7505724c in Nicosia::BackingStore::~BackingStore() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #29 0x750579e4 in Nicosia::CompositionLayer::LayerState::~LayerState() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #30 0x750571e4 in Nicosia::ContentLayer::~ContentLayer() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #31 0x7505724c in Nicosia::BackingStore::~BackingStore() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #32 0x75057d36 in Nicosia::SceneIntegration::invalidate() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #33 0x74e4ec12 in WebKit::CoordinatedGraphicsScene::~CoordinatedGraphicsScene() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #34 0x74e52f62 in WTF::Detail::CallableWrapper<WebKit::CompositingRunLoop::performTaskSync(WTF::Function<void ()>&&)::$_5, void>::call() () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #35 0x769194aa in WTF::RunLoop::dispatchAfter(WTF::Seconds, WTF::Function<void ()>&&) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 #36 0x76954b80 in WTF::Detail::CallableWrapper<WTF::RunLoop::notify(WTF::RunLoop::Event, char const*)::$_2, void, WTF::Observer<void (WTF::RunLoop::Event, WTF::String const&)>&>::call(WTF::Observer<void (WTF::RunLoop::Event, WTF::String const&)>&) () from /webkit/usr/lib/libWPEWebKit-1.0.so.3.16.8 ``` The crash happens because the layerFlush() triggered immediately after of the WebPage::close() updates the Nicosia layers but it has not its corresponding renderLayerTree() as a part of the callbacks workflow. That situation leaves the layers of the CoordinatedGraphicsScene inconsistent respect the changes initiated in the layers by the layerFlush(). We have 2 options here: 1) the layers from the CoordinatedGraphicsScene will not be update until the renderLayerTree or 2) we will call a renderLayerTree() (or something like that) before the purgeGLResources() What we need from renderLayerTree() is the commitSceneState() the state changes from the m_attributes Good workflow: ``` 2:04 ( thread 1886934752) -- WebPage::WebPage() 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe647a0).backingStore (&0x6fe649c8)= m_nicosia.backingStore; 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe5a7a0).backingStore (&0x6fe5a9c8)= m_nicosia.backingStore; 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe5a020).backingStore (&0x6fe5a248)= m_nicosia.backingStore; 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe64020).backingStore (&0x6fe64248)= m_nicosia.backingStore; 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.backingStore (&0x6fe60a20) = Nicosia::BackingStore::create(Nicosia::BackingStoreTextureMapperImpl::createFactory()); 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe58020).backingStore (&0x6fe58248)= m_nicosia.backingStore; 2:05 ( layerFlush thread 1886934752) -- LayerTreeHost::forceRepaint() 2:05 ( layerFlush thread 1886934752) -- CompositingCoordinator::flushPendingLayerChanges() -- BEGIN 2:05 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6feba7a0).backingStore (&0x6feba9c8)= m_nicosia.backingStore; 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe649f8 staging.backingStore: &(nil) 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe64278 staging.backingStore: &(nil) 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6feba9f8 staging.backingStore: &(nil) 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe5a278 staging.backingStore: &(nil) 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe5a9f8 staging.backingStore: &(nil) 2:05 ( thread 1886934752) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe58278 staging.backingStore: &(nil) 2:05 ( layerFlush thread 1886934752) -- LayerTreeHost::commitSceneState(const CoordinatedGraphicsState& state(&0x6fe8a314)) 2:05 ( layerFlush thread 1886934752) -- CompositingCoordinator::flushPendingLayerChanges() -- END 2:05 (renderLayerTree thread 1886934752) -- ThreadedCompositor::forceRepaint() -- BEGIN 2:05 (renderLayerTree thread 1886934752) -- ThreadedCompositor::forceRepaint() -- END 2:05 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->applyStateChanges(states) 2:05 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- BEGIN() 2:05 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- END() 2:05 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->paintToCurrentGLContext(...) 2:05 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::paintToCurrentGLContext() -- updateSceneState() 2:05 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- BEGIN -- this: 0x6fe5c000 2:05 ( A thread 1754264208) -- AcceleratedSurfaceLibWPE::initialize() -- frame complete callback -- surface.m_client.frameComplete() 2:05 (!!! layerFlush thread 1754264208) -- LayerTreeHost::frameComplete() -- m_compositor->frameComplete() 2:06 ( thread 1886934752) -- WebPage::close() 2:06 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->applyStateChanges(states) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- BEGIN() 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::commitSceneState() -- m_nicosia(&0x6fe5c008).scene = state(&0x6fe72a80).scene 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- END() 2:06 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->paintToCurrentGLContext(...) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::paintToCurrentGLContext() -- updateSceneState() 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- BEGIN -- this: 0x6fe5c000 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia(&0x6fe5c008).state.layers.size() = 0 ) 2:06 (renderLayerTree thread 1877327884) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia.state(&0x6fe77440) = state(&0x688ff290) this: 0x6fe5c000 state(Nicosia::Scene::State): & 0x6fe77440 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia.state.layers.size() = 8 ) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6feba780)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6febac50) = m_state.staging (& 0x6feba9f8) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe64780)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe64c50) = m_state.staging (& 0x6fe649f8) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe59780)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe59c50) = m_state.staging (& 0x6fe599f8) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe59000)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe594d0) = m_state.staging (& 0x6fe59278) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe58000)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe584d0) = m_state.staging (& 0x6fe58278) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& 0x6fe60a20) = m_state.staging.backingStore (& 0x6fe60a20) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe5a000)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe5a4d0) = m_state.staging (& 0x6fe5a278) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe5a780)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe5ac50) = m_state.staging (& 0x6fe5a9f8) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe64000)->commitState() 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe644d0) = m_state.staging (& 0x6fe64278) 2:06 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- updateBackingStore() -- compositionState.backingStore (&0x6fe4f060) = CoordinatedBackingStore::create() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::purgeBackingStores() -- m_nicosia(&0x6ccde7d0).backingStore = nullptr (&0x6fe60a20) 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- LayerTreeHost::~LayerTreeHost -- m_coordinator->invalidate() 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::invalidate() BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:06 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::purgeBackingStores() -- BEGIN 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::purgeBackingStores() -- registeredLayer->purgeBackingStores() 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::purgeBackingStores() -- registeredLayer->purgeBackingStores() 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::purgeBackingStores() -- END 2:06 ( layerFlush thread 1886934752) -- CompositingCoordinator::invalidate() END 2:06 ( layerFlush thread 1886934752) -- LayerTreeHost::~LayerTreeHost -- m_compositor->invalidate() 2:06 (renderLayerTree thread 1886934752) -- ThreadedCompositor::invalidate() BEGIN 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- END -- m_nicosia.state.layers.size() = 8 ) 2:06 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- purgeGLResources() 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() -- PROPOSAL (not being called now) updateSceneState() 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() this: 0x6fe5c000 -- BEGIN 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() m_nicosia.scene is not null 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() m_nicosia.scene->accessState() -> callback 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe58000))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe584d0 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer() -- if (committed.backingStore) -> compositionState(&0x6fef4574).backingStore = nullptr (&0x6fe4f060 ) 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe64780))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe64c50 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe59780))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe59c50 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe59000))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe594d0 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6feba780))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6febac50 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe5a000))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe5a4d0 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe5a780))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe5ac50 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe64000))? 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe644d0 2:06 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() END 2:06 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- m_context = nullptr 2:06 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- m_client.didDestroyGLContext() 2:06 (!!! layerFlush thread 1754264208) -- LayerTreeHost::didDestroyGLContext() 2:07 (renderLayerTree thread 1886934752) -- ThreadedCompositor::invalidate() END 2:07 ( layerFlush thread 1886934752) -- LayerTreeHost::~LayerTreeHost -- delete m_coordinator 2:07 ( layerFlush thread 1886934752) -- CompositingCoordinator::~CompositingCoordinator() 2:07 ( layerFlush thread 1886934752) -- CompositingCoordinator::~CompositingCoordinator() -- registeredLayer->invalidateCoordinator() 2:07 ( layerFlush thread 1886934752) -- CompositingCoordinator::~CompositingCoordinator() -- registeredLayer->invalidateCoordinator() 2:07 (renderLayerTree thread 1886934752) -- ThreadedCompositor::~ThreadedCompositor() 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 2:07 ( layerFlush thread 1886934752) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 2:07 ( thread 1886934752) -- WebPage::~WebPage() ``` Problem: ``` 0:40 ( thread 1887123168) -- WebPage::WebPage() 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe647a0).backingStore (&0x6fe649c8)= m_nicosia.backingStore; 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe5a7a0).backingStore (&0x6fe5a9c8)= m_nicosia.backingStore; 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe5a020).backingStore (&0x6fe5a248)= m_nicosia.backingStore; 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe64020).backingStore (&0x6fe64248)= m_nicosia.backingStore; 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.backingStore (&0x6fe60a20) = Nicosia::BackingStore::create(Nicosia::BackingStoreTextureMapperImpl::createFactory()); 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe58020).backingStore (&0x6fe58248)= m_nicosia.backingStore; 0:40 ( layerFlush thread 1887123168) -- LayerTreeHost::forceRepaint() 0:40 ( layerFlush thread 1887123168) -- CompositingCoordinator::flushPendingLayerChanges() -- BEGIN 0:40 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6feba7a0).backingStore (&0x6feba9c8)= m_nicosia.backingStore; 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe649f8 staging.backingStore: &(nil) 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe64278 staging.backingStore: &(nil) 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6feba9f8 staging.backingStore: &(nil) 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe5a278 staging.backingStore: &(nil) 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe5a9f8 staging.backingStore: &(nil) 0:40 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe58278 staging.backingStore: &(nil) 0:40 ( layerFlush thread 1887123168) -- LayerTreeHost::commitSceneState(const CoordinatedGraphicsState& state(&0x6fe8a314)) 0:40 ( layerFlush thread 1887123168) -- CompositingCoordinator::flushPendingLayerChanges() -- END 0:40 (renderLayerTree thread 1887123168) -- ThreadedCompositor::forceRepaint() -- BEGIN 0:40 (renderLayerTree thread 1887123168) -- ThreadedCompositor::forceRepaint() -- END 0:40 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->applyStateChanges(states) 0:40 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- BEGIN() 0:40 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- END() 0:40 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->paintToCurrentGLContext(...) 0:40 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::paintToCurrentGLContext() -- updateSceneState() 0:40 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- BEGIN -- this: 0x6fe5c000 0:40 ( A thread 1754264208) -- AcceleratedSurfaceLibWPE::initialize() -- frame complete callback -- surface.m_client.frameComplete() 0:40 (!!! layerFlush thread 1754264208) -- LayerTreeHost::frameComplete() -- m_compositor->frameComplete() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::purgeBackingStores() -- m_nicosia(&0x6ccde7d0).backingStore = nullptr (&0x6fe60a20) 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:41 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->applyStateChanges(states) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- BEGIN() 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::commitSceneState() -- m_nicosia(&0x6fe5c008).scene = state(&0x6feb43c0).scene 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::applyStateChanges() -- END() 0:42 (renderLayerTree thread 1754264208) -- ThreadedCompositor::renderLayerTree() -- m_scene->paintToCurrentGLContext(...) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene::paintToCurrentGLContext() -- updateSceneState() 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- BEGIN -- this: 0x6fe5c000 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia(&0x6fe5c008).state.layers.size() = 0 ) 0:42 (renderLayerTree thread 1877327884) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia.state(&0x6fe77440) = state(&0x688ff290) this: 0x6fe5c000 state(Nicosia::Scene::State): & 0x6fe77440 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- m_nicosia.state.layers.size() = 8 ) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6feba780)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6febac50) = m_state.staging (& 0x6feba9f8) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe64780)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe64c50) = m_state.staging (& 0x6fe649f8) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe59780)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe59c50) = m_state.staging (& 0x6fe599f8) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe59000)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe594d0) = m_state.staging (& 0x6fe59278) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe58000)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe584d0) = m_state.staging (& 0x6fe58278) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& 0x6fe60a20) = m_state.staging.backingStore (& 0x6fe60a20) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe5a000)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe5a4d0) = m_state.staging (& 0x6fe5a278) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe5a780)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe5ac50) = m_state.staging (& 0x6fe5a9f8) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- compositionLayer(&0x6fe64000)->commitState() 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed (& 0x6fe644d0) = m_state.staging (& 0x6fe64278) 0:42 ( thread 1754264208) -- NicosiaPlatformLayer -- commitState() -- m_state.committed.backingStore (& (nil)) = m_state.staging.backingStore (& (nil)) 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- updateBackingStore() -- compositionState.backingStore (&0x6fe4e060) = CoordinatedBackingStore::create() 0:42 ( layerFlush thread 1887123168) -- -------- LayerTreeHost::layerFlushTimerFired() -------- BEGIN -------- <<<<<<<<<<<<<<< !!! This layerFlushTimerFired() affects to the state of the layers and it has not a renderLayerTree() what consolidates those changes in the renderLayerTree thread. 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::flushPendingLayerChanges() -- BEGIN 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::updateSceneState() -- END -- m_nicosia.state.layers.size() = 8 ) 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe3e020).backingStore (&0x6fe3e248)= m_nicosia.backingStore; 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe3d020).backingStore (&0x6fe3d248)= m_nicosia.backingStore; 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe3e7a0).backingStore (&0x6fe3e9c8)= m_nicosia.backingStore; 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe587a0).backingStore (&0x6fe589c8)= m_nicosia.backingStore; 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.backingStore (&0x650db570) = Nicosia::BackingStore::create(Nicosia::BackingStoreTextureMapperImpl::createFactory()); 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x6fe3d7a0).backingStore (&0x6fe3d9c8)= m_nicosia.backingStore; 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.backingStore (&0x650db580) = Nicosia::BackingStore::create(Nicosia::BackingStoreTextureMapperImpl::createFactory()); 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly() -- m_nicosia.layer->updateState() -- callback -- state(&0x656757a0).backingStore (&0x656759c8)= m_nicosia.backingStore; 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe3e278 staging.backingStore: &(nil) 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe3d278 staging.backingStore: &(nil) 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe3d9f8 staging.backingStore: &(nil) 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe589f8 staging.backingStore: &(nil) 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x6fe3e9f8 staging.backingStore: &(nil) 0:42 ( thread 1887123168) -- NicosiaPlatformLayer.h flushState() -- staging.backingStore = pending.backingStore -- staging: &0x656759f8 staging.backingStore: &(nil) 0:42 ( layerFlush thread 1887123168) -- LayerTreeHost::commitSceneState(const CoordinatedGraphicsState& state(&0x6fe8a314)) 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::flushPendingLayerChanges() -- END 0:42 ( layerFlush thread 1887123168) -- -------- LayerTreeHost::layerFlushTimerFired() -------- END -------- 0:42 ( thread 1887123168) -- WebPage::close() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::purgeBackingStores() -- m_nicosia(&0x6ccdf0d0).backingStore = nullptr (&0x650db570) 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::purgeBackingStores() -- m_nicosia(&0x6ccbd7d0).backingStore = nullptr (&0x650db580) 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- LayerTreeHost::~LayerTreeHost -- m_coordinator->invalidate() 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::invalidate() BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- willBeDestroyed() 0:42 ( layerFlush thread 1887123168) -- CoordinatedGraphicsLayer::~CoordinatedGraphicsLayer() -- END 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::purgeBackingStores() -- BEGIN 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::purgeBackingStores() -- registeredLayer->purgeBackingStores() 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::purgeBackingStores() -- registeredLayer->purgeBackingStores() 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::purgeBackingStores() -- END 0:42 ( layerFlush thread 1887123168) -- CompositingCoordinator::invalidate() END 0:42 ( layerFlush thread 1887123168) -- LayerTreeHost::~LayerTreeHost -- m_compositor->invalidate() 0:42 (renderLayerTree thread 1887123168) -- ThreadedCompositor::invalidate() BEGIN 0:42 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- purgeGLResources() 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() -- PROPOSAL (not being called now) updateSceneState() 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() this: 0x6fe5c000 -- BEGIN 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() m_nicosia.scene is not null 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() m_nicosia.scene->accessState() -> callback 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe3d780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe3dc50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x65675780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x65675c50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe3e000))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe3e4d0 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe58780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe58c50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe59780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe59c50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe59000))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe594d0 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe3e780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe3ec50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6feba780))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6febac50 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer(CompositionLayer layer(&0x6fe3d000))? 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- removeLayer()? layer.accessCommitted -- callback -- committed: &0x6fe3d4d0 0:42 (renderLayerTree thread 1754264208) -- CoordinatedGraphicsScene.cpp -- CoordinatedGraphicsScene::purgeGLResources() END 0:42 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- m_context = nullptr 0:42 (renderLayerTree thread 1754264208) -- ThreadedCompositor::invalidate() -- m_client.didDestroyGLContext() 0:42 (!!! layerFlush thread 1754264208) -- LayerTreeHost::didDestroyGLContext() 0:43 (renderLayerTree thread 1887123168) -- ThreadedCompositor::invalidate() END 0:43 ( layerFlush thread 1887123168) -- LayerTreeHost::~LayerTreeHost -- delete m_coordinator 0:43 ( layerFlush thread 1887123168) -- CompositingCoordinator::~CompositingCoordinator() 0:43 ( layerFlush thread 1887123168) -- CompositingCoordinator::~CompositingCoordinator() -- registeredLayer->invalidateCoordinator() 0:43 ( layerFlush thread 1887123168) -- CompositingCoordinator::~CompositingCoordinator() -- registeredLayer->invalidateCoordinator() CRASH!!! ```
Attachments
patch (4.15 KB, patch)
2022-03-08 01:39 PST, Pablo Saavedra
no flags
patch (4.15 KB, patch)
2022-03-08 01:41 PST, Pablo Saavedra
no flags
Pablo Saavedra
Comment 1 2022-03-08 01:39:52 PST
Pablo Saavedra
Comment 2 2022-03-08 01:41:51 PST
EWS
Comment 3 2022-03-16 03:02:17 PDT
Committed r291335 (248474@main): <https://commits.webkit.org/248474@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 454085 [details].
Radar WebKit Bug Importer
Comment 4 2022-03-16 03:03:19 PDT
Note You need to log in before you can comment on or make changes to this bug.