Crash in java.lang.NoClassDefFoundError: at org.mozilla.gecko.GeckoSystemStateListener.prefersReducedMotion(GeckoSystemStateListener.java)

VERIFIED FIXED in Firefox 64

Status

()

defect
P1
critical
VERIFIED FIXED
9 months ago
7 months ago

People

(Reporter: gsvelto, Assigned: hiro)

Tracking

({crash, reproducible})

unspecified
Firefox 66
Unspecified
Android
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(geckoview64 fixed, firefox64 verified, firefox65 verified, firefox66 verified)

Details

(Whiteboard: [geckoview:p1], crash signature)

Attachments

(1 attachment)

This bug was filed from the Socorro interface and is
report bp-c602ad5e-1557-4fda-be90-fed8e0181204.
=============================================================

Java stack trace:

java.lang.NoClassDefFoundError
	at org.mozilla.gecko.GeckoSystemStateListener.prefersReducedMotion(GeckoSystemStateListener.java:89)
	at org.mozilla.gecko.mozglue.GeckoLoader.nativeRun(Native Method)
	at org.mozilla.gecko.GeckoThread.run(GeckoThread.java:466)

This seems to have started with build 20181128100103.
These crashes appear to be all happening with Jelly Bean, and the crashes are also present on 64b15 - so perhaps not a regression in nightly. All of the crashes have Moz Crash Reason MOZ_CRASH(JNI exception). Comments unfortunately don't appear to be very useful.
Str: Use a HTC One X Android 4.1.1
* visit https://www.bbc.com/news

Actual results: crash
Expected: view website
Regression range is pre 2018-11-27. The 2018-11-28 build must have contained a fix for the crash reporter or Firefox for Android. Before this the behavior is to repeatedly crash. Flashing between the home screen and a white screen from Nightly.
74:00.06 INFO: Got as far as we can go bisecting nightlies...
74:00.06 INFO: Last good revision: 73a2f427e2fdd0511198a2e308c21f3b74ca7f7d (2018-09-15)
74:00.06 INFO: First bad revision: 7ed950e60f3c1f8a47c117c04124d31e94a66e32 (2018-09-16)
74:00.06 INFO: Pushlog:
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=73a2f427e2fdd0511198a2e308c21f3b74ca7f7d&tochange=7ed950e60f3c1f8a47c117c04124d31e94a66e32

Not much in the regression range. Maybe Bug 1449567? Snorp you reviewed it thoughts if this could be the issue. Will continue tomorrow if needed. Though this regression is tedious to debug due to phone issues. One phone cannot adb install via mozregression (manual command line is fine) and the other cannot see the WiFi networks in the office.
Flags: needinfo?(snorp)
Bug 1504780 fixed an issue with the crash reporter in the 2018-11-28 nightly build (65.0a1) and in 64.0b15, which seems to match comment 3.
Priority: -- → P1
This crash might be a regression from prefersReducedMotion bug 1505897.
Blocks: 1505897
Whiteboard: [geckoview]
Re-ran the regression range and this makes a lot more sense.

37:41.33 INFO: Last good revision: b03a3a18a4078fbc0e4656b78ce888b389645982
37:41.33 INFO: First bad revision: 759d828c5c2d519540fd484b745b6cf70e0ab91a
37:41.33 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=b03a3a18a4078fbc0e4656b78ce888b389645982&tochange=759d828c5c2d519540fd484b745b6cf70e0ab91a
Blocks: 1478505
No longer blocks: 1505897
Flags: needinfo?(snorp)
Any fix for this short of disabling the feature for Android 4.1 devices?
Flags: needinfo?(hikezoe)
It seems Settings.Global which is used for the feature was introduced on Android 4.2.
And bug 1510611 fixed this crash?  If not, we need to bail out from prefersReducedMotion() on Android 4.1 devices.
Anyway, taking now.  I think I have an Android 4.1 device somewhere, so I can check it.
Assignee: nobody → hikezoe
Status: NEW → ASSIGNED
Flags: needinfo?(hikezoe)
I don't know if bug 1510611 fixes the issue. I can check tomorrow's build when it is included as part of the next Nightly.
Confirmed on an Android 4.1.2 device that bug 1510611 didn't fix the crash, we need to bail out there.
Pushed by hikezoe@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1414f3021baf
Bail out from prefersReducedMotion() if the target device is Android 4.1 or older. r=snorp
Comment on attachment 9030608 [details]
Bug 1512037 - Bail out from prefersReducedMotion() if the target device is Android 4.1 or older. r?snorp!

