Closed Bug 1053426 Opened 5 years ago Closed 5 years ago

Fennec crashes when tab sharing is active

Categories

(Firefox for Android :: Screencasting, defect, critical)

ARM
Android
defect
Not set
critical

Tracking

()

VERIFIED FIXED
Firefox 35
Tracking Status
firefox33 --- wontfix
firefox34 --- fixed
firefox35 --- verified
firefox36 --- verified
firefox37 --- verified

People

(Reporter: rbarker, Assigned: rbarker)

Details

(Keywords: crash)

Attachments

(2 files)

When streaming a tab in fennec with WebRTC, the stream will slow down and the image resolution will drop until fennec crashes.

Here is the stack trace:

0x858b2e0e in mozalloc_abort (msg=0x858b3b0c "Redirecting call to abort() to mozalloc_abort\n")
   at /Volumes/fennec/gecko-dev/memory/mozalloc/mozalloc_abort.cpp:30
30	    MOZ_CRASH();
(gdb) bt
#0  0x858b2e0e in mozalloc_abort (msg=0x858b3b0c "Redirecting call to abort() to mozalloc_abort\n")
   at /Volumes/fennec/gecko-dev/memory/mozalloc/mozalloc_abort.cpp:30
#1  0x858b2e32 in abort () at /Volumes/fennec/gecko-dev/memory/mozalloc/mozalloc_abort.cpp:39
#2  0x8162f9e8 in Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash (jenv=0x74fcff90, 
   jStackTrace=0x92500005) at /Volumes/fennec/gecko-dev/widget/android/AndroidJNI.cpp:121
#3  0x754114aa in Java_org_mozilla_gecko_GeckoAppShell_reportJavaCrash (arg0=0x74fcff90, arg1=0x7200001, 
   arg2=0x92500005) at /Volumes/fennec/gecko-dev/mozglue/android/jni-stubs.inc:203
#4  0x41535bd0 in dvmPlatformInvoke ()
  from /Users/rbarker/jimdb-arm/lib/047ec9c2c691f063/system/lib/libdvm.so
#5  0x41566126 in dvmCallJNIMethod(unsigned int const*, JValue*, Method const*, Thread*) ()
  from /Users/rbarker/jimdb-arm/lib/047ec9c2c691f063/system/lib/libdvm.so
#6  0x41567b0e in dvmResolveNativeMethod(unsigned int const*, JValue*, Method const*, Thread*) ()
  from /Users/rbarker/jimdb-arm/lib/047ec9c2c691f063/system/lib/libdvm.so
#7  0x4153efe4 in dvmJitToInterpNoChain ()
  from /Users/rbarker/jimdb-arm/lib/047ec9c2c691f063/system/lib/libdvm.so
#8  0x4153efe4 in dvmJitToInterpNoChain ()
  from /Users/rbarker/jimdb-arm/lib/047ec9c2c691f063/system/lib/libdvm.so
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

And from logcat:

