Crash in java.lang.NullPointerException: at android.app.Notification$Builder.<init>(Notification.java)
Categories
(Firefox for Android Graveyard :: General, defect, P3)
Tracking
(firefox-esr68 affected, firefox66 fixed, firefox67 affected)
People
(Reporter: JanH, Unassigned)
References
Details
(Keywords: crash)
Crash Data
Attachments
(1 file)
+++ This bug was initially created as a clone of Bug #1516665 +++
Follow-up: For diagnostic purposes we're still crashing on Nightly, so we need to check the logs from a few recent crash reports and see if we can now come up with an explanation as to how they are happening.
@snorp: Could you please get logcats from some recent crash reports on Nightly that occurred after the extended debug logging in bug 1516665 landed?
There are none with logcats so far, and only about 15-20 crashes on 67 with this signature.
Updated•5 years ago
|
Comment 2•5 years ago
|
||
Marking this p3 as we've fixed the bulk of the crashes now.
Comment 3•5 years ago
|
||
I got this issue just now. This happened after I force-killed firefox and tried to start it again. Although I don't know if the crash is from the killed instance or the new instance.
I wanted to force kill the browser because it wasn't responding anymore after I clicked the menu button. Also the small notification counter on the icon was blinking repeatedly in a fast succession.
Hope this helps :)
Updated•5 years ago
|
Comment 4•5 years ago
|
||
Stacktrace of a recent crash from build 20190614203602
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
at android.app.Notification$Builder.<init>(Notification.java:3323)
at android.app.Notification$Builder.<init>(Notification.java:3315)
at org.mozilla.gecko.media.GeckoMediaControlAgent.createNotification(GeckoMediaControlAgent.java:407)
at org.mozilla.gecko.media.MediaControlService.onStartCommand(MediaControlService.java:46)
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3892)
at android.app.ActivityThread.access$1700(ActivityThread.java:237)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7073)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
Look like context is null.
Comment 5•5 years ago
|
||
The GeckMediaControlAgent is a helper object that has a data member to contain the context (mContext). This static member is access through many static method calls which rely upon this context to be initialized through external processes.
I am submitting this patch which will ensure that the context is available to the notification helper when called through the static method and the mContext member variable is null.
The purpose of this is to see if this is indeed the issue and see if the nightly crash reports subside completely.
Comment 6•5 years ago
|
||
Comment 7•5 years ago
|
||
This crash is purposely induced on nightly because we want to see why the GeckoMediaControlAgent even gets in this state in the first place (there have been numerous reports of buggy behaviour regarding GMCA), fixing it still won't solve the underlying problem. There are multiple logs in place before it reaches this point, I suggest we find a way to look at those and find out what are the steps that lead us here.
Comment 8•5 years ago
|
||
The underlying issue deals with the fact that the OS may completely destroy the process accompanying the app when the app is in background. This is a known possibility with any app and it is up to the application to aproprietely manage the persistence of objects.
For this ticket in reviewing the dumps it is apparent that the mContext variable in the GeckMediaControlAgent (GMCA) has lost its reference either because the context has been reclaimed or the GMCA itself was reclaimed. In any event, the singleton style static reference to the instance will recreate the object but the mContext variable is not restored in time for the call to the Notification.Builder method.
Since this bug no longer is appearing in production due to a patch that allows the Notification.Builder to only be called if there is a valid context at this point in the code I believe we should just clean up that code and allow the check to be enabled for even the NIGHTLY and call this resolved.
This is acceptable as the use of the context should not be done without initialization from the other components. In essence, the mContext variable is an indicator that the object is ready.
Reporter | ||
Comment 9•5 years ago
|
||
This would mean that whatever we were trying to do with the notification is simply dropped under the table and ignored - granted, it's better than crashing, but it's still buggy behaviour.
Comment 10•5 years ago
|
||
Have not been able to recreate the scenario through memory pressure where the app completely closes the processes but I will occasionally try. Verification of this hypothesis is required to ensure adequate resolution.
Updated•5 years ago
|
Comment 11•5 years ago
|
||
Marking 68 as affected. This is currently the top crash on 68.2a1.
Comment 12•4 years ago
|
||
This continues as the top crash for the latest nightly, 68.5a1.
Comment 13•4 years ago
|
||
I tried to reproduce the crash on Nightly 68.5a1 (2020-01-15) using a Samsung Galaxy Note 5 (Android 7.0) and Samsung Galaxy Note 9 (Android 9) by trying to trigger Push Notifications but was unable to. The following Push Notification were tested:
- Download Notifications
- Audio/Video Notification when watching videos or streams
- Notification sent from various website after subscribing
- "tab waiting" Notifications after opening links from other applications
Comment 14•3 years ago
|
||
We have completed our launch of our new Firefox on Android. The development of the new versions use GitHub for issue tracking. If the bug report still reproduces in a current version of [Firefox on Android nightly](https://play.google.com/store/apps/details?id=org.mozilla.fenix) an issue can be reported at the [Fenix GitHub project](https://github.com/mozilla-mobile/fenix/). If you want to discuss your report please use [Mozilla's chat](https://wiki.mozilla.org/Matrix#Connect_to_Matrix) server https://chat.mozilla.org and join the [#fenix](https://chat.mozilla.org/#/room/#fenix:mozilla.org) channel.
Assignee | ||
Updated•3 years ago
|
Description
•