Closed Bug 1400465 Opened 7 years ago Closed 7 years ago

Plugging in or unplugging headphones crashes YouTube tab

Categories

(Core :: Audio/Video: cubeb, defect, P1)

57 Branch
defect

Tracking

()

RESOLVED FIXED
mozilla57
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- unaffected
firefox56 --- unaffected
firefox57 + verified

People

(Reporter: theo, Assigned: achronop)

References

Details

(4 keywords)

Noticed this today, hopefully it’s a quite recent regression.

STR:

- Play a video on YouTube
- Plug in your headphones (or unplug them)

→ Tab crashes

I can reproduce with a fresh profile.

Here’s a report from one of my crashes:
https://crash-stats.mozilla.com/report/index/673298c6-58e9-45ac-8b5a-14af90170916
Hm, empty signature. Similar to bug 1385531.
See Also: → 1385531
This Reddit user appears to be experiencing something very similar: https://www.reddit.com/r/firefox/comments/70bb15/plugging_in_headphones_with_microphone_crashes/

Interestingly, they write:

"This only happens if my headphones have an in-built microphone, regular headphones without the controls / microphone part do not crash the tab.

I am on macOS 10.12.6, and Nightly 57.0a1 (2017-09-15) (64-bit)"
Performed further tests:

- It’s probably a macOS specific issue (I can’t reproduce on Windows)
- I can reproduce the issue with both regular headphones (Sennheiser CX 300 II) and 1MORE Triple Driver (has a microphone and remote controls)
- I can’t reproduce bug 1385531
Last good revision: bad8adc4d1de2d2957740babe98d55356275e0d7
First bad revision: 29713567c35d87d08c5d755712763b15c672208f
Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=bad8adc4d1de2d2957740babe98d55356275e0d7&tochange=29713567c35d87d08c5d755712763b15c672208f

Looks like it’s caused by Bug 1399905, Alex could you have a look?
Blocks: 1399905
Flags: needinfo?(achronop)
Component: Untriaged → Audio/Video: cubeb
Product: Firefox → Core
Since there is no callstack can you please get logs: cubeb:4,MediaStreamGraph:4
Flags: needinfo?(achronop) → needinfo?(theo)
Here’s what I get, let me know if I can do something else:


2017-09-16 18:21:19.670 plugin-container[93548:9798432] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0xba37, name = 'com.apple.tsm.portname'
See /usr/include/servers/bootstrap_defs.h for the error codes.
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2210: (0x1227f5400) Opening output side: rate 48000, channels 2, format 2, latency in frames 512.
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2233: (0x1227f5400) Output device sampling rate: 44100,00
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2033: (0x1227f5400) No need to update output buffer size already 512 frames
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2281: (0x1227f5400) Output audiounit init successfully.
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2539: (0x1227f5400) Cubeb stream init successful.
[MediaPlayback #3]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:2628: Cubeb stream (0x1227f5400) started successfully.
[Unnamed thread 0x120fe75e0]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:706: (0x1227f5400) Audio device changed, 1 events.
[Unnamed thread 0x120fe75e0]: E/cubeb /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp:735: Event[0] - mSelector == kAudioHardwarePropertyDataSource for id=46
Assertion failed: ((flags & DEV_INPUT && stm->input_unit) || (flags & DEV_OUTPUT && stm->output_unit)), function audiounit_reinit_stream, file /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp, line 624.
[Parent 93547, Gecko_IOThread] WARNING: pipe error: Broken pipe: file /builds/worker/workspace/build/src/ipc/chromium/src/chrome/common/ipc_channel_posix.cc, line 709

###!!! [Parent][MessageChannel] Error: (msgtype=0x150081,name=PBrowser::Msg_Destroy) Channel error: cannot send/recv
Flags: needinfo?(theo)
That's fantastic thank you very much. The problem is here:

Assertion failed: ((flags & DEV_INPUT && stm->input_unit) || (flags & DEV_OUTPUT && stm->output_unit)), function audiounit_reinit_stream, file /builds/worker/workspace/build/src/media/libcubeb/src/cubeb_audiounit.cpp, line 624.

I know how to fix it.
Assignee: nobody → achronop
Status: NEW → ASSIGNED
Priority: -- → P1
Depends on: 1400671
See Also: → 1400637
Théo,
It looks the patch has been landed in 57. 
Can you help verify if this problem is gone in the latest Firefox 57?
Flags: needinfo?(theo)
Can’t reproduce on Nightly nor DevEdition 57.0b2
Flags: needinfo?(theo)
Also can't reproduce with 57.0b2 nor 58.0a1 on https://irlpodcast.org/ (see bug 1401410) anymore
Théo and Albert,
Thanks for your verification!
Sounds like this is fixed by bug 1400671.
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla57
You need to log in before you can comment on or make changes to this bug.