[Beta/Release Uplift Approval Request]

Feature/Bug causing the regression: Bug 1478505

User impact if declined: Crash

Is this code covered by automated tests?: Yes

Has the fix been verified in Nightly?: No

Needs manual test from QE?: Yes

If yes, steps to reproduce: Open https://www.bbc.com/news on Android 4.1 devices

List of other uplifts needed: None

Risk to taking this patch: Low

Why is the change risky/not risky? (and alternatives if risky): The change here is actually just bailing out from a function which uses a Class can't be used on old Android devices.

String changes made/needed:
Attachment #9030608 - Flags: approval-mozilla-release?
Attachment #9030608 - Flags: approval-mozilla-beta?
I couldn't add additional comments for the question about automated tests in the uplift request editor.

(In reply to Hiroyuki Ikezoe (:hiro) from comment #14)
> Is this code covered by automated tests?: Yes

To be precise, we have automated tests but we don't run them on Android 4.1 or older devices on our CIs unfortunately.
If this crash affects 64, we should also uplift the fix to GECKOVIEW_64_RELBRANCH.
Comment on attachment 9030608 [details]
Bug 1512037 - Bail out from prefersReducedMotion() if the target device is Android 4.1 or older. r?snorp!

[GeckoView Uplift Approval Request]

If this is not a sec:{high,crit} bug, please state case for consideration: 

User impact if declined: 

Fix Landed on Version: 

Risk to taking this patch: Low

Why is the change risky/not risky? (and alternatives if risky): 

String or UUID changes made by this patch:
Attachment #9030608 - Flags: approval-mozilla-geckoview64?
https://hg.mozilla.org/mozilla-central/rev/1414f3021baf
Status: ASSIGNED → RESOLVED
Closed: 8 months ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 66
Comment on attachment 9030608 [details]
Bug 1512037 - Bail out from prefersReducedMotion() if the target device is Android 4.1 or older. r?snorp!

fix a crash on older android, approved for 65.0b5 and 64.0.1

AFAIK we'll merge from release to gv64 so clearing that flag.
Attachment #9030608 - Flags: approval-mozilla-release?
Attachment #9030608 - Flags: approval-mozilla-release+
Attachment #9030608 - Flags: approval-mozilla-geckoview64?
Attachment #9030608 - Flags: approval-mozilla-beta?
Attachment #9030608 - Flags: approval-mozilla-beta+
BTW should the @RequiresApi annotation from bug 1510611 be removed for this function now that it includes this guard?
Flags: needinfo?(hikezoe)
No, I don't think so.  It seems to be just for lint tools.
Flags: needinfo?(hikezoe)
Whiteboard: [geckoview] → [geckoview:p1]
Unfortunately, we don't have devices with Android 4.1 and we performed a smoke on Lenovo A536(Android 4.4.2) and visit also bc.com/news with no success in reproducing the crash.
Tested on 65.0b5 with Lenovo A536 (Android 4.4.2) and Prestigio Grace X5 (Android 4.4.2) and the app didn't crash when we visit bbc.com/news and opened/closed articles.

Marking the bug VERIFIED based on comment 27 and comment 28 and on the fact that we didn't find any crash on 64.0.2 with Lenovo A536 (Android 4.4.2).

You need to log in before you can comment on or make changes to this bug.