E/CursorWindow(17501): Could not allocate CursorWindow '/data/data/org.mozilla.fennec_rbarker/files/mozilla/tpuqslkk.default/browser.db' of size 2097152 due to error -12.
W/dalvikvm(17501): threadid=11: thread exiting with uncaught exception (group=0x415dcba8)
I/Gecko   (17501): Enter: void mozilla::AndroidBridge::GetDisplayPort(bool, bool, int32_t, nsIAndroidViewport*, nsIAndroidDisplayport**)
I/Gecko   (17501): Exit: void mozilla::AndroidBridge::GetDisplayPort(bool, bool, int32_t, nsIAndroidViewport*, nsIAndroidDisplayport**)
E/GeckoAppShell(17501): >>> REPORTING UNCAUGHT EXCEPTION FROM THREAD 672 ("GeckoBackgroundThread")
E/GeckoAppShell(17501): android.database.CursorWindowAllocationException: Cursor window allocation of 2048 kb failed. 
E/GeckoAppShell(17501): 	at android.database.CursorWindow.<init>(CursorWindow.java:104)
E/GeckoAppShell(17501): 	at android.database.AbstractWindowedCursor.clearOrCreateWindow(AbstractWindowedCursor.java:198)
E/GeckoAppShell(17501): 	at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:139)
E/GeckoAppShell(17501): 	at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
E/GeckoAppShell(17501): 	at android.content.ContentResolver.query(ContentResolver.java:480)
E/GeckoAppShell(17501): 	at android.content.ContentResolver.query(ContentResolver.java:404)
E/GeckoAppShell(17501): 	at org.mozilla.gecko.db.LocalBrowserDB.getItemFlags(LocalBrowserDB.java:876)
E/GeckoAppShell(17501): 	at org.mozilla.gecko.db.BrowserDB.getItemFlags(BrowserDB.java:181)
E/GeckoAppShell(17501): 	at org.mozilla.gecko.Tab$3.run(Tab.java:445)
E/GeckoAppShell(17501): 	at android.os.Handler.handleCallback(Handler.java:733)
E/GeckoAppShell(17501): 	at android.os.Handler.dispatchMessage(Handler.java:95)
E/GeckoAppShell(17501): 	at android.os.Looper.loop(Looper.java:136)
E/GeckoAppShell(17501): 	at org.mozilla.gecko.util.GeckoBackgroundThread.run(GeckoBackgroundThread.java:32)
E/GeckoAppShell(17501): Main thread stack:
E/GeckoAppShell(17501): android.os.MessageQueue.nativePollOnce(Native Method)
E/GeckoAppShell(17501): android.os.MessageQueue.next(MessageQueue.java:138)
E/GeckoAppShell(17501): android.os.Looper.loop(Looper.java:123)
E/GeckoAppShell(17501): android.app.ActivityThread.main(ActivityThread.java:5001)
E/GeckoAppShell(17501): java.lang.reflect.Method.invokeNative(Native Method)
E/GeckoAppShell(17501): java.lang.reflect.Method.invoke(Method.java:515)
E/GeckoAppShell(17501): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
E/GeckoAppShell(17501): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
E/GeckoAppShell(17501): dalvik.system.NativeStart.main(Native Method)
E/Gecko   (17501): mozalloc_abort: Redirecting call to abort() to mozalloc_abort
F/MOZ_CRASH(17501): Hit MOZ_CRASH() at /Volumes/fennec/gecko-dev/memory/mozalloc/mozalloc_abort.cpp:30
I've noticed the larger the target size of the encoded tab, the faster it seems the memory is exhausted. Fennec appears to crash faster if the tab is encoded at native size (768 x 1038 on the Nexus 4) as opposed a reduced target size such as 640 x 480.
Severity: normal → critical
Keywords: crash
Assignee: nobody → rbarker
Attachment #8491076 - Flags: review?(rjesup)
Attachment #8491076 - Flags: review?(rjesup) → review+
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/ce7c078188ad
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 35
Comment on attachment 8491076 [details] [diff] [review]
Free yuv buffer after use

Approval Request Comment
[Feature/regressing bug #]: Tab Mirror from Fennec to Chromecast
[User impact if declined]: Fennec crashes shortly after a tab mirror session is started.
[Describe test coverage new/current, TBPL]:I don't believe tab mirror has any test coverage.
[Risks and why]: None know. Code is only hit when tab mirror is used.
[String/UUID change made/needed]:none
Attachment #8491076 - Flags: approval-mozilla-beta?
Comment on attachment 8491076 [details] [diff] [review]
Free yuv buffer after use

Beta+
Attachment #8491076 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Flags: qe-verify+
Unfortunately we don't have access to Chromecast today, so we'll verify this tomorrow.
Verified as fixed in builds:
- 37.0a1 2014-12-02;
- 36.0a2 2014-12-02;
- 35 beta 1.
Device: Nexus 4 (Android 4.4.4).
Status: RESOLVED → VERIFIED
Flags: qe-verify+
You need to log in before you can comment on or make changes to this bug.