Title: [278541] trunk/Source/WebCore
Revision
278541
Author
[email protected]
Date
2021-06-06 20:53:19 -0700 (Sun, 06 Jun 2021)

Log Message

Flaky assertion hit in AudioSessionRoutingArbitratorProxy::endRoutingArbitration()
https://bugs.webkit.org/show_bug.cgi?id=226699

Reviewed by Darin Adler.

If m_setupArbitrationOngoing is true, then beginRoutingArbitrationForToken() only adds the token to
m_tokens once the setup is done, asynchronously. As a result, if endRoutingArbitrationForToken() during
setup, the `isInRoutingArbitrationForToken(token)` assertion will hit, because the token wasn't added
to m_tokens yet. Tweak the assertion so that it doesn't hit when m_setupArbitrationOngoing is true.

This is a speculative fix as I wasn't able to reproduce the assertion hit locally.

* platform/audio/mac/SharedRoutingArbitrator.mm:
(WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (278540 => 278541)


--- trunk/Source/WebCore/ChangeLog	2021-06-07 02:39:33 UTC (rev 278540)
+++ trunk/Source/WebCore/ChangeLog	2021-06-07 03:53:19 UTC (rev 278541)
@@ -1,3 +1,20 @@
+2021-06-06  Chris Dumez  <[email protected]>
+
+        Flaky assertion hit in AudioSessionRoutingArbitratorProxy::endRoutingArbitration()
+        https://bugs.webkit.org/show_bug.cgi?id=226699
+
+        Reviewed by Darin Adler.
+
+        If m_setupArbitrationOngoing is true, then beginRoutingArbitrationForToken() only adds the token to
+        m_tokens once the setup is done, asynchronously. As a result, if endRoutingArbitrationForToken() during
+        setup, the `isInRoutingArbitrationForToken(token)` assertion will hit, because the token wasn't added
+        to m_tokens yet. Tweak the assertion so that it doesn't hit when m_setupArbitrationOngoing is true.
+
+        This is a speculative fix as I wasn't able to reproduce the assertion hit locally.
+
+        * platform/audio/mac/SharedRoutingArbitrator.mm:
+        (WebCore::SharedRoutingArbitrator::endRoutingArbitrationForToken):
+
 2021-06-06  Darin Adler  <[email protected]>
 
         Handle custom identifiers and strings separately, so we can quote strings correctly consistently

Modified: trunk/Source/WebCore/platform/audio/mac/SharedRoutingArbitrator.mm (278540 => 278541)


--- trunk/Source/WebCore/platform/audio/mac/SharedRoutingArbitrator.mm	2021-06-07 02:39:33 UTC (rev 278540)
+++ trunk/Source/WebCore/platform/audio/mac/SharedRoutingArbitrator.mm	2021-06-07 03:53:19 UTC (rev 278541)
@@ -120,7 +120,7 @@
 
 void SharedRoutingArbitrator::endRoutingArbitrationForToken(const Token& token)
 {
-    ASSERT(isInRoutingArbitrationForToken(token));
+    ASSERT(isInRoutingArbitrationForToken(token) || m_setupArbitrationOngoing);
     m_tokens.remove(token);
 
     if (!m_tokens.computesEmpty())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to