Bug 242593
Summary: | [WPE] assertion when screen refresh rate is enabled | ||
---|---|---|---|
Product: | WebKit | Reporter: | Víctor M. Jáquez L. <vjaquez> |
Component: | WPE WebKit | Assignee: | Nobody <webkit-unassigned> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | bugs-noreply, philn |
Priority: | P2 | ||
Version: | WebKit Nightly Build | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
See Also: |
https://bugs.webkit.org/show_bug.cgi?id=240453 https://github.com/WebPlatformForEmbedded/libwpe/pull/104 |
Víctor M. Jáquez L.
While using Cog master (1650b89), this changeset https://commits.webkit.org/250642@main is part of the initial code path. But, if compiled in debug configuration, an assert is raised:
#0 0x00007ffff2c8f26e in WTFCrash () at /app/webkit/Source/WTF/wtf/Assertions.cpp:328
#1 0x00007fffef54574b in WTFCrashWithInfo () at WTF/Headers/wtf/Assertions.h:754
#2 0x00007ffff0309b2f in WebKit::ThreadedCompositor::targetRefreshRateDidChange (this=0x7fffe2c9d980, rate=0xea60) at /app/webkit/Source/WebKit/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:315 #3 0x00007ffff0c5bb47 in WebKit::LayerTreeHost::targetRefreshRateDidChange (this=0x7fffe2c33b10, rate=0xea60) at /app/webkit/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp:254
#4 0x00007ffff0c5bb0b in WebKit::DrawingAreaCoordinatedGraphics::targetRefreshRateDidChange (this=0x7fffe2c6a000, rate=0xea60) at /app/webkit/Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:469
#5 0x00007fffefbbbff9 in IPC::callMemberFunctionImpl<WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned int), std::tuple<unsigned int>, 0ul> (object=0x7fffe2c6a000, function=&virtual table offset 288, args=...) at /app/webkit/Source/WebKit/Platform/IPC/HandleMessage.h:131
#6 0x00007fffefbbbf4d in IPC::callMemberFunction<WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned int), std::tuple<unsigned int>, std::integer_sequence<unsigned long, 0ul> > (args=..., object=0x7fffe2c6a000, function=&virtual table offset 288) at /app/webkit/Source/WebKit/Platform/IPC/HandleMessage.h:137
#7 0x00007fffefbb8bdc in IPC::handleMessage<Messages::DrawingArea::TargetRefreshRateDidChange, WebKit::DrawingArea, void (WebKit::DrawingArea::*)(unsigned int)> (connection=..., decoder=..., object=0x7fffe2c6a000, function=&virtual table offset 288) at /app/webkit/Source/WebKit/Platform/IPC/HandleMessage.h:259
#8 0x00007fffefbb8947 in WebKit::DrawingArea::didReceiveMessage (this=0x7fffe2c6a000, connection=..., decoder=...) at DerivedSources/WebKit/DrawingAreaMessageReceiver.cpp:79
#9 0x00007ffff01d9313 in IPC::MessageReceiverMap::dispatchMessage (this=0x7fffe2cf1338, connection=..., decoder=...) at /app/webkit/Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:129
#10 0x00007ffff08ee0c1 in WebKit::WebProcess::didReceiveMessage (this=0x7fffe2cf1300, connection=..., decoder=...) at /app/webkit/Source/WebKit/WebProcess/WebProcess.cpp:912
#11 0x00007ffff01afdd2 in IPC::Connection::dispatchMessage (this=0x7fffe2cdf000, decoder=...) at /app/webkit/Source/WebKit/Platform/IPC/Connection.cpp:1108
#12 0x00007ffff01b01b5 in IPC::Connection::dispatchMessage (this=0x7fffe2cdf000, message=...) at /app/webkit/Source/WebKit/Platform/IPC/Connection.cpp:1153
#13 0x00007ffff01b06ad in IPC::Connection::dispatchOneIncomingMessage (this=0x7fffe2cdf000) at /app/webkit/Source/WebKit/Platform/IPC/Connection.cpp:1222
#14 0x00007ffff01b5f25 in IPC::Connection::enqueueIncomingMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >)::$_13::operator()() (this=0x7fffe2cde108) at /app/webkit/Source/WebKit/Platform/IPC/Connection.cpp:1072
#15 0x00007ffff01b5ea9 in WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::unique_ptr<IPC::Decoder, std::default_delete<IPC::Decoder> >)::$_13, void>::call() (this=0x7fffe2cde100) at WTF/Headers/wtf/Function.h:53
#16 0x00007fffef5c8ba2 in WTF::Function<void ()>::operator()() const (this=0x7fffffff5250) at WTF/Headers/wtf/Function.h:82
#17 0x00007ffff2ce72ce in WTF::RunLoop::performWork (this=0x7fffe2cf8000) at /app/webkit/Source/WTF/wtf/RunLoop.cpp:133
#18 0x00007ffff2d929c9 in WTF::RunLoop::RunLoop()::$_1::operator()(void*) const (this=0x7fffe2cf8000, userData=0x7fffe2cf8000) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:80
#19 0x00007ffff2d929a5 in WTF::RunLoop::RunLoop()::$_1::__invoke(void*) (userData=0x7fffe2cf8000) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:79
#20 0x00007ffff2d92959 in WTF::RunLoop::$_0::operator() (this=0x2470c0, source=0x2470c0, callback=0x7ffff2d92990 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7fffe2cf8000) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:53
#21 0x00007ffff2d91b55 in WTF::RunLoop::$_0::__invoke (source=0x2470c0, callback=0x7ffff2d92990 <WTF::RunLoop::RunLoop()::$_1::__invoke(void*)>, userData=0x7fffe2cf8000) at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:45
#22 0x00007fffe88ca294 in g_main_dispatch (context=0x245f10) at ../glib/gmain.c:3381
#23 g_main_context_dispatch (context=0x245f10) at ../glib/gmain.c:4099
#24 0x00007fffe88ca638 in g_main_context_iterate (context=0x245f10, block=block@entry=0x1, dispatch=dispatch@entry=0x1, self=<optimized out>) at ../glib/gmain.c:4175
#25 0x00007fffe88ca943 in g_main_loop_run (loop=0x226610) at ../glib/gmain.c:4373
#26 0x00007ffff2d920d8 in WTF::RunLoop::run () at /app/webkit/Source/WTF/wtf/glib/RunLoopGLib.cpp:108
#27 0x00007ffff0c8ee34 in WebKit::AuxiliaryProcessMainBase<WebKit::WebProcess, true>::run (this=0x7fffffff5528, argc=0x3, argv=0x7fffffff56d8) at /app/webkit/Source/WebKit/Shared/AuxiliaryProcessMain.h:70
#28 0x00007ffff0c81b30 in WebKit::AuxiliaryProcessMain<WebKit::WebProcessMainWPE> (argc=0x3, argv=0x7fffffff56d8) at /app/webkit/Source/WebKit/Shared/AuxiliaryProcessMain.h:96
#29 0x00007ffff0c7ee4b in WebKit::WebProcessMain (argc=0x3, argv=0x7fffffff56d8) at /app/webkit/Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp:75
#30 0x0000000000201872 in main (argc=0x3, argv=0x7fffffff56d8) at /app/webkit/Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:31
AFAIK https://commits.webkit.org/250642@main is not complete, since, even that targetRefreshRateDidChange is called in the WebProcess through IPC, it is not called in the expected thread, but in the main one, and the assert is raised.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Philippe Normand
I think this was fixed in https://commits.webkit.org/254427@main
Víctor M. Jáquez L.
(In reply to Philippe Normand from comment #1)
> I think this was fixed in https://commits.webkit.org/254427@main
Yes, it should be fixed now. I cannot verify it right now, but still I'll close it now, and reopen later if needed.