RendererWebAudioDeviceImpl may use invalid render frame ID when creating sink |
||||
Issue descriptionBy accident, when hacking the code for testing purposes, I hit the following DCHECK: [1:1:0526/164623:FATAL:audio_message_filter.cc(80)] Check failed: render_frame_id > 0 (-2 vs. 0) #0 0x7f64f11a683e base::debug::StackTrace::StackTrace() #1 0x7f64f12096cf logging::LogMessage::~LogMessage() #2 0x7f64ebd9b117 content::AudioMessageFilter::CreateAudioOutputIPC() #3 0x7f64ebd9392e content::(anonymous namespace)::NewOutputDevice() #4 0x7f64ebd930a3 content::AudioDeviceFactory::NewFinalAudioRendererSink() #5 0x7f64ebd93220 content::AudioDeviceFactory::NewAudioRendererSink() #6 0x7f64ebde555a content::RendererWebAudioDeviceImpl::start() When there's no render frame, RendererWebAudioDeviceImpl::start() uses MSG_ROUTING_NONE as render frame ID, but that is not accepted when creating the audio output IPC. AudioOutputIPCImpl stores the render frame ID as const at creation, so the DCHECK there is valid.
,
May 29 2017
Maybe someone feels like taking a look? I don't know when this can happen and what would happen in production if it does. If I understand my own report, this is only for WebAudio.
,
May 29 2017
I see this large and relevant-looking CL landed after this issue was reported: https://codereview.chromium.org/2501863003, so this issue might not reproduce anymore? Maybe we should just close it? Only tangentially related, passing the frame id as a callback in https://cs.chromium.org/chromium/src/content/renderer/media/renderer_webaudiodevice_impl.cc?l=121 looks unnecessary, as the frame id is already known at construction time. Similarly for the device_params_cb.
,
Oct 11 2017
How do I reproduce this? I don't see any DCHECK failure shown above. If this is not reproducible any more, we should close it.
,
Oct 12 2017
The path is still the same as the original call stack, from [1] to [2], and the DCHECK is still there. However, the |frame_id_| set in RendererWebAudioDeviceImpl is now DCHECK'd to not be MSG_ROUTING_NONE[3]. So this issue is no more, maybe the CL in #3 did it. [1] https://cs.chromium.org/chromium/src/content/renderer/media/renderer_webaudiodevice_impl.cc?dr=CSs&q=RendererWebAudioDeviceImpl::start&sq=package:chromium&l=165 [2] https://cs.chromium.org/chromium/src/content/renderer/media/audio_message_filter.cc?dr=CSs&sq=package:chromium&l=75 [3] https://cs.chromium.org/chromium/src/content/renderer/media/renderer_webaudiodevice_impl.cc?dr=CSs&sq=package:chromium&l=132 |
||||
►
Sign in to add a comment |
||||
Comment 1 by sheriffbot@chromium.org
, May 29 2017Status: Untriaged (was: Available)