TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo ASSERTION FAILED: !isInRoutingArbitrationForToken(token) ./platform/audio/mac/SharedRoutingArbitrator.mm(55) : void WebCore::SharedRoutingArbitrator::beginRoutingArbitrationForToken(const WebCore::SharedRoutingArbitrator::Token &, AudioSession::CategoryType, WebCore::SharedRoutingArbitrator::ArbitrationCallback &&) 1 0x11053a999 WTFCrash 2 0x12d0f842b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x12ed13ff8 WebCore::SharedRoutingArbitrator::beginRoutingArbitrationForToken(WebCore::SharedRoutingArbitrator::Token const&, WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&) 4 0x11b8d3559 WebKit::AudioSessionRoutingArbitratorProxy::beginRoutingArbitrationWithCategory(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&) 5 0x11a371398 void IPC::callMemberFunctionImpl<WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&), void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged), std::__1::tuple<WebCore::AudioSession::CategoryType>, 0ul>(WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&), WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&, std::__1::tuple<WebCore::AudioSession::CategoryType>&&, std::__1::integer_sequence<unsigned long, 0ul>) 6 0x11a36ed45 void IPC::callMemberFunction<WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&), void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged), std::__1::tuple<WebCore::AudioSession::CategoryType>, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WebCore::AudioSession::CategoryType>&&, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&, WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&)) 7 0x11a36ce1e void IPC::handleMessageAsync<Messages::AudioSessionRoutingArbitratorProxy::BeginRoutingArbitrationWithCategory, WebKit::AudioSessionRoutingArbitratorProxy, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&)>(IPC::Connection&, IPC::Decoder&, WebKit::AudioSessionRoutingArbitratorProxy*, void (WebKit::AudioSessionRoutingArbitratorProxy::*)(WebCore::AudioSession::CategoryType, WTF::CompletionHandler<void (WebCore::AudioSessionRoutingArbitrationClient::RoutingArbitrationError, WebCore::AudioSessionRoutingArbitrationClient::DefaultRouteChanged)>&&)) 8 0x11a36cbe7 WebKit::AudioSessionRoutingArbitratorProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 9 0x11a8cf875 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 10 0x11b8066fe WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) 11 0x11bad73cf WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 12 0x11a3ce474 IPC::Connection::dispatchMessage(IPC::Decoder&) 13 0x11a3cec3f IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 14 0x11a3cd1da IPC::Connection::dispatchIncomingMessages() 15 0x11a3f05e2 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_12::operator()() 16 0x11a3f04ee WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_12, void>::call() 17 0x110568582 WTF::Function<void ()>::operator()() const 18 0x1105f0880 WTF::RunLoop::performWork() 19 0x1105f5201 WTF::RunLoop::performWork(void*) 20 0x7fff205a097c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 21 0x7fff205a08e4 __CFRunLoopDoSource0 22 0x7fff205a0664 __CFRunLoopDoSources0 23 0x7fff2059f08c __CFRunLoopRun 24 0x7fff2059e64c CFRunLoopRunSpecific 25 0x7fff2132c647 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 26 0x10d7a985e TestWebKitAPI::Util::run(bool*) 27 0x10d74f3ec -[WKWebView(TestWebKitAPI) objectByEvaluatingJavaScript:] 28 0x10d0fb546 GPUProcess_CrashWhilePlayingVideo_Test::TestBody()::$_0::operator()() const 29 0x10d0faff7 GPUProcess_CrashWhilePlayingVideo_Test::TestBody() 30 0x10da35324 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) 31 0x10d9f701b void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI.GPUProcess.CrashWhilePlayingVideo
It looks like this started with https://trac.webkit.org/changeset/278374/webkit
<rdar://problem/79041423>
Created attachment 431233 [details] Patch
Created attachment 431252 [details] [fast-cq] Patch for landing
Committed r278811 (238766@main): <https://commits.webkit.org/238766@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 431252 [details].
It looks like this crash is still occurring found it for this test http/tests/cache/disk-cache/disk-cache-media-small.html on a run of r278821 History: https://results.webkit.org/?suite=layout-tests&test=http%2Ftests%2Fcache%2Fdisk-cache%2Fdisk-cache-media-small.html
also is seems this change caused TestWebKitAPI.GPUProcess.ExitsUnderMemoryPressureVideoCase to start crashing on debug queues for Big Sur with the same assert as the others: ASSERTION FAILED: isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing history: https://results.webkit.org/?suite=api-tests&test=TestWebKitAPI.GPUProcess.ExitsUnderMemoryPressureVideoCase
(In reply to Truitt Savell from comment #6) > It looks like this crash is still occurring > > found it for this test > http/tests/cache/disk-cache/disk-cache-media-small.html > on a run of r278821 > > History: > https://results.webkit.org/?suite=layout- > tests&test=http%2Ftests%2Fcache%2Fdisk-cache%2Fdisk-cache-media-small.html Disregard this, this is a slightly different assert with isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing
(In reply to Truitt Savell from comment #8) > Disregard this, this is a slightly different assert with > isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing This assertion failure will be fixed in bug 226896. Let's close this bug.