java.lang.NullPointerException: at org.mozilla.gecko.GeckoApp.processThumbnail(GeckoApp.java:641)

VERIFIED FIXED in Firefox 13

Status

()

Firefox for Android
General
--
critical
VERIFIED FIXED
6 years ago
a year ago

People

(Reporter: bnicholson, Assigned: bnicholson)

Tracking

({crash})

unspecified
Firefox 13
ARM
Android
crash
Points:
---

Firefox Tracking Flags

(blocking-fennec1.0 +)

Details

(Whiteboard: [native-crash], crash signature)

Attachments

(2 attachments)

(Assignee)

Description

6 years ago
02-28 17:53:56.368 14165 14173 E AndroidRuntime: java.lang.NullPointerException
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at org.mozilla.gecko.GeckoApp.processThumbnail(GeckoApp.java:641)
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at org.mozilla.gecko.GeckoAppShell$3.run(GeckoAppShell.java:462)
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at android.os.Handler.handleCallback(Handler.java:587)
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:92)
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:130)
02-28 17:53:56.368 14165 14173 E AndroidRuntime: 	at org.mozilla.gecko.GeckoBackgroundThread.run(GeckoBackgroundThread.java:31)
02-28 17:53:56.368   508   955 W ActivityManager:   Force finishing activity org.mozilla.fennec_brian/org.mozilla.gecko.TabsTray
(Assignee)

Comment 1

6 years ago
Created attachment 601482 [details]
test case - WARNING: hangs desktop firefox for 5 seconds when clicked

Real-world scenario:
1) Launch Fennec
2) Click the add tab button
3) Go to https://bugzilla.mozilla.org/buglist.cgi?product=Fennec%20Native;component=General;resolution=---;list_id=2489374
4) About 3 seconds after the results are shown, close the tab

Easier STR:
1) Launch Fennec
2) Click the add tab button
3) Navigate to this attachment
4 [review]) Close the tab within 5 seconds of loading the page; you should crash a few seconds later
(Assignee)

Updated

6 years ago
blocking-fennec1.0: --- → ?
(Assignee)

Comment 2

6 years ago
Created attachment 601486 [details] [diff] [review]
patch

If Gecko is busy, it may take a few seconds before GeckoAppShell#notifyScreenShot() gets called. If the tab is closed during this time, the tabId will be invalid.
Assignee: nobody → bnicholson
Status: NEW → ASSIGNED
Attachment #601486 - Flags: review?(blassey.bugs)
Comment on attachment 601486 [details] [diff] [review]
patch

Review of attachment 601486 [details] [diff] [review]:
-----------------------------------------------------------------

::: mobile/android/base/GeckoAppShell.java
@@ +459,5 @@
>                  b.copyPixelsFromBuffer(data);
>                  freeDirectBuffer(data);
>                  final Tab tab = Tabs.getInstance().getTab(tabId);
> +                if (tab != null)
> +                    GeckoApp.mAppContext.processThumbnail(tab, b, null);

we're doing a bunch of work before this point which essentially is getting thrown away. Move this null check to the first line of the Runnable and make it an early return.
Attachment #601486 - Flags: review?(blassey.bugs) → review+
I was able to get the tab to be null : 
02-29 11:29:45.228: E/GeckoConsole(5581): [JavaScript Error: "tab is null" {file: 
"chrome://browser/content/browser.js" line: 988}]

and got the same exception. 

Opened a link from gmail, closed it and hit the back button.

02-29 11:29:45.739: E/AndroidRuntime(5581): FATAL EXCEPTION: GeckoBackgroundThread
02-29 11:29:45.739: E/AndroidRuntime(5581): java.lang.NullPointerException
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at org.mozilla.gecko.GeckoApp.processThumbnail(GeckoApp.java:641)
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at org.mozilla.gecko.GeckoAppShell$3.run(GeckoAppShell.java:462)
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at android.os.Handler.handleCallback(Handler.java:587)
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at android.os.Handler.dispatchMessage(Handler.java:92)
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at android.os.Looper.loop(Looper.java:150)
02-29 11:29:45.739: E/AndroidRuntime(5581): 	at org.mozilla.gecko.GeckoBackgroundThread.run(GeckoBackgroundThread.java:31)
02-29 11:29:45.769: I/GeckoApp(5581): pause
02-29 11:29:45.769: W/ActivityManager(1372):   Force finishing activity org.mozilla.fennec/.App
02-29 11:29:45.849: I/GeckoSoftwareLayerClient(5581): zerdatime 60666162 - endDrawing
02-29 11:29:45.919: D/WindowManagerImpl(1372): addView, new view, mViews[1]: com.android.internal.policy.impl.PhoneWindow$DecorView@4093be48
02-29 11:29:46.109: W/KeyCharacterMap(1372): Can't open keycharmap file
02-29 11:29:46.109: W/KeyCharacterMap(1372): Error loading keycharmap file '/system/usr/keychars/synaptics-rmi-touchscreen.kcm.bin'. hw.keyboards.65537.devname='synaptics-rmi-touchscreen'
02-29 11:29:46.109: I/KeyCharacterMap(1372): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
STR steps were slightly off : 
Prereq: fennec is not open, or is open in the background with only 1 tab open.
1) Open a link from gmail or twitter,
2) close the background tab and hit the back button while the link is loading.
(Assignee)

Comment 6

6 years ago
http://hg.mozilla.org/integration/mozilla-inbound/rev/967583dbaa67

Updated

6 years ago
Duplicate of this bug: 732129
https://hg.mozilla.org/mozilla-central/rev/967583dbaa67
Status: ASSIGNED → RESOLVED
Last Resolved: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 13

Updated

6 years ago
blocking-fennec1.0: ? → +
Unable to reproduce the issue on latest Nighlty using any of the 3 given steps to reproduce.

Verified fix on:
Build: Nightly 15.0a1 2012-05-17
Device: HTC Desire Z
OS: Android 2.3.3
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.