Closed
Bug 933284
Opened 11 years ago
Closed 11 years ago
crash in @0x0 | audiotrack_get_max_channel_count
Categories
(Core :: Audio/Video, defect)
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: ioana.chiorean, Assigned: kinetik)
References
Details
(Keywords: crash, regression, verifyme)
Crash Data
Attachments
(1 file)
1.98 KB,
patch
|
padenot
:
review+
bajaj
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
This bug was filed from the Socorro interface and is
report bp-c17d7ac4-13f7-44b4-ae3f-b15f12131031.
Steps:
1. Go to http://mozilla.github.com/webrtc-landing/gum_test.html and select Audio & Video with a built-in device camera, built-in device microphone
2. When pop up prompted choose share.
Reproducing it only on Aurora 27.0a2 10/30
=============================================================
@0x0
1 libxul.so audiotrack_get_max_channel_count media/libcubeb/src/cubeb_audiotrack.c
2 libxul.so cubeb_get_preferred_sample_rate media/libcubeb/src/cubeb.c
3 libxul.so mozilla::AudioStream::PreferredSampleRate() content/media/AudioStream.cpp
4 libxul.so mozilla::MediaStreamGraphImpl::RunThread() content/media/MediaStreamGraph.h
5 libxul.so mozilla::::MediaStreamGraphInitThreadRunnable::Run content/media/MediaStreamGraph.cpp
6 libxul.so nsThread::ProcessNextEvent(bool, bool*) xpcom/threads/nsThread.cpp
7 libxul.so NS_ProcessNextEvent(nsIThread*, bool) xpcom/glue/nsThreadUtils.cpp
8 libxul.so nsThread::ThreadFunc(void*) xpcom/threads/nsThread.cpp
9 libnss3.so _pt_root nsprpub/pr/src/pthreads/ptthread.c
10 libc.so libc.so@0x11e22
11 libc.so libc.so@0x119ee
Reporter | ||
Updated•11 years ago
|
Version: Trunk → Firefox 27
Reporter | ||
Comment 1•11 years ago
|
||
Device: Galaxy R (Android 2.3.4)
Updated•11 years ago
|
Summary: WebRTC GumTest page - crash in @0x0 | audiotrack_get_max_channel_count → crash in @0x0 | audiotrack_get_max_channel_count
Updated•11 years ago
|
Component: General → WebRTC: Audio/Video
Product: Firefox for Android → Core
Version: Firefox 27 → 27 Branch
Updated•11 years ago
|
Component: WebRTC: Audio/Video → Video/Audio
Assignee | ||
Comment 2•11 years ago
|
||
1 libxul.so audiotrack_get_max_channel_count media/libcubeb/src/cubeb_audiotrack.c
2 libxul.so cubeb_get_preferred_sample_rate media/libcubeb/src/cubeb.c
3 libxul.so mozilla::AudioStream::PreferredSampleRate() content/media/AudioStream.cpp
That stack must be confused, I can't see how it got from cubeb_get_preferred_sample_rate into audiotrack_get_max_channel_count. The cubeb_ops initialization for audiotrack looks correct. Also, audiotrack_get_max_channel_count is very simple, asserting two things and then storing a fixed value in a pointer. The only caller (AudioStream::MaxNumberOfChannels) passes in valid pointers.
So, assuming this is really inside audiotrack_get_preferred_sample_rate: we can be fairly sure ctx and rate are valid pointers, so the most likely problem is that ctx->klass.get_output_samplingrate is null. That's set in audiotrack_init (which initializes the ctx), but only when audiotrack_version_is_froyo is true (which should be false on this device, given it's 2.3.4, but it depends on the libmedia.so present on the device), but is called without testing ctx->klass.get_output_samplingrate for null or that audiotrack_version_is_froyo is true when called in audiotrack_get_preferred_sample_rate.
Can you please try reproducing the crash with a debug build and attaching the output of adb logcat? There should be a bunch of "Gecko - Cubeb" log entries present. That should confirm what I've written.
We can try changing audiotrack_init to initialize ctx->klass.get_output_samplingrate for non-Froyo, but I'll need to double check the function signature first.
Assignee | ||
Comment 3•11 years ago
|
||
Initialize ctx->klass.get_output_samplingrate unconditionally: https://tbpl.mozilla.org/?tree=Try&rev=e1cb202d97ba
Assignee | ||
Comment 4•11 years ago
|
||
Comment 5•11 years ago
|
||
Reproduces on my 2.3.6 Galaxy S2 with Nightly.
I/ALSAModule( 2588): Initialized ALSA CAPTURE device hifi
E/libOpenSLES(17791): slCreateEngine while another engine 0x2fcb08 is active
I/Gecko - Cubeb(17791): _ZN7android10AudioTrackC1EijiiijPFviPvS1_ES1_iitm: OK
I/Gecko - Cubeb(17791): _ZN7android10AudioTrackD1Evtm: OK
I/Gecko - Cubeb(17791): _ZNK7android10AudioTrack7latencyEvtm: OK
I/Gecko - Cubeb(17791): _ZNK7android10AudioTrack9initCheckEvtm: OK
I/Gecko - Cubeb(17791): error while loading _ZN7android10AudioTrack16getMinFrameCountEPi19audio_stream_type_tjtm: Symbol not found: load_library[1105]: Library 'libc.so.6' not foundtm
I/Gecko - Cubeb(17791): _ZN7android10AudioTrack16getMinFrameCountEPiijtm: OK
I/Gecko - Cubeb(17791): _ZN7android10AudioTrack5startEvtm: OK
I/Gecko - Cubeb(17791): _ZN7android10AudioTrack5pauseEvtm: OK
I/Gecko - Cubeb(17791): _ZN7android10AudioTrack11getPositionEPjtm: OK
I/Gecko - Cubeb(17791): _ZN7android10AudioTrack17setMarkerPositionEjtm: OK
E/yamaha::media::Parameters( 2588): SalesCode = XEN
I/libfimc ( 2704): bool SecFimc::create(SecFimc::FIMC_DEV, fimc_overlay_mode, unsigned int):: Fimc reserved memory =0x57da0000
E/Surface (17791): Surface::init token -2 identity 479
D/WEBRTC-JC(17791): VideoCaptureAndroid::surfaceCreated
D/WEBRTC-JC(17791): VideoCaptureAndroid::surfaceChanged
D/WEBRTC-JC(17791): tryStartCapture -1 height -1 frame rate -1 isCaptureRunning false isSurfaceReady true isCaptureStarted false
I/WindowManager( 2704): CREATE SURFACE Surface(name=SurfaceView, identity=479, mNativeSurface=0) IN SESSION android.view.SurfaceSession@40e4bec8: pid=17791 format=4 flags=0x200 / Window{40b18590 SurfaceView paused=false}
I/DEBUG (14692): debuggerd committing suicide to free the zombie!
Updated•11 years ago
|
Keywords: regression
Assignee | ||
Comment 6•11 years ago
|
||
Gian-Carlo and Ioana, can you please confirm that the try build at http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/mgregan@mozilla.com-e1cb202d97ba/try-android/ helps?
Flags: needinfo?(ioana.chiorean)
Reporter | ||
Comment 7•11 years ago
|
||
(In reply to Matthew Gregan [:kinetik] from comment #6)
> Gian-Carlo and Ioana, can you please confirm that the try build at
> http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/mgregan@mozilla.
> com-e1cb202d97ba/try-android/ helps?
I've tries the build and works fine on Samsung Galaxy R with 2.3.4
Flags: needinfo?(ioana.chiorean)
Assignee | ||
Comment 8•11 years ago
|
||
Comment on attachment 826525 [details] [diff] [review]
bug933284_v0.patch
Thanks for confirming, Ioana!
nm -D on an Android 4.x libmedia.so has the same signature for getOutputSamplingRate, so this should be fine there too.
Attachment #826525 -
Flags: review?(paul)
Updated•11 years ago
|
Attachment #826525 -
Flags: review?(paul) → review+
Assignee | ||
Comment 9•11 years ago
|
||
Comment on attachment 826525 [details] [diff] [review]
bug933284_v0.patch
[Approval Request Comment]
Bug caused by (feature/regressing bug #): bug 918861
User impact if declined: Crash on some Android 2.3 systems
Testing completed (on m-c, etc.): tested via try
Risk to taking this patch (and alternatives if risky): Audio will be safely disabled (with error logged to logcat) instead of either working or crashing
String or IDL/UUID changes made by this patch: none
Attachment #826525 -
Flags: approval-mozilla-aurora?
Assignee | ||
Comment 10•11 years ago
|
||
Comment 11•11 years ago
|
||
Assignee: nobody → kinetik
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Comment 12•11 years ago
|
||
Comment on attachment 826525 [details] [diff] [review]
bug933284_v0.patch
Requesting QA to have a look at crash-stats and help verify that the signatures disappear.
Attachment #826525 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Assignee | ||
Comment 13•11 years ago
|
||
You need to log in
before you can comment on or make changes to this bug.
Description
•