assert(r == noErr) failed in cubeb_audiounit.c when unplugging Logitech C910 while microphone running

RESOLVED DUPLICATE of bug 1269472

Status

()

Core
Audio/Video: cubeb
P1
normal
Rank:
15
RESOLVED DUPLICATE of bug 1269472
2 years ago
2 years ago

People

(Reporter: jib, Unassigned)

Tracking

Trunk
x86
Mac OS X
Points:
---

Firefox Tracking Flags

(firefox49 affected)

Details

STR:
1. On OSX, insert Logitech C910 camera in USB port (possibly other Logitech?)
1. In debug nightly, open https://jsfiddle.net/ja800a6q/
3. Pick and share its microphone ("Unknown USB Audio Device").
4. After success (audio feedback), unplug camera.

Expected result: silence

Actual result: crash in debug build:

com.apple.audio.IOThread.client (44)#0	0x00007fff92b890ae in __pthread_kill ()
#1	0x00007fff99bd2500 in pthread_kill ()
#2	0x00007fff8688937b in abort ()
#3	0x00007fff868509c4 in __assert_rtn ()
#4	0x0000000106484e5a in audiounit_input_callback at /Users/Jan/moz/mozilla-central/media/libcubeb/src/cubeb_audiounit.c:196
#5	0x000000012b089819 in AUHAL::AUIOProc(unsigned int, AudioTimeStamp const*, AudioBufferList const*, AudioTimeStamp const*, AudioBufferList*, AudioTimeStamp const*, void*) ()
#6	0x00007fff8ed0bea3 in HALC_ProxyIOContext::IOWorkLoop() ()
#7	0x00007fff8ed0b3ee in HALC_ProxyIOContext::IOThreadEntry(void*) ()
#8	0x00007fff8ed0b2c3 in HALB_IOThread::Entry(void*) ()
#9	0x00007fff99bcf9b1 in _pthread_body ()
#10	0x00007fff99bcf92e in _pthread_start ()
#11	0x00007fff99bcd385 in thread_start ()

user_ptr	void *	0x125096550	0x0000000125096550
flags	AudioUnitRenderActionFlags *	0x70000247cc54	0x000070000247cc54
*flags	AudioUnitRenderActionFlags	16	16
tstamp	const AudioTimeStamp *	0x124f870a0	0x0000000124f870a0
mSampleTime	Float64	8	8
mHostTime	UInt64	692297212964	692297212964
mRateScalar	Float64	1.0000000007812502	1.0000000007812502
mWordClockTime	UInt64	0	0
mSMPTETime	SMPTETime		
mFlags	UInt32	7	7
mReserved	UInt32	0	0
bus	UInt32	1	1
input_frames	UInt32	512	512
bufs	AudioBufferList *	NULL	0x0000000000000000
stm	cubeb_stream *	0x125096550	0x0000000125096550
context	cubeb *	0x164f157b0	0x0000000164f157b0
data_callback	cubeb_data_callback	(AudioCallbackDriver::DataCallback_s at GraphDriver.cpp:767)
state_callback	cubeb_state_callback	(AudioCallbackDriver::StateCallback_s at GraphDriver.cpp:776)
device_changed_callback	cubeb_device_changed_callback	(AudioCallbackDriver::DeviceChangedCallback_s at GraphDriver.cpp:783)
ptr	mozilla::AudioCallbackDriver *	0x164f0c000	0x0000000164f0c000
input_desc	AudioStreamBasicDescription		
output_desc	AudioStreamBasicDescription		
input_unit	AudioUnit	0x80202069	0x0000000080202069
output_unit	AudioUnit	0x8020206a	0x000000008020206a
input_hw_rate	Float64	16000	16000
mutex	pthread_mutex_t		
input_buffer_array	ring_array		
input_buffer_frames	uint32_t	512	512
frames_played	uint64_t	263680	263680
frames_queued	uint64_t	264192	264192
frames_read	uint64_t	82432	82432
shutdown	int	0	0
draining	int	0	0
current_latency_frames	uint64_t	651	651
hw_latency_frames	uint64_t	18446744073709551615	18446744073709551615
panning	float	1	1
resampler	cubeb_resampler_speex<float, cubeb_resampler_speex_one_way<float>, delay_line<float> > *
input_processor	UniquePtr<cubeb_resampler_speex_one_way<float>, DefaultDelete<cubeb_resampler_speex_one_way<float> > >		
output_processor	UniquePtr<delay_line<float>, DefaultDelete<delay_line<float> > >		
fill_internal	cubeb_resampler_speex<float, cubeb_resampler_speex_one_way<float>, delay_line<float> >::processing_callback
stream	cubeb_stream *const	0x125096550	0x0000000125096550
data_callback	cubeb_data_callback	(AudioCallbackDriver::DataCallback_s at GraphDriver.cpp:767)
user_ptr	mozilla::AudioCallbackDriver *	0x164f0c000	0x0000000164f0c000
outframes	long	7453291829488779264	7453291829488779264
frames	long	140735589323105	140735589323105
input_buffer	AudioBuffer *	0x12551f110	0x000000012551f110
input_buffer_list	AudioBufferList		
r	OSStatus	-10863	-10863

The asserted value (r) is -10863.

We should probably handle unplugging better.
This was with e10s btw.
Rank: 15
Priority: -- → P1
See Also: → bug 1272588
The assert is replaced by error handling with bug 1269472 which is landed:
Last Resolved: 2016-05-05 22:26:30 PDT
status-firefox49: affected → fixed
Great. Sounds like from bug 1269472 comment 1 that this is the same.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1269472
You need to log in before you can comment on or make changes to this bug.