Closed Bug 1579798 Opened 5 years ago Closed 11 days ago

Crash in [@ mozilla::AudioSink::PopFrames]

Categories

(Core :: Audio/Video: Playback, defect, P3)

x86
Windows 7
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox69 --- wontfix
firefox70 --- fix-optional
firefox71 --- affected

People

(Reporter: jcristau, Unassigned)

Details

(Keywords: crash)

Crash Data

This bug is for crash report bp-a41b8276-ffe3-4167-a336-1feb60190908. For some reason there were quite a few crash reports with that signature yesterday, mostly from youtube URLs.

Top 10 frames of crashing thread:

0  @0xbf110b56 
1 xul.dll class mozilla::UniquePtr<mozilla::AudioStream::Chunk, mozilla::DefaultDelete<mozilla::AudioStream::Chunk> > mozilla::AudioSink::PopFrames dom/media/mediasink/AudioSink.cpp:287
2 xul.dll void mozilla::AudioStream::GetUnprocessed dom/media/AudioStream.cpp:484
3 xul.dll long mozilla::AudioStream::DataCallback dom/media/AudioStream.cpp:571
4 xul.dll static long mozilla::AudioStream::DataCallback_S dom/media/AudioStream.h:281
5 xul.dll long cubeb_resampler_speex<float, cubeb_resampler_speex_one_way<float>, cubeb_resampler_speex_one_way<float> >::fill_internal_output media/libcubeb/src/cubeb_resampler.cpp:160
6 xul.dll static long `anonymous namespace'::refill media/libcubeb/src/cubeb_wasapi.cpp:739
7 xul.dll static bool `anonymous namespace'::refill_callback_output media/libcubeb/src/cubeb_wasapi.cpp:1071
8 xul.dll static unsigned int `anonymous namespace'::wasapi_stream_render_loop media/libcubeb/src/cubeb_wasapi.cpp
9 ucrtbase.dll _o____lc_collate_cp_func 

NI myself for further investigation.

Flags: needinfo?(alwu)
Priority: -- → P2

From [1], if wasabi could call data callback after we stop cubeb, it's possible to run AudioStream::DataCallback() after we released AudioStream.

In addition, as we unlock the moniter in Shutdown() [2], it allows DataCallback() to be called before changing mState to SHUTDOWN. Is it any way to unregister callback function when we shutdown the audio stream?

[1] https://searchfox.org/mozilla-central/rev/250f5cc9fb8bdcbb6b23d2a06acfd48addb2f99b/dom/media/AudioStream.cpp#400-401
[2] https://searchfox.org/mozilla-central/rev/250f5cc9fb8bdcbb6b23d2a06acfd48addb2f99b/dom/media/AudioStream.cpp#397

Flags: needinfo?(alwu) → needinfo?(padenot)

(In reply to Alastor Wu [:alwu] from comment #2)

From [1], if wasabi could call data callback after we stop cubeb, it's possible to run AudioStream::DataCallback() after we released AudioStream.

In addition, as we unlock the moniter in Shutdown() [2], it allows DataCallback() to be called before changing mState to SHUTDOWN. Is it any way to unregister callback function when we shutdown the audio stream?

[1] https://searchfox.org/mozilla-central/rev/250f5cc9fb8bdcbb6b23d2a06acfd48addb2f99b/dom/media/AudioStream.cpp#400-401
[2] https://searchfox.org/mozilla-central/rev/250f5cc9fb8bdcbb6b23d2a06acfd48addb2f99b/dom/media/AudioStream.cpp#397

When cubeb_stream_stop or cubeb_stream_destroy has returned, there is the guarantee that the DataCallback is not going to be called anymore. Are we sure it's being called?

Flags: needinfo?(padenot) → needinfo?(alwu)
QA Whiteboard: qa-not-actionable

Since the crash volume is low (less than 5 per week), the severity is downgraded to S3. Feel free to change it back if you think the bug is still critical.

For more information, please visit auto_nag documentation.

Severity: critical → S3

Change its priority due to low crash volume.

Flags: needinfo?(alwu)
Priority: P2 → P3

Closing because no crashes reported for 12 weeks.

Status: NEW → RESOLVED
Closed: 11 days ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.