Bug 241449 - Assertion in AudioOutputUnitAdaptor::configure() when running simulator API tests
Summary: Assertion in AudioOutputUnitAdaptor::configure() when running simulator API t...
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: Safari Technology Preview
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: 240692
  Show dependency treegraph
 
Reported: 2022-06-08 21:39 PDT by Simon Fraser (smfr)
Modified: 2022-06-12 21:56 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Fraser (smfr) 2022-06-08 21:39:08 PDT
Running `run-api-tests --no-build --ios-simulator "TestWebKitAPI.GPUProcess.*"` results in several tests that assert here, with an iOS 15.5 SDK:

ASSERTION FAILED: !result
/Volumes/Data/Development/system/webkit/OpenSource/Source/WebCore/platform/audio/ios/AudioOutputUnitAdaptorIOS.cpp(70) : void WebCore::AudioOutputUnitAdaptor::configure(float, unsigned int)
1   0x140c12189 WTFCrash
2   0x16616825b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x166215017 WebCore::AudioOutputUnitAdaptor::configure(float, unsigned int)
4   0x12bf84ed3 WebKit::RemoteAudioDestination::RemoteAudioDestination(WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>, WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&)
5   0x12bf84d7d WebKit::RemoteAudioDestination::RemoteAudioDestination(WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>, WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&)
6   0x12bf84cb6 WTF::UniqueRef<WebKit::RemoteAudioDestination> WTF::makeUniqueRefWithoutFastMallocCheck<WebKit::RemoteAudioDestination, WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>&, WTF::String const&, unsigned int&, unsigned int&, float&, float&, IPC::Semaphore>(WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>&, WTF::String const&, unsigned int&, unsigned int&, float&, float&, IPC::Semaphore&&)
7   0x12bf82661 WTF::UniqueRef<WebKit::RemoteAudioDestination> WTF::makeUniqueRef<WebKit::RemoteAudioDestination, WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>&, WTF::String const&, unsigned int&, unsigned int&, float&, float&, IPC::Semaphore>(WebKit::GPUConnectionToWebProcess&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>&, WTF::String const&, unsigned int&, unsigned int&, float&, float&, IPC::Semaphore&&)
8   0x12bf823f9 WebKit::RemoteAudioDestinationManager::createAudioDestination(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&)
9   0x12c5ef748 void IPC::callMemberFunctionImpl<WebKit::RemoteAudioDestinationManager, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&), void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>), std::__1::tuple<WTF::String, unsigned int, unsigned int, float, float, IPC::Semaphore>, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul>(WebKit::RemoteAudioDestinationManager*, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&), WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&, std::__1::tuple<WTF::String, unsigned int, unsigned int, float, float, IPC::Semaphore>&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul>)
10  0x12c5eb262 void IPC::callMemberFunction<WebKit::RemoteAudioDestinationManager, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&), void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>), std::__1::tuple<WTF::String, unsigned int, unsigned int, float, float, IPC::Semaphore>, std::__1::integer_sequence<unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul> >(std::__1::tuple<WTF::String, unsigned int, unsigned int, float, float, IPC::Semaphore>&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&, WebKit::RemoteAudioDestinationManager*, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&))
11  0x12c5a3181 bool IPC::handleMessageSynchronous<Messages::RemoteAudioDestinationManager::CreateAudioDestination, WebKit::RemoteAudioDestinationManager, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&)>(IPC::Connection&, IPC::Decoder&, WTF::UniqueRef<IPC::Encoder>&, WebKit::RemoteAudioDestinationManager*, void (WebKit::RemoteAudioDestinationManager::*)(WTF::String const&, unsigned int, unsigned int, float, float, IPC::Semaphore&&, WTF::CompletionHandler<void (WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>)>&&))
12  0x12c5a2f42 WebKit::RemoteAudioDestinationManager::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, WTF::UniqueRef<IPC::Encoder>&)
13  0x12c6b879e WebKit::RemoteAudioDestinationManager::didReceiveSyncMessageFromWebProcess(IPC::Connection&, IPC::Decoder&, WTF::UniqueRef<IPC::Encoder>&)
14  0x12c6b83db WebKit::GPUConnectionToWebProcess::dispatchSyncMessage(IPC::Connection&, IPC::Decoder&, WTF::UniqueRef<IPC::Encoder>&)
15  0x12c4fccd1 WebKit::GPUConnectionToWebProcess::didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, WTF::UniqueRef<IPC::Encoder>&)
16  0x12cec735a IPC::Connection::dispatchSyncMessage(IPC::Decoder&)
17  0x12cec7f5b IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
18  0x12cec13f3 IPC::Connection::SyncMessageState::ConnectionAndIncomingMessage::dispatch()
19  0x12cec1688 IPC::Connection::SyncMessageState::dispatchMessagesAndResetDidScheduleDispatchMessagesForConnection(IPC::Connection&)
20  0x12ced97ac IPC::Connection::SyncMessageState::processIncomingMessage(IPC::Connection&, std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >&)::$_5::operator()()
21  0x12ced96d9 WTF::Detail::CallableWrapper<IPC::Connection::SyncMessageState::processIncomingMessage(IPC::Connection&, std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >&)::$_5, void>::call()
22  0x140c3e0d2 WTF::Function<void ()>::operator()() const
23  0x140ccd5e2 WTF::RunLoop::performWork()
24  0x140cd0f0e WTF::RunLoop::performWork(void*)
25  0x110530833 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
26  0x11053072b __CFRunLoopDoSource0
27  0x11052fbf8 __CFRunLoopDoSources0
28  0x11052a2f4 __CFRunLoopRun
29  0x110529a90 CFRunLoopRunSpecific
30  0x110e79e31 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
31  0x110e7a04f -[NSRunLoop(NSRunLoop) run]
Comment 1 Radar WebKit Bug Importer 2022-06-08 21:39:21 PDT
<rdar://problem/94691398>
Comment 2 Simon Fraser (smfr) 2022-06-08 21:53:08 PDT
I tried a second time and saw no assertions. Maybe it depends on some other state on the system?
Comment 3 Simon Fraser (smfr) 2022-06-08 21:54:28 PDT
Given the line numbers in bug 240692, it looks like `AudioUnitSetProperty` is the call that returns an error.