Created attachment 416261 [details] crash log webrtc/video-rotation-no-cvo.html appears to be a flaky GPU process crash on iOS Thread 4 Crashed:: Dispatch queue: LibWebRTCCodecsQueue 0 com.apple.WebKit 0x0000000101a11093 IPC::Connection::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::OptionSet<IPC::SendOption>) + 17 (Connection.cpp:453) 1 com.apple.WebKit 0x0000000101ac263a bool IPC::Connection::send<Messages::LibWebRTCCodecs::CompletedEncoding>(Messages::LibWebRTCCodecs::CompletedEncoding&&, unsigned long long, WTF::OptionSet<IPC::SendOption>) + 84 2 com.apple.WebKit 0x0000000101ac25e0 invocation function for block in WebKit::LibWebRTCCodecsProxy::createEncoder(WTF::ObjectIdentifier<WebKit::RTCEncoderIdentifierType>, WTF::String const&, WTF::Vector<std::__1::pair<WTF::String, WTF::String>, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc> const&, bool) + 62 (LibWebRTCCodecsProxy.mm:138) 3 libwebrtc.dylib 0x0000000108210eb6 invocation function for block in webrtc::createLocalEncoder(webrtc::SdpVideoFormat const&, void (unsigned char const*, unsigned long, webrtc::WebKitEncodedFrameInfo const&) block_pointer) + 310 4 libwebrtc.dylib 0x00000001080c68bb -[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:isKeyFrameRequired:] + 795 (RTCVideoEncoderH264.mm:937) 5 libwebrtc.dylib 0x00000001080c628f (anonymous namespace)::compressionOutputCallback(void*, void*, int, unsigned int, opaqueCMSampleBuffer*) + 95 (RTCVideoEncoderH264.mm:186) 6 com.apple.VideoToolbox 0x0000000113dad300 VTEncoderSessionEmitEncodedFrame + 324 7 H264SW.videocodec 0x0000000123807661 H264VideoEncoder_EmitEncodedFrame + 1090 8 H264SW.videocodec 0x00000001238071c4 H264VideoEncoder_CompleteFrames + 308 9 H264SW.videocodec 0x000000012380474f H264VideoEncoder_Invalidate + 71 10 com.apple.VideoToolbox 0x0000000113da5a52 VTCompressionSessionInvalidate + 90 11 libwebrtc.dylib 0x00000001080c63d7 -[RTCVideoEncoderH264 destroyCompressionSession] + 23 (RTCVideoEncoderH264.mm:811) 12 libwebrtc.dylib 0x00000001080c5c96 -[RTCVideoEncoderH264 releaseEncoder] + 22 (RTCVideoEncoderH264.mm:598) 13 libwebrtc.dylib 0x0000000108210f37 webrtc::releaseLocalEncoder(void*) + 23 (WebKitEncoder.mm:354) 14 com.apple.WebKit 0x0000000101ac28b8 WebKit::LibWebRTCCodecsProxy::releaseEncoder(WTF::ObjectIdentifier<WebKit::RTCEncoderIdentifierType>) + 40 (LibWebRTCCodecsProxy.mm:148) 15 com.apple.WebKit 0x0000000101ab0b71 WebKit::LibWebRTCCodecsProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 567 (LibWebRTCCodecsProxyMessageReceiver.cpp:77) 16 libdispatch.dylib 0x0000000104e6632f _dispatch_call_block_and_release + 12 17 libdispatch.dylib 0x0000000104e67508 _dispatch_client_callout + 8 18 libdispatch.dylib 0x0000000104e6d3f9 _dispatch_lane_serial_drain + 715 19 libdispatch.dylib 0x0000000104e6df74 _dispatch_lane_invoke + 403 20 libdispatch.dylib 0x0000000104e78577 _dispatch_workloop_worker_thread + 782 21 libsystem_pthread.dylib 0x0000000105310a3d _pthread_wqthread + 290 22 libsystem_pthread.dylib 0x000000010530fb77 start_wqthread + 15 https://results.webkit.org/?suite=layout-tests&test=webrtc%2Fvideo-rotation-no-cvo.html
<rdar://problem/72347652>
I think the first crash on iOS appeared at r270416, but since this is flaky it is probably related to something before that: https://trac.webkit.org/log/webkit/?action=stop_on_copy&mode=stop_on_copy&rev=270416&stop_rev=270402+&limit=100&verbose=on CC'ing Chris because there were a couple of GPU Process related IPC changes in there, but I have not tried reproducing this locally to bisect.
This is a fallout of moving IPC handling in background threads.
Created attachment 416263 [details] Patch
Committed r270905: <https://trac.webkit.org/changeset/270905> All reviewed patches have been landed. Closing bug and clearing flags on attachment 416263 [details].