Bug 245051

Summary: [WK2] Flaky ASSERTION FAILED: m_gamepads.isEmpty() on gamepad/gamepad-polling-access.html
Product: WebKit Reporter: Ryosuke Niwa <rniwa>
Component: WebCore Misc.Assignee: Marcos Caceres <marcosc>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, beidson, marcosc, ryanhaddad, simon.fraser, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 249023    
Bug Blocks:    

Description Ryosuke Niwa 2022-09-11 12:55:42 PDT
gamepad/gamepad-polling-access.html occasionally fails the following assertions:

hread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x00000001410dad24 WTFCrash + 20
1   com.apple.WebKit              	0x00000001026bf4d0 WTFCrashWithInfo(int, char const*, char const*, int) + 32
2   com.apple.WebKit              	0x0000000104930a68 WebKit::WebGamepadProvider::setInitialGamepads(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&) + 112
3   com.apple.WebKit              	0x00000001045ce558 WebKit::WebProcess::setInitialGamepads(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&) + 32
4   com.apple.WebKit              	0x000000010545a50c void IPC::callMemberFunctionImpl<WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, 0ul>(WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, std::__1::integer_sequence<unsigned long, 0ul>) + 148
5   com.apple.WebKit              	0x0000000105458030 void IPC::callMemberFunction<WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&), std::__1::tuple<WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> >&&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)) + 124
6   com.apple.WebKit              	0x0000000105431c04 void IPC::handleMessage<Messages::WebProcess::SetInitialGamepads, WebKit::WebProcess, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)>(IPC::Connection&, IPC::Decoder&, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WTF::Vector<WebKit::GamepadData, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&)) + 224
7   com.apple.WebKit              	0x000000010542e2a8 WebKit::WebProcess::didReceiveWebProcessMessage(IPC::Connection&, IPC::Decoder&) + 4352
8   com.apple.WebKit              	0x00000001045cd2c4 WebKit::WebProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 116
9   com.apple.WebKit              	0x00000001056cd9f8 IPC::Connection::dispatchMessage(IPC::Decoder&) + 612
10  com.apple.WebKit              	0x00000001056cdf4c IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 632
11  com.apple.WebKit              	0x00000001056ce5a4 IPC::Connection::dispatchOneIncomingMessage() + 216
12  com.apple.WebKit              	0x00000001056ee09c IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_16::operator()() + 72
13  com.apple.WebKit              	0x00000001056edf94 WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_16, void>::call() + 28
14  com.apple.JavaScriptCore      	0x0000000141106358 WTF::Function<void ()>::operator()() const + 124
Comment 1 Alexey Proskuryakov 2022-09-11 14:30:07 PDT
History: https://results.webkit.org/?suite=layout-tests&test=gamepad%2Fgamepad-polling-access.html

This is a regression, the first crash was on 2022-07-11.
Comment 2 Radar WebKit Bug Importer 2022-09-11 14:30:22 PDT
<rdar://problem/99802167>
Comment 3 Alexey Proskuryakov 2022-09-11 14:32:47 PDT
The test was added on 2022-07-10, 252331@main, so it's flakily crashing since introduction.
Comment 4 Simon Fraser (smfr) 2022-11-29 17:03:05 PST
This is slowing down commit-queue.
Comment 5 Marcos Caceres 2022-12-02 00:45:23 PST
Pull request: https://github.com/WebKit/WebKit/pull/7066
Comment 6 EWS 2022-12-03 19:42:30 PST
Committed 257345@main (a53135c21ca4): <https://commits.webkit.org/257345@main>

Reviewed commits have been landed. Closing PR #7066 and removing active labels.