WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
314269
[GTK][WPE] ASSERTION FAILED: m_wrapper in OffscreenCanvas::dispatchEvent for webgl/lose-context-after-context-lost.html
https://bugs.webkit.org/show_bug.cgi?id=314269
Summary
[GTK][WPE] ASSERTION FAILED: m_wrapper in OffscreenCanvas::dispatchEvent for ...
Fujii Hironori
Reported
2026-05-06 18:07:11 PDT
[GTK][WPE] ASSERTION FAILED: m_wrapper in OffscreenCanvas::dispatchEvent for webgl/lose-context-after-context-lost.html History:
https://results.webkit.org/?suite=layout-tests&test=webgl%2Flose-context-after-context-lost.html&platform=GTK&platform=WPE
https://build.webkit.org/results/GTK-Linux-64-bit-Debug-Tests/312703@main%20(18895)/webgl/lose-context-after-context-lost-stderr.txt
ASSERTION FAILED: m_wrapper ../../../Source/WebCore/bindings/js/JSEventListener.h(171) : JSC::JSObject* WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&) const 1 0x7f5fac39ba57 WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&) const 2 0x7f5fac39d673 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) 3 0x7f5fad5b3cec WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::Ref<WebCore::RegisteredEventListener, WTF::RawPtrTraits<WebCore::RegisteredEventListener>, WTF::DefaultRefDerefTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 2ul, WTF::FastMalloc>, WebCore::EventTarget::EventInvokePhase) 4 0x7f5fad5b369e WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) 5 0x7f5fad59ceea WebCore::EventContext::handleLocalEvents(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) const 6 0x7f5fad59d7fc dispatchEventInDOM 7 0x7f5fad5a1403 dispatchEventWithType<WebCore::EventTarget> 8 0x7f5fad59eaa0 WebCore::EventDispatcher::dispatchEvent(std::span<WebCore::EventTarget* const, 18446744073709551615ul>, WebCore::Event&) 9 0x7f5fade1941d WebCore::OffscreenCanvas::dispatchEvent(WebCore::Event&) 10 0x7f5fadf4a8bc operator()<WebCore::CanvasBase> 11 0x7f5fadf4a9ea call 12 0x7f5fadcf734c WTF::Function<void (WebCore::CanvasBase&)>::operator()(WebCore::CanvasBase&) const 13 0x7f5fade1d035 operator()<WebCore::OffscreenCanvas> 14 0x7f5fade1d064 operator() 15 0x7f5fade22cf2 call 16 0x7f5fa50407ee WTF::Function<void ()>::operator()() const 17 0x7f5fad5ab9b2 WebCore::EventLoopFunctionDispatchTask::execute() 18 0x7f5fad5aa527 WebCore::EventLoop::run(JSC::VM&, std::optional<WTF::ApproximateTime>) 19 0x7f5fad9797b0 WebCore::WindowEventLoop::didReachTimeToRun() 20 0x7f5fad97fa92 WebCore::Timer::Timer<WebCore::WindowEventLoop, WebCore::WindowEventLoop>(WebCore::WindowEventLoop&, void (WebCore::WindowEventLoop::*)())::{lambda()#1}::operator()() const 21 0x7f5fad993d16 WTF::Detail::CallableWrapper<WebCore::Timer::Timer<WebCore::WindowEventLoop, WebCore::WindowEventLoop>(WebCore::WindowEventLoop&, void (WebCore::WindowEventLoop::*)())::{lambda()#1}, void>::call() 22 0x7f5fa50407ee WTF::Function<void ()>::operator()() const 23 0x7f5fa685978a WebCore::Timer::fired() 24 0x7f5faecc6039 WebCore::ThreadTimers::sharedTimerFiredInternal() 25 0x7f5faecc5831 operator() 26 0x7f5faecd859c call 27 0x7f5fa50407ee WTF::Function<void ()>::operator()() const 28 0x7f5faebdd48b WebCore::MainThreadSharedTimer::fired() 29 0x7f5faebdee0c WTF::RunLoop::Timer::Timer<WebCore::MainThreadSharedTimer>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebCore::MainThreadSharedTimer*, void (WebCore::MainThreadSharedTimer::*)())::{lambda()#1}::operator()() const 30 0x7f5faebe4808 WTF::Detail::CallableWrapper<WTF::RunLoop::Timer::Timer<WebCore::MainThreadSharedTimer>(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral, WebCore::MainThreadSharedTimer*, void (WebCore::MainThreadSharedTimer::*)())::{lambda()#1}, void>::call() 31 0x7f5fa50407ee WTF::Function<void ()>::operator()() const WebKitWebProcess terminated (pid 4034991) for reason: crash
Attachments
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2026-05-14 00:46:42 PDT
This is reproducible on my PC.
> ./Tools/Scripts/run-webkit-tests --gtk --release --no-retry --force --iter=1000 --exit-after-n-crash=1 --no-timeout -f --child=10 webgl/lose-context-after-context-lost.html
Fujii Hironori
Comment 2
2026-05-14 00:48:16 PDT
I'm using GTK release build with ENABLE_ASSERTS=1 of
313226@main
.
Fujii Hironori
Comment 3
2026-05-14 01:08:05 PDT
This is the backtrace on my PC. webglcontextlost event is dispatched. Thread 1 (Thread 0x7f14345e8f00 (LWP 323507)): #0 0x00007f1441924319 in WTFCrash () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libjavascriptcoregtk-6.0.so.1 #1 0x00007f1447507e88 in WTFCrashWithInfo(int, char const*, char const*) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #2 0x00007f144a4f7949 in WebCore::JSEventListener::ensureJSFunction(WebCore::ScriptExecutionContext&) const () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #3 0x00007f144a4f6666 in WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&, WebCore::Event&) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #4 0x00007f144aad2498 in WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&, WTF::Vector<WTF::Ref<WebCore::RegisteredEventListener, WTF::RawPtrTraits<WebCore::RegisteredEventListener>, WTF::DefaultRefDerefTraits<WebCore::RegisteredEventListener> >, 1ul, WTF::CrashOnOverflow, 2ul, WTF::FastMalloc>, WebCore::EventTarget::EventInvokePhase) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #5 0x00007f144aad1d13 in WebCore::EventTarget::fireEventListeners(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #6 0x00007f144aabdfc9 in WebCore::EventContext::handleLocalEvents(WebCore::Event&, WebCore::EventTarget::EventInvokePhase) const () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #7 0x00007f144aac0e61 in WebCore::dispatchEventInDOM(WebCore::Event&, WebCore::EventPath const&, WebCore::Document::EventListenerCounts const&) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #8 0x00007f144aac1255 in WebCore::EventDispatcher::dispatchEvent(std::span<WebCore::EventTarget* const, 18446744073709551615ul>, WebCore::Event&) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #9 0x00007f144b0caea1 in non-virtual thunk to WebCore::OffscreenCanvas::dispatchEvent(WebCore::Event&) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #10 0x00007f144b18a499 in WTF::Detail::CallableWrapper<WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent()::$_0, void, WebCore::CanvasBase&>::call(WebCore::CanvasBase&) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #11 0x00007f144aac75c4 in WebCore::EventLoop::run(JSC::VM&, std::optional<WTF::ApproximateTime>) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #12 0x00007f144acffcc5 in WebCore::WindowEventLoop::didReachTimeToRun() () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #13 0x00007f144ad05e7e in WebCore::Timer::Timer<WebCore::WindowEventLoop, WebCore::WindowEventLoop>(WebCore::WindowEventLoop&, void (WebCore::WindowEventLoop::*)()) requires (WTF::HasRefPtrMemberFunctions<WebCore::WindowEventLoop>::value&&(!WTF::HasThreadSafeWeakPtrFunctions<WebCore::WindowEventLoop>::value))&&WTF::HasWeakPtrFunctions<WebCore::WindowEventLoop>::value::{lambda()#1}::operator()() const () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #14 0x00007f144b9bad32 in WebCore::ThreadTimers::sharedTimerFiredInternal() () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #15 0x00007f1441a5e842 in WTF::RunLoop::TimerBase::TimerBase(WTF::Ref<WTF::RunLoop, WTF::RawPtrTraits<WTF::RunLoop>, WTF::DefaultRefDerefTraits<WTF::RunLoop> >&&, WTF::ASCIILiteral)::$_0::__invoke(void*) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libjavascriptcoregtk-6.0.so.1 #16 0x00007f1441a5c5d9 in WTF::RunLoop::$_3::__invoke(_GSource*, int (*)(void*), void*) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libjavascriptcoregtk-6.0.so.1 #17 0x00007f1441d0ef7f in g_main_dispatch (context=context@entry=0x5618ab9f5c10) at ../../../../../jhbuild/checkout/glib/glib/gmain.c:3357 #18 0x00007f1441d116f8 in g_main_context_dispatch_unlocked (context=0x5618ab9f5c10) at ../../../../../jhbuild/checkout/glib/glib/gmain.c:4208 #19 g_main_context_dispatch (context=0x5618ab9f5c10) at ../../../../../jhbuild/checkout/glib/glib/gmain.c:4196 #20 0x00007f1441a5cd29 in WTF::RunLoop::runGLibMainLoopIteration(WTF::RunLoop::MayBlock) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libjavascriptcoregtk-6.0.so.1 #21 0x00007f1441a5d0d7 in WTF::RunLoop::run() () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libjavascriptcoregtk-6.0.so.1 #22 0x00007f14487a8273 in WebKit::WebProcessMain(int, char**) () from /sdk/webkit/WebKitBuild/GTK/Release/lib/libwebkitgtk-6.0.so.4 #23 0x00007f143be701ca in __libc_start_call_main (main=main@entry=0x5618ab699990 <main>, argc=argc@entry=4, argv=argv@entry=0x7ffd3fabb568) at ../sysdeps/nptl/libc_start_call_main.h:58 #24 0x00007f143be7028b in __libc_start_main_impl (main=0x5618ab699990 <main>, argc=4, argv=0x7ffd3fabb568, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd3fabb558) at ../csu/libc-start.c:360 #25 0x00005618ab6998c5 in _start ()
Fujii Hironori
Comment 4
2026-05-14 02:45:38 PDT
Pull request:
https://github.com/WebKit/WebKit/pull/64921
EWS
Comment 5
2026-05-17 19:38:00 PDT
Committed
313384@main
(2be1403ca6cd): <
https://commits.webkit.org/313384@main
> Reviewed commits have been landed. Closing PR #64921 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