WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
254918
REGRESSION(2.41.1): [GTK] Hang in CompositingRunLoop causes web view content to not display in new web view
https://bugs.webkit.org/show_bug.cgi?id=254918
Summary
REGRESSION(2.41.1): [GTK] Hang in CompositingRunLoop causes web view content ...
Michael Catanzaro
Reported
2023-04-03 07:45:42 PDT
Created
attachment 465746
[details]
All-threads backtrace I have a web process that crashed in WebKit::crashAfter10Seconds on the new watchdog thread after failing to quit within 10 seconds of the UI process shutting down. It was hung in CompositingRunLoop. Here is the backtrace of the main thread, to show what it was doing at the time of the hang: Thread 4 (Thread 0x7fb1b6d6b9c0 (LWP 2)): #0 __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x7fb19e008360) at futex-internal.c:57 #1 __futex_abstimed_wait_common (futex_word=futex_word@entry=0x7fb19e008360, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87 #2 0x00007fb1be08bc1f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x7fb19e008360, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139 #3 0x00007fb1be08e4d1 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=<optimized out>, cond=0x7fb19e008338) at pthread_cond_wait.c:503 #4 ___pthread_cond_wait (cond=0x7fb19e008338, mutex=<optimized out>) at pthread_cond_wait.c:618 #5 0x00007fb1bda784a0 in WTF::ThreadCondition::wait(WTF::Mutex&) (this=0x7fb19e008338, mutex=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:603 #6 WTF::ThreadCondition::timedWait(WTF::Mutex&, WTF::WallTime) (this=0x7fb19e008338, mutex=..., absoluteTime=<error reading variable: That operation is not available on integers of more than 8 bytes.>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/posix/ThreadingPOSIX.cpp:613 #7 0x00007fb1bda0ce43 in WTF::ParkingLot::parkConditionallyImpl(void const*, WTF::ScopedLambda<bool ()> const&, WTF::ScopedLambda<void ()> const&, WTF::TimeWithDynamicClockType const&) (address=0x7fb19e11aec1, validation=..., beforeSleep=..., timeout=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/ParkingLot.cpp:595 #8 0x00007fb1bee176db in WTF::ParkingLot::parkConditionally<WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#1}, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#2}>(void const*, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#1} const&, WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&)::{lambda()#2} const&, WTF::TimeWithDynamicClockType const&) (address=0x7fb19e11aec1, validation=..., beforeSleep=..., timeout=...) at WTF/Headers/wtf/ParkingLot.h:82 #9 WTF::Condition::waitUntilUnchecked<WTF::Lock>(WTF::Lock&, WTF::TimeWithDynamicClockType const&) (this=0x7fb19e11aec1, lock=..., timeout=...) at WTF/Headers/wtf/Condition.h:192 #10 0x00007fb1beee3868 in WTF::Condition::waitUntil(WTF::Lock&, WTF::TimeWithDynamicClockType const&) (this=0x7fb19e008360, lock=..., timeout=...) at WTF/Headers/wtf/Condition.h:77 #11 WTF::Condition::wait(WTF::Lock&) (this=0x7fb19e008360, lock=...) at WTF/Headers/wtf/Condition.h:127 #12 WebKit::CompositingRunLoop::performTaskSync(WTF::Function<void ()>&&) (this=0x7fb19e11ae80, function=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:85 #13 0x00007fb1beee4340 in WebKit::ThreadedCompositor::suspend() (this=0x7fb19e071260) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:151 #14 0x00007fb1bf225d4d in WebKit::LayerTreeHost::pauseRendering() (this=0xfffffffffffffe00) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:263 #15 WebKit::DrawingAreaCoordinatedGraphics::suspendPainting() (this=0x7fb19e0ac220) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:611 #16 WebKit::DrawingAreaCoordinatedGraphics::activityStateDidChange(WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&) (this=0x7fb19e0ac220, changed=..., completionHandler=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:408 #17 0x00007fb1bf1eef4b in WebKit::WebPage::setActivityState(WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&) (this=0x7fb19e0b4730, activityState=..., activityStateChangeID=0, callback=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebPage/WebPage.cpp:3775 #18 0x00007fb1bec19c58 in _ZZN3IPC18callMemberFunctionIN6WebKit7WebPageES2_FvN3WTF9OptionSetIN7WebCore13ActivityState4FlagEEEmONS3_17CompletionHandlerIFvvEEEESt5tupleIJS8_mEESA_EEvPT_MT0_T1_OT2_ONS9_IT3_EEENKUlDpOT_E_clIJS8_mEEEDaSS_ (args=@0x7ffc5c766040: 0, this=<optimized out>, args=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:147 #19 _ZSt13__invoke_implIvZN3IPC18callMemberFunctionIN6WebKit7WebPageES3_FvN3WTF9OptionSetIN7WebCore13ActivityState4FlagEEEmONS4_17CompletionHandlerIFvvEEEESt5tupleIJS9_mEESB_EEvPT_MT0_T1_OT2_ONSA_IT3_EEEUlDpOT_E_JS9_mEESH_St14__invoke_otherOSJ_DpOT1_ (__args=@0x7ffc5c766040: 0, __f=<optimized out>, __args=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/invoke.h:61 #20 _ZSt8__invokeIZN3IPC18callMemberFunctionIN6WebKit7WebPageES3_FvN3WTF9OptionSetIN7WebCore13ActivityState4FlagEEEmONS4_17CompletionHandlerIFvvEEEESt5tupleIJS9_mEESB_EEvPT_MT0_T1_OT2_ONSA_IT3_EEEUlDpOT_E_JS9_mEENSt15__invoke_resultISH_JDpT0_EE4typeEOSH_DpOSW_ (__args=@0x7ffc5c766040: 0, __fn=<optimized out>, __args=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../include/c++/12.2.0/bits/invoke.h:96 #21 _ZSt12__apply_implIZN3IPC18callMemberFunctionIN6WebKit7WebPageES3_FvN3WTF9OptionSetIN7WebCore13ActivityState4FlagEEEmONS4_17CompletionHandlerIFvvEEEESt5tupleIJS9_mEESB_EEvPT_MT0_T1_OT2_ONSA_IT3_EEEUlDpOT_E_SG_JLm0ELm1EEEDcOSH_OSJ_St16integer_sequenceImJXspT1_EEE (__t=..., __f=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../include/c++/12.2.0/tuple:1852 #22 _ZSt5applyIZN3IPC18callMemberFunctionIN6WebKit7WebPageES3_FvN3WTF9OptionSetIN7WebCore13ActivityState4FlagEEEmONS4_17CompletionHandlerIFvvEEEESt5tupleIJS9_mEESB_EEvPT_MT0_T1_OT2_ONSA_IT3_EEEUlDpOT_E_SG_EDcOSH_OSJ_ (__t=..., __f=<optimized out>) at /usr/bin/../lib/gcc/x86_64-unknown-linux-gnu/12.2.0/../../../../include/c++/12.2.0/tuple:1863 #23 IPC::callMemberFunction<WebKit::WebPage, WebKit::WebPage, void (WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&), std::tuple<WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long>, void ()>(WebKit::WebPage*, void (WebKit::WebPage::*)(WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&), std::tuple<WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long>&&, WTF::CompletionHandler<void ()>&&) (object=0x7fb19e0b4730, function=<optimized out>, tuple=..., completionHandler=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:145 #24 IPC::handleMessageAsync<Messages::WebPage::SetActivityState, WebKit::WebPage, WebKit::WebPage, void (WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&)>(IPC::Connection&, IPC::Decoder&, WebKit::WebPage*, void (WebKit::WebPage::*)(WTF::OptionSet<WebCore::ActivityState::Flag>, unsigned long, WTF::CompletionHandler<void ()>&&)) (connection=..., decoder=<optimized out>, object=0x7fb19e0b4730, function=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/HandleMessage.h:320 #25 WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&, IPC::Decoder&) (this=0x7fb19e0b4730, connection=..., decoder=<optimized out>) at DerivedSources/WebKit/WebPageMessageReceiver.cpp:292 #26 0x00007fb1bf1fec53 in WebKit::WebPage::didReceiveMessage(IPC::Connection&, IPC::Decoder&) (this=0x7fb19e0b4730, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebPage/WebPage.cpp:5602 #27 0x00007fb1bee9773e in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) (this=<optimized out>, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129 #28 0x00007fb1bf123843 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) (this=0x7fb19e02c180, connection=..., decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/WebProcess/WebProcess.cpp:931 #29 0x00007fb1bee8f9e1 in IPC::Connection::dispatchMessage(IPC::Decoder&) (this=0x7fb19e0501a0, decoder=...) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/Connection.cpp:1197 #30 0x00007fb1bee8fbb5 in IPC::Connection::dispatchMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >) (this=0x7fb19e0501a0, message=std::unique_ptr<IPC::Decoder> = {...}) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/Connection.cpp:1245 #31 0x00007fb1bee8fe15 in IPC::Connection::dispatchOneIncomingMessage() (this=0x7fb19e0501a0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Platform/IPC/Connection.cpp:1310 #32 0x00007fb1bda1010b in WTF::Function<void ()>::operator()() const (this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/Function.h:82 #33 WTF::RunLoop::performWork() (this=0x7fb19e0100e0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/RunLoop.cpp:147 #34 0x00007fb1bda74d7d in WTF::RunLoop::RunLoop()::$_1::operator()(void*) const (userData=0x7fb19e008360, userData@entry=0x7fb19e0100e0, this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:80 #35 WTF::RunLoop::RunLoop()::$_1::__invoke(void*) (userData=0x7fb19e008360) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:79 #36 0x00007fb1bda74161 in WTF::RunLoop::$_0::operator()(_GSource*, int (*)(void*), void*) const (source=0x55c8b3469200, callback=0x7fb1bda74d70 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7fb19e0100e0, this=<optimized out>) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:53 #37 WTF::RunLoop::$_0::__invoke(_GSource*, int (*)(void*), void*) (source=0x55c8b3469200, callback=0x7fb1bda74d70 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7fb19e0100e0) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:45 #38 0x00007fb1ba676d49 in g_main_dispatch (context=<optimized out>) at ../glib/gmain.c:3460 #39 g_main_context_dispatch (context=<optimized out>) at ../glib/gmain.c:4200 #40 0x00007fb1ba6772a8 in g_main_context_iterate (context=0x55c8b342be60, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276 #41 0x00007fb1ba67758f in g_main_loop_run (loop=0x55c8b344f250) at ../glib/gmain.c:4479 #42 0x00007fb1bda74746 in WTF::RunLoop::run() () at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WTF/wtf/glib/RunLoopGLib.cpp:108 #43 0x00007fb1bf237217 in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run(int, char**) (this=0x7ffc5c766680, argc=3, argv=0x7ffc5c766818) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:71 #44 WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainGtk>(int, char**) (argc=3, argv=0x7ffc5c766818) at /buildstream/gnome/sdk/webkitgtk-6.0.bst/Source/WebKit/Shared/AuxiliaryProcessMain.h:97 #45 0x00007fb1be02954a in __libc_start_call_main (main=main@entry=0x55c8b2c13150 <main>, argc=argc@entry=3, argv=argv@entry=0x7ffc5c766818) at ../sysdeps/nptl/libc_start_call_main.h:58 #46 0x00007fb1be02960b in __libc_start_main_impl (main=0x55c8b2c13150 <main>, argc=3, argv=0x7ffc5c766818, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=<optimized out>) at ../csu/libc-start.c:389 #47 0x000055c8b2c13085 in _start () I will attach a backtrace showing all threads. Possibly-relevant: thread 29 is blocked inside WebCore::TextureMapperShaderProgram::create and thread 36 is blocked inside gst_gl_context_egl_create_context.
Attachments
All-threads backtrace
(213.09 KB, text/plain)
2023-04-03 07:45 PDT
,
Michael Catanzaro
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Michael Catanzaro
Comment 1
2023-04-04 05:17:08 PDT
***
Bug 254919
has been marked as a duplicate of this bug. ***
Carlos Garcia Campos
Comment 2
2023-05-22 01:54:26 PDT
Does this still happen?
Michael Catanzaro
Comment 3
2023-05-22 05:37:17 PDT
I have not seen this recently. That said, this bug is not very old, so unless you have some idea what change might have fixed it I would assume it's still broken.
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