Closed Bug 1077645 Opened 10 years ago Closed 10 years ago

Startup crash due to some Facebook-related intent extras

Categories

(Firefox for Android Graveyard :: General, defect)

All
Android
defect
Not set
normal

Tracking

(firefox32 wontfix, firefox33 fixed, firefox34 fixed, firefox35 fixed, fennec34+)

RESOLVED FIXED
Firefox 35
Tracking Status
firefox32 --- wontfix
firefox33 --- fixed
firefox34 --- fixed
firefox35 --- fixed
fennec 34+ ---

People

(Reporter: snorp, Assigned: rnewman)

References

Details

(Keywords: crash)

Attachments

(1 file)

Google Play has some startup crashes that appear to be caused by Facebook putting broken stuff into the Intent bundle. I think this is the intent.getString("args") call going south. We should be able to just catch the exception there.

java.lang.RuntimeException: Unable to start activity ComponentInfo{org.mozilla.firefox_beta/org.mozilla.gecko.BrowserApp}: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.facebook.events.common.ActionSource
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2641)
at android.app.ActivityThread.access$800(ActivityThread.java:156)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5867)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:674)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.facebook.events.common.ActionSource
at android.os.Parcel.readParcelableCreator(Parcel.java:2156)
at android.os.Parcel.readParcelable(Parcel.java:2106)
at android.os.Parcel.readValue(Parcel.java:2022)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2323)
at android.os.Bundle.unparcel(Bundle.java:249)
at android.os.Bundle.getString(Bundle.java:1118)
at android.content.Intent.getStringExtra(Intent.java:4979)
at org.mozilla.gecko.BrowserApp.onCreate(BrowserApp.java:468)
at android.app.Activity.performCreate(Activity.java:5312)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2541)
Mmm, malformed.
OS: Mac OS X → Android
Hardware: x86 → All
Summary: Startup crash due to some facebook-related intent extras → Startup crash due to some Facebook-related intent extras
This should do the trick.

(Fixed a few things along the way, too.)
Attachment #8499899 - Flags: review?(snorp)
Assignee: nobody → rnewman
Status: NEW → ASSIGNED
Oh, and should there be any doubt: yeah, this is horrible, and I hate that we have to do this.
Attachment #8499899 - Flags: review?(snorp) → review+
tracking-fennec: --- → ?
Just adding this link to the Chrome issue for posterity:
https://code.google.com/p/chromium/issues/detail?id=412527
https://hg.mozilla.org/mozilla-central/rev/339a9e5c9303
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 35
We should uplift this and any fix we add for Bug 1079876.
Flags: needinfo?(rnewman)
tracking-fennec: ? → 34+
Comment on attachment 8499899 [details] [diff] [review]
Be paranoid when parsing external intent extras. v1

Approval Request Comment
[Feature/regressing bug #]:
  Facebook broke us. It's not our fault.

[User impact if declined]:
  Crashes when opening links from affected Facebook versions.

[Describe test coverage new/current, TBPL]:
  No test coverage.

[Risks and why]: 
  Very low risk: this just lifts a direct call to something that can throw into a static method with try..catch. We obviously can't parse data out of the intent, but at least we don't crash.
 
[String/UUID change made/needed]:
  None.
Attachment #8499899 - Flags: approval-mozilla-release?
Attachment #8499899 - Flags: approval-mozilla-beta?
Attachment #8499899 - Flags: approval-mozilla-aurora?
Flags: needinfo?(rnewman)
It would have been nice to have the uplift request 5 days ago. We already built fennec 33.0.

Mark, do you think this deserves a respin? The impact to user is a bit unclear to me.
Flags: needinfo?(mark.finkle)
Attachment #8499899 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
I don't think this deserves a respin. The crash numbers from Google Play are noticeable, but not too high. We should keep an eye on the trends though.
Flags: needinfo?(mark.finkle)
Comment on attachment 8499899 [details] [diff] [review]
Be paranoid when parsing external intent extras. v1

Thanks. Please ping us if the situation changes!
Attachment #8499899 - Flags: approval-mozilla-release?
Attachment #8499899 - Flags: approval-mozilla-release-
Attachment #8499899 - Flags: approval-mozilla-beta?
Attachment #8499899 - Flags: approval-mozilla-beta-
Needs rebasing for Aurora uplift.
Flags: needinfo?(rnewman)
Taking this on 33.0 (build #2)?
Comment on attachment 8499899 [details] [diff] [review]
Be paranoid when parsing external intent extras. v1

We are going to make a build #2 for fennec & desktop, we can take them.
Attachment #8499899 - Flags: approval-mozilla-release- → approval-mozilla-release+
Blocks: 1090385
How do I check Google Play crashes to confirm this has gone away?
Keywords: crash
One would need dashboard access, but I think this was categorized under the signature on the dashboard:

java.lang.ClassNotFoundException
in dalvik.system.BaseDexClassLoader.findClass

Which has been further captured in bug 1090361
(In reply to Aaron Train [:aaronmt] from comment #18)
> One would need dashboard access

Given that I'm the QA lead for Fennec 35 I should probably have access, no? Who can I ask about this?
Are there any bugs filed and/or investigations done for catching those issues in our own crash reporter so we do not have to rely on the few people that can access that dashboard?
Bug 1043457, amongst other things.
Blocks: 1147992
See Also: → 1299939
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.