Bug 222585 - [GStreamer] webrtc/video-h264.html is crashing in debug
Summary: [GStreamer] webrtc/video-h264.html is crashing in debug
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebRTC (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-03-01 19:45 PST by Lauro Moura
Modified: 2023-01-11 06:24 PST (History)
5 users (show)

See Also:


Attachments
Full crash log on a local run (106.00 KB, text/plain)
2021-03-01 19:45 PST, Lauro Moura
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Lauro Moura 2021-03-01 19:45:00 PST
Created attachment 421898 [details]
Full crash log on a local run

webrtc/video-h264.html

Happens in both GTK/WPE, seems to have started between:

WPE: r270185 and r270193
GTK: r270189 and r270194

Maybe r270190/bug218787?

This test was also affected by the soup crash from bug221379, which changed the cause of the crash for a while before reverting to the one this issue covers.

Results dashboard: https://results.webkit.org/?suite=layout-tests&test=webrtc%2Fvideo-h264.html

Thread 1 trace (full trace attached):

Thread 1 (Thread 0x7f95f01a39c0 (LWP 57)):
#0  WTFCrash() () at ../../Source/WTF/wtf/Assertions.cpp:295
#1  0x00007f9603a56d85 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713
#2  0x00007f960874bc3f in WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate(WebCore::RTCIceCandidate&) (this=0x7f95404980c8, candidate=...) at ../../Source/WebCore/Modules/mediastream/libwebrtc/LibWebRT
CPeerConnectionBackend.cpp:288
#3  0x00007f96063a5d54 in WebCore::PeerConnectionBackend::addIceCandidate(WebCore::RTCIceCandidate*, WebCore::DOMPromiseDeferred<void>&&) (this=0x7f95404980c8, iceCandidate=0x7f959c70d960, promise=...) at ../../
Source/WebCore/Modules/mediastream/PeerConnectionBackend.cpp:351
#4  0x00007f96063ebc7f in operator()<WTF::Ref<WebCore::DeferredPromise> >(WTF::Ref<WebCore::DeferredPromise, WTF::RawPtrTraits<WebCore::DeferredPromise> >&&) (__closure=0x7f954044d3c8, promise=...) at ../../Sour
ce/WebCore/Modules/mediastream/RTCPeerConnection.cpp:328
#5  0x00007f96063ebcd6 in WTF::Detail::CallableWrapper<WebCore::RTCPeerConnection::addIceCandidate(WebCore::RTCPeerConnection::Candidate&&, WTF::Ref<WebCore::DeferredPromise>&&)::<lambda(auto:68&&)>, void, WTF::
Ref<WebCore::DeferredPromise, WTF::RawPtrTraits<WebCore::DeferredPromise> >&&>::call(WTF::Ref<WebCore::DeferredPromise, WTF::RawPtrTraits<WebCore::DeferredPromise> > &&) (this=0x7f954044d3c0, in#0=...) at Derive
dSources/ForwardingHeaders/wtf/Function.h:52
#6  0x00007f96051ef49f in WTF::Function<void (WTF::Ref<WebCore::DeferredPromise, WTF::RawPtrTraits<WebCore::DeferredPromise> >&&)>::operator()(WTF::Ref<WebCore::DeferredPromise, WTF::RawPtrTraits<WebCore::Deferr
edPromise> >&&) const (this=0x7ffcbf059158, in#0=...) at DerivedSources/ForwardingHeaders/wtf/Function.h:83
#7  0x00007f96063db39e in operator()() const (__closure=0x7f954044d2f0) at ../../Source/WebCore/Modules/mediastream/RTCPeerConnection.cpp:816
#8  0x00007f96063ebbc0 in WTF::Detail::CallableWrapper<WebCore::RTCPeerConnection::chainOperation(WTF::Ref<WebCore::DeferredPromise>&&, WTF::Function<void(WTF::Ref<WebCore::DeferredPromise>&&)>&&)::<lambda()>, v
oid>::call(void) (this=0x7f954044d2e8) at DerivedSources/ForwardingHeaders/wtf/Function.h:52
#9  0x00007f9603ac534d in WTF::Function<void ()>::operator()() const (this=0x7f954044f808) at DerivedSources/ForwardingHeaders/wtf/Function.h:83
#10 0x00007f9606789452 in operator()(JSC::JSGlobalObject*, JSC::CallFrame*) (__closure=0x7f954044f808) at ../../Source/WebCore/bindings/js/JSDOMPromise.cpp:52
#11 0x00007f960678dabd in WTF::Detail::CallableWrapper<WebCore::DOMPromise::whenPromiseIsSettled(WebCore::JSDOMGlobalObject*, JSC::JSObject*, WTF::Function<void()>&&)::<lambda(JSC::JSGlobalObject*, JSC::CallFram
e*)>, long int, JSC::JSGlobalObject*, JSC::CallFrame*>::call(JSC::JSGlobalObject *, JSC::CallFrame *) (this=0x7f954044f800, in#0=0x7f95ef81f068, in#1=0x7ffcbf0592d0) at DerivedSources/ForwardingHeaders/wtf/Funct
ion.h:52
#12 0x00007f960a3bfec4 in WTF::Function<long (JSC::JSGlobalObject*, JSC::CallFrame*)>::operator()(JSC::JSGlobalObject*, JSC::CallFrame*) const (this=0x7f95082f81d0, in#0=0x7f95ef81f068, in#1=0x7ffcbf0592d0) at D
erivedSources/ForwardingHeaders/wtf/Function.h:83
#13 0x00007f960a9422e8 in JSC::runStdFunction(JSC::JSGlobalObject*, JSC::CallFrame*) (globalObject=0x7f95ef81f068, callFrame=0x7ffcbf0592d0) at ../../Source/JavaScriptCore/runtime/JSNativeStdFunction.cpp:64
#14 0x00007f95af7ff1d8 in  ()
#15 0x00007ffcbf059370 in  ()
#16 0x00007f95af80a88a in  ()
#17 0x0000000000000000 in  ()


STDERR:

STDERR: (audio_processing_impl.cc:272): Injected APM submodules:
STDERR: Echo control factory: 0
STDERR: Echo detector: 0
STDERR: Capture analyzer: 0
STDERR: Capture post processor: 0
STDERR: Render pre processor: 0
STDERR: (webrtc_voice_engine.cc:258): WebRtcVoiceEngine::WebRtcVoiceEngine
STDERR: (webrtc_video_engine.cc:588): WebRtcVideoEngine::WebRtcVideoEngine()
STDERR: (webrtc_voice_engine.cc:280): WebRtcVoiceEngine::Init
STDERR: (webrtc_voice_engine.cc:367): WebRtcVoiceEngine::ApplyOptions: AudioOptions {aec: 1, agc: 1, ns: 1, hf: 1, swap: 0, audio_jitter_buffer_max_packets: 200, audio_jitter_buffer_fast_accelerate: 0, audio_jit
ter_buffer_min_delay_ms: 0, audio_jitter_buffer_enable_rtx_handling: 0, typing: 1, experimental_agc: 0, experimental_ns: 0, residual_echo_detector: 1, }
STDERR: (webrtc_voice_engine.cc:482): Stereo swapping enabled? 0
STDERR: (webrtc_voice_engine.cc:487): NetEq capacity is 200
STDERR: (webrtc_voice_engine.cc:493): NetEq fast mode? 0
STDERR: (webrtc_voice_engine.cc:499): NetEq minimum delay is 0
STDERR: (webrtc_voice_engine.cc:505): NetEq handle reordered packets? 0
STDERR: (webrtc_voice_engine.cc:525): Experimental ns is enabled? 0
STDERR: (webrtc_voice_engine.cc:576): NS set to 1
STDERR: (webrtc_voice_engine.cc:580): Typing detection is enabled? 1
STDERR: (audio_processing_impl.cc:529): AudioProcessing::ApplyConfig: AudioProcessing::Config{ pipeline: {maximum_internal_processing_rate: 48000, multi_channel_render: 0, , multi_channel_capture: 0}, pre_amplifier: { enabled: 0, fixed_gain_factor: 1 }, high_pass_filter: { enabled: 1 }, echo_canceller: { enabled: 1, mobile_mode: 0, enforce_high_pass_filtering: 1 }, noise_suppression: { enabled: 1, level: High }, transient_suppression: { enabled: 0 }, voice_detection: { enabled: 1 }, gain_controller1: { enabled: 1, mode: AdaptiveAnalog, target_level_dbfs: 3, compression_gain_db: 9, enable_limiter: 1, analog_level_minimum: 0, analog_level_maximum: 255 }, gain_controller2: { enabled: 0, fixed_digital: { gain_db: 0 }, adaptive_digital: { enabled: 0, level_estimator: Rms, use_saturation_protector: 1, extra_saturation_margin_db: 2 } }, residual_echo_detector: { enabled: 1 }, level_estimation: { enabled: 0 } }
STDERR: (agc_manager_direct.cc:69): [agc] GetMinMicLevel
STDERR: (agc_manager_direct.cc:73): [agc] Using default min mic level: 12
STDERR: (agc_manager_direct.cc:457): AgcManagerDirect::Initialize
STDERR: (field_trial.cc:140): Setting field trial string:WebRTC-H264Simulcast/Enabled/
STDERR: (peer_connection_factory.cc:390): Using default network controller factory
STDERR: (bitrate_prober.cc:73): Bandwidth probing enabled, set to inactive
STDERR: (cpu_info.cc:53): Available number of cores: 12
STDERR: (aimd_rate_control.cc:113): Using aimd rate control with back off factor 0.85
STDERR: (remote_bitrate_estimator_single_stream.cc:72): RemoteBitrateEstimatorSingleStream: Instantiating.
STDERR: (remote_estimator_proxy.cc:50): Maximum interval between transport feedback RTCP messages (ms): 250
STDERR: (openssl_identity.cc:43): Making key pair
STDERR: (used_ids.h:55): Duplicate id found. Reassigning from 103 to 127
STDERR: (used_ids.h:55): Duplicate id found. Reassigning from 105 to 125
STDERR: (webrtc_video_engine.cc:3316): Absent receive stream; ignoring clearing encoded frame sink for ssrc 0
STDERR: (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
STDERR: (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
STDERR: (balanced_degradation_settings.cc:96): Unsupported size, value ignored.
STDERR: (video_send_stream_impl.cc:260): ERROR: Initial encoder max bitrate = -1 which is <= 0!
STDERR: (cpu_speed_experiment.cc:28): Unsupported size, value ignored.
STDERR: (used_ids.h:55): Duplicate id found. Reassigning from 103 to 127
STDERR: (used_ids.h:55): Duplicate id found. Reassigning from 105 to 125
STDERR: (webrtc_video_engine.cc:1130): SetRecvParameters called with unsupported video codec: VideoCodec[102:H264]
STDERR: (peer_connection.cc:3364): Failed to set local video description recv parameters for m-section with mid='0'. (INVALID_PARAMETER)
STDERR: (sdp_offer_answer.cc:1711): Failed to set local offer sdp: Failed to set local video description recv parameters for m-section with mid='0'.
STDERR: (webrtc_video_engine.cc:3316): Absent receive stream; ignoring clearing encoded frame sink for ssrc 0
STDERR: (sdp_offer_answer.cc:1914): SetRemoteDescription: Session error code: ERROR_CONTENT. Session error description: Failed to set local video description recv parameters for m-section with mid='0'..
STDERR: (sdp_offer_answer.cc:2061): AddIceCandidate: ICE candidates can't be added without any remote session description.
STDERR: SHOULD NEVER BE REACHED
STDERR: ../../Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp(288) : virtual void WebCore::LibWebRTCPeerConnectionBackend::doAddIceCandidate(WebCore::RTCIceCandidate&)
Comment 1 Philippe Normand 2023-01-11 06:24:52 PST
This test no longer crashes since we moved to GstWebRTC. It is flagged as slow though, see bug 235885. Closing.