Closed Bug 1046470 Opened 8 years ago Closed 8 years ago

cubeb audiounit_stream_init crash in media/libcubeb/src/cubeb_audiounit.c

Categories

(Core :: Audio/Video, defect)

30 Branch
All
macOS
defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla34
Tracking Status
firefox34 --- verified

People

(Reporter: cpeterson, Assigned: padenot)

References

Details

(Keywords: crash, regression)

Crash Data

Attachments

(2 files)

This bug was filed from the Socorro interface:

bp-18127f1f-f203-4cae-949b-4958a2140731
bp-97bd8175-d7c4-4071-97ff-627042140730
bp-9d1fc614-1a72-49ce-9c26-2ad1e2140730
bp-a21a2386-712f-4148-80a5-ec4902140730
bp-a21a2386-712f-4148-80a5-ec4902140730

I've hit this AudioStream crash a couple times in the past day on OS X 10.9. Is this a stack overflow? The stack trace appears to have 1024 stack frames!

Ø 0 	libsystem_malloc.dylib 	libsystem_malloc.dylib@0xdc9c 	
Ø 1 	libsystem_malloc.dylib 	libsystem_malloc.dylib@0xe3c2 	
Ø 2 	libsystem_malloc.dylib 	libsystem_malloc.dylib@0x10867 	
Ø 3 	CoreFoundation 	CoreFoundation@0x2fec 	
Ø 4 	CoreFoundation 	CoreFoundation@0x555f 	
Ø 5 	CoreFoundation 	CoreFoundation@0x1a7c5 	
Ø 6 	CoreAudio 	CoreAudio@0x1c86f 	
Ø 7 	CoreAudio 	CoreAudio@0x1c5d2 	
Ø 8 	CoreAudio 	CoreAudio@0x1b304 	
Ø 9 	CoreAudio 	CoreAudio@0x1ad24 	
Ø 10 	CoreAudio 	CoreAudio@0x1ac01 	
Ø 11 	CoreAudio 	CoreAudio@0x6ee4 	
Ø 12 	CoreAudio 	CoreAudio@0x6d0f 	
Ø 13 	CoreAudio 	CoreAudio@0x5e54 	
Ø 14 	CoreAudio 	CoreAudio@0x993d 	
Ø 15 	CoreAudio 	CoreAudio@0x2ce9e 	
Ø 16 	CoreAudio 	CoreAudio@0x2de51 	
Ø 17 	AudioToolbox 	AudioToolbox@0xf646e
Ø 18 	AudioToolbox 	AudioToolbox@0xf0f79 	
19 	XUL 	audiounit_stream_init 	media/libcubeb/src/cubeb_audiounit.c
20 	XUL 	mozilla::AudioStream::OpenCubeb(cubeb_stream_params&, mozilla::AudioStream::LatencyRequest) 	content/media/AudioStream.cpp
21 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
22 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
23 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
24 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
25 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
26 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
27 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
28 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
29 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
30 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
31 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
32 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
33 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
34 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
35 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
36 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
37 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
38 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
39 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
40 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
41 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
42 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
43 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
44 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
45 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
46 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
47 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
48 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
49 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
50 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
51 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
52 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
53 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
54 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
55 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
56 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
57 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
58 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
59 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
60 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
61 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
62 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
63 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
64 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
65 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
66 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
67 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
68 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
69 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
70 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
71 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
72 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
73 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
74 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
75 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
76 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
77 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
78 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
79 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
80 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
81 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
82 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
83 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
84 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
85 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
86 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
87 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
88 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
89 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
1015 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
1016 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
1017 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
1018 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
1019 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
1020 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
1021 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
1022 	XUL 	mozilla::AudioStream::CheckForStart() 	content/media/AudioStream.cpp
1023 	XUL 	mozilla::AudioStream::Reset() 	content/media/AudioStream.cpp
1024 	XUL 	mozilla::AudioStream::PanOutputIfNeeded(bool) 	content/media/AudioStream.cpp
Paul: is this cubeb crash a regression from bug 1027713? I hit this crash when playing a YouTube video. The STR are similar to bug 1046231 but the stack traces are different.
Flags: needinfo?(paul)
Summary: audiounit_stream_init crash in media/libcubeb/src/cubeb_audiounit.c → cubeb audiounit_stream_init crash in media/libcubeb/src/cubeb_audiounit.c
See Also: → 1046231
Assignee: nobody → paul
Flags: needinfo?(paul)
Comment on attachment 8465398 [details] [diff] [review]
Properly unregister property listeners in AudioUnit cubeb backend. r=

This fixes it for me. It appears to be 10.9 only.
Attachment #8465398 - Flags: review?(kinetik)
(In reply to :Ehsan Akhgari (not reading bugmail, needinfo? me!) from comment #5)
> FWIW this is 100% reproducible on
> <https://crash-stats.mozilla.com/report/index/887d1c63-2521-430d-9c49-
> a25902140731>.  Play the game and select the "easy" level:

That was supposed to be <http://race.assassinscreedpirates.com/?utm_source=Twitter&utm_medium=IEdev&utm_content=Launch&utm_campaign=Pirates%20Launch/>.
Comment on attachment 8465585 [details] [diff] [review]
Only reset low latency stream, and properly unlock the Mutex. r=

Review of attachment 8465585 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with Reset cleaned up

::: content/media/AudioStream.cpp
@@ -1171,5 @@
>      init->Dispatch();
>      return;
>    }
> -  // High latency - open synchronously
> -  OpenCubeb(params, mLatencyRequest);

If this is removed, should CheckForStart as well?  And I presume there's an if LowLatency in there which is now spurious with the assert above.
Attachment #8465585 - Flags: review?(rjesup) → review+
Attachment #8465398 - Flags: review?(kinetik) → review+
Blocks: 1046231
https://hg.mozilla.org/mozilla-central/rev/74a5786c55e6
https://hg.mozilla.org/mozilla-central/rev/734d89f7cef3
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
Duplicate of this bug: 1047683
Thanks to Ehsan's STR in comment #6, I reproduced the issue using the following build:
- http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2014-07-31-03-02-06-mozilla-central/

Went through verification using the following build:
- http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/2014-08-18-03-02-05-mozilla-central/

- opened the link in comment #6 and closed my MPB (OSX 10.9.4), waited about 5 minutes and re-opened it
- went through the above test case ten different times without reproducing the original issue

I also went through testing in bug # 1046231 comment # 13 (same issue) and couldn't reproduce the original issue using those test cases.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.