Closed
Bug 726379
Opened 14 years ago
Closed 13 years ago
crash java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1876) when migrating from XUL to Native build
Categories
(Firefox for Android Graveyard :: General, defect, P1)
Tracking
(blocking-fennec1.0 +)
RESOLVED
FIXED
Firefox 14
Tracking | Status | |
---|---|---|
blocking-fennec1.0 | --- | + |
People
(Reporter: nhirata, Assigned: gcp)
References
Details
(Keywords: crash, reproducible, Whiteboard: [native-crash])
Crash Data
Attachments
(5 files)
This bug was filed from the Socorro interface and is
report bp-fb0dff99-c643-48d9-b184-dbe952120210 .
=============================================================
java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1876)
at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:774)
at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1295)
at android.os.AsyncTask.execute(AsyncTask.java:394)
at org.mozilla.gecko.Tab$3.run(Tab.java:363)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at org.mozilla.gecko.GeckoApp$32.run(GeckoApp.java:1777)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
First appearance in build : 20120210031150
Updated•14 years ago
|
Whiteboard: [native-crash]
Updated•14 years ago
|
tracking-fennec: --- → ?
![]() |
Reporter | |
Comment 1•14 years ago
|
||
bp-2dda163e-e0c6-4a8e-9d00-a611a2120216
Received crash when trying to migrate from XUL build 2/16/2012 to Native build 02/16/2012. My guess is that Sync was trying to sync at the same time the migration kicked in?
![]() |
Reporter | |
Comment 2•14 years ago
|
||
![]() |
Reporter | |
Comment 3•14 years ago
|
||
Part of logcat:
02-16 10:53:58.960 I/GeckoApp( 3865): Startup mode: NEW_PROFILE
02-16 10:53:58.992 I/Addons ( 3865): filestream is null
02-16 10:53:59.007 I/dalvikvm( 3865): Total arena pages for JIT: 11
02-16 10:53:59.113 D/GeckoFavicons( 3865): Creating LoadFaviconTask with URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png and favicon URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png?modified=1310547725
02-16 10:53:59.113 D/GeckoFavicons( 3865): Favicon URL is now: http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png?modified=1310547725
02-16 10:53:59.113 D/GeckoFavicons( 3865): Calling getFaviconUrlForPageUrl() for http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png
02-16 10:53:59.113 D/GeckoFavicons( 3865): Calling loadFavicon() with URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png and favicon URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png?modified=1310547725 (2)
02-16 10:53:59.117 D/GeckoFavicons( 3865): Creating LoadFaviconTask with URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png and favicon URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png
02-16 10:53:59.117 D/GeckoFavicons( 3865): Calling loadFavicon() with URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png and favicon URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png (3)
02-16 10:53:59.125 D/GeckoFavicons( 3865): Favicon URL is now: http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png
02-16 10:53:59.125 D/GeckoFavicons( 3865): Downloading favicon for URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png with favicon URL = http://static-cdn.addons.mozilla.net/en-US/firefox/images/addon_icon/292493-32.png?modified=1310547725
02-16 10:53:59.125 D/GeckoFavicons( 3865): Calling getFaviconUrlForPageUrl() for http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png
02-16 10:53:59.125 D/GeckoFavicons( 3865): Downloading favicon for URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png with favicon URL = http://static-cdn.addons.mozilla.net/media//img/addon-icons/security-32.png
02-16 10:53:59.511 W/GeckoGlobalHistory( 3865): Rebuilding visited link set...
02-16 10:53:59.593 D/dalvikvm( 3865): GC_CONCURRENT freed 1395K, 54% free 3472K/7495K, external 3698K/4181K, paused 4ms+6ms
02-16 10:53:59.796 D/dalvikvm( 3135): GC_EXPLICIT freed 139K, 49% free 5491K/10567K, external 5292K/8292K, paused 105ms
02-16 10:53:59.945 E/GeckoAppShell( 3865): top level exception
02-16 10:53:59.945 E/GeckoAppShell( 3865): java.util.concurrent.RejectedExecutionException: pool=128/128, queue=10/10
02-16 10:53:59.945 E/GeckoAppShell( 3865): at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1961)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:794)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1315)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.AsyncTask.execute(AsyncTask.java:394)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at org.mozilla.gecko.Tab$4.run(Tab.java:374)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Handler.handleCallback(Handler.java:587)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Looper.loop(Looper.java:123)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at org.mozilla.gecko.GeckoApp$34.run(GeckoApp.java:1820)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Handler.handleCallback(Handler.java:587)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Handler.dispatchMessage(Handler.java:92)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.os.Looper.loop(Looper.java:123)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at android.app.ActivityThread.main(ActivityThread.java:3647)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at java.lang.reflect.Method.invokeNative(Native Method)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at java.lang.reflect.Method.invoke(Method.java:507)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
02-16 10:53:59.945 E/GeckoAppShell( 3865): at dalvik.system.NativeStart.main(Native Method)
02-16 10:54:01.410 D/skia ( 3865): --- SkImageDecoder::Factory returned null
02-16 10:54:01.531 D/AndroidRuntime( 4025):
02-16 10:54:01.531 D/AndroidRuntime( 4025): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
02-16 10:54:01.531 D/AndroidRuntime( 4025): CheckJNI is OFF
02-16 10:54:01.531 D/dalvikvm( 4025): creating instr width table
02-16 10:54:01.675 D/AndroidRuntime( 4025): Calling main entry com.android.commands.am.Am
02-16 10:54:01.683 E/JavaBinder( 3135): !!! FAILED BINDER TRANSACTION !!!
02-16 10:54:01.683 I/ActivityManager( 3135): Starting: Intent { act=org.mozilla.gecko.reportCrash flg=0x10000000 cmp=org.mozilla.fennec/.CrashReporter (has extras) } from pid 4025
02-16 10:54:01.687 D/AndroidRuntime( 4025): Shutting down VM
Comment 4•14 years ago
|
||
Nothing to do with Sync as far as I can see…
Assignee | ||
Comment 5•14 years ago
|
||
It's not in Profile Migration either (it finishes and exists before the crash).
Updated•14 years ago
|
Priority: -- → P1
Updated•14 years ago
|
tracking-fennec: ? → ---
![]() |
Reporter | |
Comment 6•13 years ago
|
||
Java crash; nom-ing for blocking fennec
blocking-fennec1.0: --- → ?
Updated•13 years ago
|
Crash Signature: [@ java.util.concurrent.RejectedExecutionException: at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java)] → [@ java.util.concurrent.RejectedExecutionException: at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java)]
[@ java.util.concurrent.RejectedExecutionException: at java.util.concurrent.ThreadPoolExecutor$AbortPol…
![]() |
Reporter | |
Comment 7•13 years ago
|
||
Crashed on both Galaxy Nexus and Galaxy S II while doing profile migration perf testing.
Crash Signature: java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ] → java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ]
[@ java.util.concurrent.RejectedExecutionException: pool=128/128 queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadP…
![]() |
Reporter | |
Comment 8•13 years ago
|
||
https://crash-stats.mozilla.com/report/index/bp-31003f7a-c5d2-4a50-b63a-c24052120303
Time of crash coincides with the finishing of the migration: 03-02 16:12:16.638 I/ProfMigr( 2502): Profile migration finished; odd thing is that it tried to open up the profile again : 03-02 16:13:44.615 I/ProfMigr( 2664): Opening path: /data/data/org.mozilla.fennec/files/mozilla/wpx6fbo8.default/places.sqlite
![]() |
Reporter | |
Comment 9•13 years ago
|
||
I was mistaken. Looking closer at the log, it exists the migration, 03-02 16:12:16.638 I/ProfMigr( 2502): Profile migration finished
03-02 16:12:16.646 I/GeckoApp( 2502): Profile migration took 285790 ms
03-02 16:12:16.904 D/dalvikvm( 1235): GC_EXPLICIT freed 5745 objects / 221160 bytes in 136ms
03-02 16:12:18.169 I/GeckoApp( 2502): Startup mode: NEW_PROFILE
03-02 16:12:18.287 I/GeckoAboutHome( 2502): filestream is null
03-02 16:12:18.365 I/dalvikvm( 2502): Total arena pages for JIT: 11
and then crashes at 16:12:20.388, then relaunches the app afterwards. Is it trying to create a new profile after migrating?
Comment 10•13 years ago
|
||
Not a top crash, not blocking. Still good to fix though.
blocking-fennec1.0: ? → -
![]() |
Reporter | |
Updated•13 years ago
|
Crash Signature: queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ] → queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ]
[@ java.util.concurrent.RejectedExecutionException: pool=128/128 queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedEx…
Updated•13 years ago
|
Crash Signature: queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ] → queue=10/10 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ]
[@ java.util.concurrent.RejectedExecutionException: pool=0/1 queue=0 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(…
Updated•13 years ago
|
Crash Signature: queue=0 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ] → queue=0 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java) ]
[@ java.util.concurrent.RejectedExecutionException: pool=1/1 queue=0 at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(Thre…
![]() |
Reporter | |
Comment 11•13 years ago
|
||
Comment 12•13 years ago
|
||
Stil reproducing at a migration from XUL build (Nightly 14.0a1 - 4/15) to Native UI build (Nightly 14.0a1 - 4/16). After approx 1m and half in the "Setting up Nightly..." the build crashes.
Reproducible on both class 4 and class 2 SD card.
Device: HTC Desire Z
Profile used for sync: 8.6 MB
Updated•13 years ago
|
blocking-fennec1.0: - → ?
Keywords: reproducible
Summary: crash java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1876) → crash java.util.concurrent.RejectedExecutionException
at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:1876) when migrating from XUL to Native build
Version: Firefox 13 → Trunk
Assignee | ||
Comment 13•13 years ago
|
||
Browsing the code a bit, we seem to create an AsyncTask for each tab times each bookmark that gets added/deleted.
This...backfires...right after bookmarks get migrated. I'm guessing Sync will trigger it too if it starts batching.
blocking-fennec1.0: ? → ---
Version: Trunk → Firefox 13
Assignee | ||
Comment 14•13 years ago
|
||
Fix accidental flags edit.
blocking-fennec1.0: --- → ?
Version: Firefox 13 → Trunk
Assignee | ||
Comment 15•13 years ago
|
||
>we seem to create an AsyncTask for each tab times each bookmark that gets
>added/deleted
Hmm, that's not entirely correct as the task is cancelled (though that might leave some internal stuff alive until GC runs).
Do we know exact STR here? (I've never seen this)
Updated•13 years ago
|
blocking-fennec1.0: ? → +
Assignee | ||
Comment 16•13 years ago
|
||
I got a profile from kbrosnan that can reproduce this. Probably related to amount of bookmarks you have. Luckily it triggers after Profile Migration sets its finished flags, so it won't crash at the next start.
![]() |
Reporter | |
Comment 17•13 years ago
|
||
Yes, we do. The profile I use for large profile testing (which is probably the one that kbrosnan passed to you) exhibits this all the time.
1. install XUL
2. sync with that account
3. migrate to native
Note: this account has been an account that I used Sync/Firefox 4.0 time on up + a merge with Tracy's test sync account.
Comment 18•13 years ago
|
||
No, it was a personal profile. I would prefer it to only go to people who need it. Though it is good to know that the QA Sync profile can repo this.
Assignee | ||
Comment 19•13 years ago
|
||
Adding logging, the problem indeed happens when updateBookmark is spammed rapidly. Because the AsyncTask is cancelled each time before a new one is executed, that shouldn't clog on the AsyncTask thread pool, but it still seems to do. Not sure what the reason for that is. updateBookmark itself being called concurrently so we can race between the execute and cancel?
In any case, the AsyncTask only seems to be used to do something in the background. There is also an runOnUiThread in the onPostExecute, but it's not clear to me why that is needed or what it's trying to accomplish. The only thing it access or updates are class primitives, and the only place isBookmark is queried is in GeckoApp if it pops up the menu.
Based on this, I simplified this to the utter basics: a Runnable on the background thread. Unlike AsyncTask, that has no limit on the amount of queued ops.
Attachment #616123 -
Flags: review?(sriram)
Comment 20•13 years ago
|
||
Comment on attachment 616123 [details] [diff] [review]
Patch 1. Simplify bookmark check
This looks good to me.
Attachment #616123 -
Flags: review?(sriram) → review+
Assignee | ||
Updated•13 years ago
|
Attachment #616123 -
Flags: approval-mozilla-central?
Assignee | ||
Comment 21•13 years ago
|
||
Comment 22•13 years ago
|
||
Comment on attachment 616123 [details] [diff] [review]
Patch 1. Simplify bookmark check
[Triage comment]
Already landed to mozilla-inbound, and it's a Fennec Native bug, so you don't need the approval-mozilla-central flag here.
Attachment #616123 -
Flags: approval-mozilla-central?
Updated•13 years ago
|
Assignee: nobody → gpascutto
Comment 23•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 14
Updated•5 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•