RESOLVED FIXED 226896
Some http/tests/ are crashing with ASSERTION FAILED: isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing
https://bugs.webkit.org/show_bug.cgi?id=226896
Summary Some http/tests/ are crashing with ASSERTION FAILED: isInRoutingArbitrationFo...
Truitt Savell
Reported 2021-06-10 13:07:55 PDT
Attachments
Patch (1.81 KB, patch)
2021-06-15 17:16 PDT, Peng Liu
no flags
A follow-up patch (1.60 KB, patch)
2021-06-16 11:32 PDT, Peng Liu
no flags
Radar WebKit Bug Importer
Comment 1 2021-06-10 13:08:30 PDT
Ryan Haddad
Comment 2 2021-06-10 13:16:09 PDT
Ryan Haddad
Comment 3 2021-06-10 13:16:42 PDT
ASSERTION FAILED: isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing ./platform/audio/mac/SharedRoutingArbitrator.mm(123) : void WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken(const WebCore::SharedRoutingArbitrator::Token &) 1 0x113791579 WTFCrash 2 0x12d45b1fb WTFCrashWithInfo(int, char const*, char const*, int) 3 0x12f076cb1 WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken(WebCore::SharedRoutingArbitrator::Token const&) 4 0x11d1d329c WebKit::AudioSessionRoutingArbitratorProxy::endRoutingArbitration() 5 0x11bc44234 void IPC::callMemberFunctionImpl<WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(), std::__1::tuple<> >(WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(), std::__1::tuple<>&&, std::__1::integer_sequence<unsigned long>) 6 0x11bc43e40 void IPC::callMemberFunction<WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(), std::__1::tuple<>, std::__1::integer_sequence<unsigned long> >(std::__1::tuple<>&&, WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)()) 7 0x11bc3f808 void IPC::handleMessage<Messages::AudioSessionRoutingArbitratorProxy::EndRoutingArbitration, WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)()>(IPC::Decoder&, WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)()) 8 0x11bc3f573 WebKit::AudioSessionRoutingArbitratorProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 9 0x11c19f4e5 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 10 0x11d0fafde WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) 11 0x11d3d6ecf WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
Alexey Proskuryakov
Comment 4 2021-06-11 19:45:34 PDT
Is this different from bug 226787?
Peng Liu
Comment 5 2021-06-15 15:47:02 PDT
(In reply to Alexey Proskuryakov from comment #4) > Is this different from bug 226787? I think so.
Peng Liu
Comment 6 2021-06-15 17:16:03 PDT
EWS
Comment 7 2021-06-15 22:40:34 PDT
Committed r278922 (238853@main): <https://commits.webkit.org/238853@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431502 [details].
Darin Adler
Comment 8 2021-06-16 09:11:04 PDT
Comment on attachment 431502 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431502&action=review > Source/WebCore/platform/audio/mac/SharedRoutingArbitrator.mm:124 > + if (m_tokens.contains(token)) > + m_tokens.remove(token); Why check contains before calling remove? This adds an additional hash table lookup and has no other effect other than making the code run more slowly. The point of this patch was to remove an incorrect assertion. Why change the code outside the assertion at all?
Peng Liu
Comment 9 2021-06-16 09:57:38 PDT
Comment on attachment 431502 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=431502&action=review >> Source/WebCore/platform/audio/mac/SharedRoutingArbitrator.mm:124 >> + m_tokens.remove(token); > > Why check contains before calling remove? This adds an additional hash table lookup and has no other effect other than making the code run more slowly. > > The point of this patch was to remove an incorrect assertion. Why change the code outside the assertion at all? Oops. I thought the remove() function assumes the item must exist in the hash set. So I added the check. Will remove it.
Peng Liu
Comment 10 2021-06-16 10:41:01 PDT
Reopen this bug to land a follow-up fix.
Peng Liu
Comment 11 2021-06-16 11:32:43 PDT
Created attachment 431573 [details] A follow-up patch
EWS
Comment 12 2021-06-16 15:22:13 PDT
Committed r278958 (238886@main): <https://commits.webkit.org/238886@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431573 [details].
Note You need to log in before you can comment on or make changes to this bug.