Closed Bug 1048430 Opened 7 years ago Closed 3 years ago

Broken update install screen

Categories

(Firefox Build System :: Android Studio and Gradle Integration, defect, P5)

All
Android
defect

Tracking

(fennec+)

RESOLVED WORKSFORME
Tracking Status
fennec + ---

People

(Reporter: ted, Unassigned)

Details

Attachments

(1 file)

Attached image Screenshot
I had an update notification pending, so this morning I clicked on it and got the broken update screen in the attachment. The install failed, but when I manually checked for an update the update worked fine.
rnewman, is this related to your l10n work?
Assignee: nobody → rnewman
tracking-fennec: --- → ?
Unlikely.

What this looks like is resource corruption; we see this sometimes in dodgy incremental builds, where a resource ID is left pointing to the wrong kind of resource in the final output.

In this case it looks like an R.string.whatever is actually pointing to a color value.

This might be Android's fault, or it might be a build issue, or a sign of a code problem.

Chenxia, does this ring any bells?
Flags: needinfo?(liuche)
Incidentally, "unlikely" because it's the system installer app that's processing the APK -- AFAIK that doesn't even happen in our process, let alone inside the same configuration/context.
Log output from a similar scenario, demonstrating the concept:

07-02 10:49:06.654: E/GeckoApp(2718): Exception starting favicon cache. Corrupt resources?
07-02 10:49:06.654: E/GeckoApp(2718): android.content.res.Resources$NotFoundException: Resource ID #0x7f0b0009
07-02 10:49:06.654: E/GeckoApp(2718): 	at android.content.res.Resources.getValue(Resources.java:1134)
07-02 10:49:06.654: E/GeckoApp(2718): 	at android.content.res.Resources.getDimensionPixelSize(Resources.java:629)


See also Bug 976375, Bug 987864, Bug 1006631, Bug 866501, most of which are coding errors.
There's bug 927942 that was about problems with the Android updater icon, but it was infrequent, non-reproducible, and didn't seem to have any repercussions. In that bug, the install succeeded fine, so this could be something else.
Flags: needinfo?(liuche)
How was today's update?
Today's update was fine for me. Ted?
Flags: needinfo?(ted)
Today's update installed fine.
Flags: needinfo?(ted)
Let's chalk this up to Android, then.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
(In reply to Richard Newman [:rnewman] from comment #9)
> Let's chalk this up to Android, then.

I disagree, this sounds like something wrong with our build system. We've seen similar issues occasionally in other parts of the UI. I'd like to know why.
Status: RESOLVED → REOPENED
tracking-fennec: ? → +
Resolution: INCOMPLETE → ---
Status: REOPENED → NEW
Assignee: rnewman → nobody
Component: General → Build Config & IDE Support
Flags: needinfo?(nalexander)
Hardware: ARM → All
(In reply to Brad Lassey [:blassey] (use needinfo?) (Away 8/15-8/25) from comment #10)
> (In reply to Richard Newman [:rnewman] from comment #9)
> > Let's chalk this up to Android, then.
> 
> I disagree, this sounds like something wrong with our build system. We've
> seen similar issues occasionally in other parts of the UI. I'd like to know
> why.

blassey, I think you're right, *except* in situations when one package is replacing another.  I can reproduce exactly this type of error in Android Settings consistently on certain devices, and I wouldn't be surprised if other per-package caches are susceptible.

In general I expect resource ID corruption to be non-catastrophic, since the various classes of resources (drawables, strings, etc) are bucketed by prefix.  We'd expect to see incorrect strings, not cross-class errors that produce an issue like the above.  In practice, resource ID corruption seems to be catastrophic a lot.  Since Ted had no issue actually running *any* version of Nightly, that suggests it's not ID corruption.

To dig in further, we could look at the R.txt files (packed somewhere in geckoview_library) for the relevant Nightly builds; and we could read the relevant build logs to see exactly the resource sets expected.  Without knowing the Android version that Ted was upgrading from, however, it will be impossible to correlate a resource ID across the version change and blame our package or Android's caching.
Flags: needinfo?(nalexander)
filter on [mass-p5]
Priority: -- → P5
This hasn't been an issue for a long time, and we ship via Google Play these days, so closing.
Status: NEW → RESOLVED
Closed: 7 years ago3 years ago
Resolution: --- → WORKSFORME
Product: Firefox for Android → Firefox Build System
You need to log in before you can comment on or make changes to this bug.