RESOLVED FIXED 224790
REGRESSION (r276189): GPUProcess.WebProcessTerminationAfterTooManyGPUProcessCrashes is crashing
https://bugs.webkit.org/show_bug.cgi?id=224790
Summary REGRESSION (r276189): GPUProcess.WebProcessTerminationAfterTooManyGPUProcessC...
Ryan Haddad
Reported 2021-04-19 16:37:05 PDT
Debug API tests are failing to run to completion, as seen here: https://build.webkit.org/#/builders/23/builds/1301/steps/11/logs/stdio The last output before the process is killed is the following assertion: ASSERTION FAILED: isValidIdentifier(m_identifier) /Volumes/Data/worker/bigsur-debug/build/WebKitBuild/Debug/usr/local/include/wtf/ObjectIdentifier.h(69) : void WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>::encode(Encoder &) const [T = WebKit::RemoteAudioDestinationIdentifierType, Encoder = IPC::Encoder] 1 0x13e7dcf99 WTFCrash 2 0x10d8c6d5b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x10e337772 void WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>::encode<IPC::Encoder>(IPC::Encoder&) const 4 0x10e3376dd void IPC::ArgumentCoder<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType>, void>::encode<IPC::Encoder>(IPC::Encoder&, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&) 5 0x10e327ced IPC::Encoder& IPC::Encoder::operator<<<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&>(WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&) 6 0x10f5aa850 void IPC::TupleEncoder<4ul, WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long>::encode<IPC::Encoder>(IPC::Encoder&, std::__1::tuple<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long> const&) 7 0x10f5aa7fd void IPC::ArgumentCoder<std::__1::tuple<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long>, void>::encode<IPC::Encoder>(IPC::Encoder&, std::__1::tuple<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long> const&) 8 0x10f5aa7bd IPC::Encoder& IPC::Encoder::operator<<<std::__1::tuple<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long> const&>(std::__1::tuple<WTF::ObjectIdentifier<WebKit::RemoteAudioDestinationIdentifierType> const&, WebKit::SharedMemory::IPCHandle const&, WebCore::CAAudioStreamDescription const&, unsigned long long> const&) 9 0x10f57a6bb bool IPC::Connection::send<Messages::RemoteAudioDestinationManager::AudioSamplesStorageChanged>(Messages::RemoteAudioDestinationManager::AudioSamplesStorageChanged&&, unsigned long long, WTF::OptionSet<IPC::SendOption>) 10 0x10f579210 WebKit::RemoteAudioDestinationProxy::storageChanged(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long) 11 0x10f5a558c decltype(*(std::__1::forward<WebKit::RemoteAudioDestinationProxy*&>(fp0)).*fp(std::__1::forward<WebKit::SharedMemory*>(fp1), std::__1::forward<WebCore::CAAudioStreamDescription const&>(fp1), std::__1::forward<unsigned long>(fp1))) std::__1::__invoke<void (WebKit::RemoteAudioDestinationProxy::*&)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), WebKit::RemoteAudioDestinationProxy*&, WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long, void>(void (WebKit::RemoteAudioDestinationProxy::*&)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), WebKit::RemoteAudioDestinationProxy*&, WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&) 12 0x10f5a5487 std::__1::__bind_return<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&>, __is_valid_bind_return<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&> >::value>::type std::__1::__apply_functor<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >, 0ul, 1ul, 2ul, 3ul, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&> >(void (WebKit::RemoteAudioDestinationProxy::*&)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >&, std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&>&&) 13 0x10f5a53c6 std::__1::__bind_return<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&>, __is_valid_bind_return<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), std::__1::tuple<WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1>, std::__1::placeholders::__ph<2>, std::__1::placeholders::__ph<3> >, std::__1::tuple<WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&> >::value>::type std::__1::__bind<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&, std::__1::placeholders::__ph<3> const&>::operator()<WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long>(WebKit::SharedMemory*&&, WebCore::CAAudioStreamDescription const&, unsigned long&&) 14 0x10f5a52fd WTF::Detail::CallableWrapper<std::__1::__bind<void (WebKit::RemoteAudioDestinationProxy::*)(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long), WebKit::RemoteAudioDestinationProxy*, std::__1::placeholders::__ph<1> const&, std::__1::placeholders::__ph<2> const&, std::__1::placeholders::__ph<3> const&>, void, WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long>::call(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long) 15 0x10eb70713 WTF::Function<void (WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long)>::operator()(WebKit::SharedMemory*, WebCore::CAAudioStreamDescription const&, unsigned long) const 16 0x10eb70608 WebKit::SharedRingBufferStorage::setStorage(WTF::RefPtr<WebKit::SharedMemory, WTF::RawPtrTraits<WebKit::SharedMemory>, WTF::DefaultRefDerefTraits<WebKit::SharedMemory> >&&, WebCore::CAAudioStreamDescription const&, unsigned long) 17 0x10eb70812 WebKit::SharedRingBufferStorage::deallocate() 18 0x1220b2735 WebCore::CARingBuffer::deallocate() 19 0x1220b29bf WebCore::CARingBuffer::allocate(WebCore::CAAudioStreamDescription const&, unsigned long) 20 0x10f5795d9 WebKit::RemoteAudioDestinationProxy::ensureGPUProcessConnection() 21 0x10f579fe0 WebKit::RemoteAudioDestinationProxy::startRendering(WTF::CompletionHandler<void (bool)>&&) 22 0x10f57a7f4 WebKit::RemoteAudioDestinationProxy::gpuProcessConnectionDidClose(WebKit::GPUProcessConnection&) 23 0x10f45cc5e WebKit::GPUProcessConnection::didClose(IPC::Connection&) 24 0x10d966fc7 IPC::Connection::connectionDidClose()::$_8::operator()() 25 0x10d966e9e WTF::Detail::CallableWrapper<IPC::Connection::connectionDidClose()::$_8, void>::call() 26 0x13e808842 WTF::Function<void ()>::operator()() const 27 0x13e88d365 WTF::RunLoop::performWork() 28 0x13e891c21 WTF::RunLoop::performWork(void*) 29 0x7fff2043fa0c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 30 0x7fff2043f974 __CFRunLoopDoSource0 31 0x7fff2043f6ef __CFRunLoopDoSources0
Attachments
Patch (7.78 KB, patch)
2021-04-19 17:53 PDT, Chris Dumez
no flags
Patch (7.78 KB, patch)
2021-04-19 17:54 PDT, Chris Dumez
no flags
Patch (9.37 KB, patch)
2021-04-19 18:04 PDT, Chris Dumez
no flags
Radar WebKit Bug Importer
Comment 1 2021-04-19 16:37:27 PDT
Chris Dumez
Comment 2 2021-04-19 16:47:28 PDT
I think this may be a regression from https://trac.webkit.org/changeset/276189/webkit.
Chris Dumez
Comment 3 2021-04-19 17:53:22 PDT
Chris Dumez
Comment 4 2021-04-19 17:54:10 PDT
Chris Dumez
Comment 5 2021-04-19 18:02:10 PDT
Chris Dumez
Comment 6 2021-04-19 18:02:28 PDT
Test temporarily skipped in <https://commits.webkit.org/r276280> to make the bots happy.
Chris Dumez
Comment 7 2021-04-19 18:02:40 PDT
Reopening for the real fix.
Chris Dumez
Comment 8 2021-04-19 18:04:15 PDT
EWS
Comment 9 2021-04-19 21:49:55 PDT
Committed r276284 (236766@main): <https://commits.webkit.org/236766@main> All reviewed patches have been landed. Closing bug and clearing flags on attachment 426503 [details].
Note You need to log in before you can comment on or make changes to this bug.