Closed Bug 1892126 Opened 3 months ago Closed 3 months ago

Perma [tier 2] org.mozilla.fenix.ui.<test> | java.lang.IllegalStateException: Size(996 x -42) is out of range. Each dimension must be between 0 and 16777215.

Categories

(Fenix :: Pocket, defect, P1)

All
Android
defect

Tracking

(firefox125+ fixed, firefox126blocking fixed, firefox127blocking fixed)

RESOLVED FIXED
127 Branch
Tracking Status
firefox125 + fixed
firefox126 blocking fixed
firefox127 blocking fixed

People

(Reporter: intermittent-bug-filer, Assigned: towhite)

References

Details

(5 keywords)

Crash Data

Attachments

(5 files)

Filed by: ncsoregi [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=454917903&repo=mozilla-beta
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KVfnn1CvQN25RFhZxX60oQ/runs/0/artifacts/public/logs/live_backing.log


[task 2024-04-17T23:23:40.348Z] TEST-UNEXPECTED-FAIL | org.mozilla.fenix.ui.ComposeSettingsDeleteBrowsingDataOnQuitTest#deleteBrowsingHistoryOnQuitTest | java.lang.IllegalStateException: Size(996 x -42) is out of range. Each dimension must be between 0 and 16777215.
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LookaheadCapablePlaceable.layout(LookaheadDelegate.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.layout.MeasureScope$-CC.layout$default(MeasureScope.kt:44)
[task 2024-04-17T23:23:40.348Z]  at org.mozilla.fenix.compose.StaggeredHorizontalGridKt$StaggeredHorizontalGrid$1$1.measure-3p2s80s(StaggeredHorizontalGrid.kt:96)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1617)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:596)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.BoxMeasurePolicy.measure-3p2s80s(Box.kt:122)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.FillNode.measure-3p2s80s(Size.kt:699)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutModifierNodeCoordinator.measure-BRTryo0(LayoutModifierNodeCoordinator.kt:116)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1617)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:596)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.RowColumnMeasurementHelper.measureWithoutPlacing-_EkL_-Y(RowColumnMeasurementHelper.kt:112)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.RowColumnMeasurePolicy.measure-3p2s80s(RowColumnImpl.kt:72)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1617)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:596)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.RowColumnMeasurementHelper.measureWithoutPlacing-_EkL_-Y(RowColumnMeasurementHelper.kt:112)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.foundation.layout.RowColumnMeasurePolicy.measure-3p2s80s(RowColumnImpl.kt:72)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1617)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.measure-BRTryo0(LayoutNodeLayoutDelegate.kt:596)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.layout.RootMeasurePolicy.measure-3p2s80s(RootMeasurePolicy.kt:38)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.InnerNodeCoordinator.measure-BRTryo0(InnerNodeCoordinator.kt:126)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:252)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$performMeasureBlock$1.invoke(LayoutNodeLayoutDelegate.kt:251)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.OwnerSnapshotObserver.observeMeasureSnapshotReads$ui_release(OwnerSnapshotObserver.kt:113)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:1617)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate.access$performMeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:36)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNodeLayoutDelegate$MeasurePassDelegate.remeasure-BRTryo0(LayoutNodeLayoutDelegate.kt:620)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.LayoutNode.remeasure-_Sx5XlM$ui_release(LayoutNode.kt:1145)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.MeasureAndLayoutDelegate.doRemeasure-sdFAvZA(MeasureAndLayoutDelegate.kt:354)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.MeasureAndLayoutDelegate.remeasureOnly(MeasureAndLayoutDelegate.kt:562)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.node.MeasureAndLayoutDelegate.measureOnly(MeasureAndLayoutDelegate.kt:407)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.platform.AndroidComposeView.onMeasure(AndroidComposeView.android.kt:1058)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.platform.AbstractComposeView.internalOnMeasure$ui_release(ComposeView.android.kt:302)
[task 2024-04-17T23:23:40.348Z]  at androidx.compose.ui.platform.AbstractComposeView.onMeasure(ComposeView.android.kt:289)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.RecyclerView$LayoutManager.measureChildWithMargins(RecyclerView.java:10210)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1688)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep1(RecyclerView.java:4591)
[task 2024-04-17T23:23:40.348Z]  at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:4016)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.348Z]  at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:795)
[task 2024-04-17T23:23:40.348Z]  at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:100)
[task 2024-04-17T23:23:40.348Z]  at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:2376)
[task 2024-04-17T23:23:40.348Z]  at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:866)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.348Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.348Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.348Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.348Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.348Z]  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
[task 2024-04-17T23:23:40.348Z]  at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
[task 2024-04-17T23:23:40.349Z]  at org.mozilla.fenix.perf.HomeActivityRootLinearLayout.onMeasure(HomeActivityRootLinearLayout.kt:26)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.349Z]  at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:145)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
[task 2024-04-17T23:23:40.349Z]  at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6957)
[task 2024-04-17T23:23:40.349Z]  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
[task 2024-04-17T23:23:40.349Z]  at com.android.internal.policy.DecorView.onMeasure(DecorView.java:747)
[task 2024-04-17T23:23:40.349Z]  at android.view.View.measure(View.java:25466)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3397)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:2228)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2486)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1952)
[task 2024-04-17T23:23:40.349Z]  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8171)
[task 2024-04-17T23:23:40.349Z]  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
[task 2024-04-17T23:23:40.349Z]  at android.view.Choreographer.doCallbacks(Choreographer.java:796)
[task 2024-04-17T23:23:40.349Z]  at android.view.Choreographer.doFrame(Choreographer.java:731)
[task 2024-04-17T23:23:40.349Z]  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
[task 2024-04-17T23:23:40.349Z]  at android.os.Handler.handleCallback(Handler.java:938)
[task 2024-04-17T23:23:40.349Z]  at android.os.Handler.dispatchMessage(Handler.java:99)
[task 2024-04-17T23:23:40.349Z]  at android.os.Looper.loop(Looper.java:223)
[task 2024-04-17T23:23:40.349Z]  at android.app.ActivityThread.main(ActivityThread.java:7656)
[task 2024-04-17T23:23:40.349Z]  at java.lang.reflect.Method.invoke(Native Method)
[task 2024-04-17T23:23:40.349Z]  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
[task 2024-04-17T23:23:40.349Z]  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
[task 2024-04-17T23:23:40.349Z] 

This seems to have regressed again causing widespread crashes on the home-screen due to negative height similar to last time in https://bugzilla.mozilla.org/show_bug.cgi?id=1888549

Duplicate of this bug: 1892124
Duplicate of this bug: 1889439
See Also: → 1888549
Keywords: crash

This is crashing on startup on real devices too. Big spike at the moment.

Severity: S4 → S1
Crash Signature: [@ java.lang.IllegalStateException: at androidx.compose.ui.node.LookaheadCapablePlaceable.layout(LookaheadDelegate.kt:38) ]
Priority: P5 → P1
See Also: → 1889097
Keywords: reproducible

This is being caused by some bad data from Pocket:

2024-04-17 19:09:06.811 14228-14228 bondbond                org.mozilla.fenix.debug              D  categories: 
[PocketRecommendedStoriesCategory(name=general, stories=[PocketRecommendedStory(title=null, url=null, 
imageUrl=https://img-getpocket.cdn.mozilla.net/{wh}/filters:format(jpeg):quality(60):no_upscale():strip_exif()/null, 
publisher=, category=general, timeToRead=-1, timesShown=3)])]

Bad data aside, Fenix should also have some better defensive coding for handling situations like these. In the UI, we should look into refactoring our custom StaggeredHorizontalGrid with the recently provided FlowRow component. In the data layer, we should consider tossing-out bad data that's retrieved in PocketStoriesUseCases.

Adjacently, iOS Firefox in this situation simply isn't rendering the categories since the data is broken.

Prevented the crash by replacing StaggeredHorizontalGrid with FlowRow. The UI looks like the attached screenshot

Diff

Component: General → Pocket

Reading the Slack thread: it sounds like the crash was resolved with a Pocket content patch; hard to tell from the crash stats page but I'm hoping that's true.

(Still definitely good to land any crash resiliency fix, per Noah's suggestion in Comment 6, because any startup crash that can be caused by an external content API is a big vulnerability for us).

Flags: needinfo?(brclark)

The problem at the data layer is caused by the current conversion of title, url & imageUrl by json.getString. If a literal null value is provided in JSON it will be coerced to a string as "null" and parsed as a valid Story. I will avoid changing any UX code at this point, as I believe this particular issue pertains to the handling of the provided data.

Noah, perhaps we should look into creating a new issue to convert all uses of StaggeredHorizontalGrid with FlowRow?

Assignee: nobody → towhite
Flags: needinfo?(nbond)
Pushed by icedicedcoffee@proton.me:
https://hg.mozilla.org/integration/autoland/rev/ae6f3ac3277b
Updated jsonToPocketApiStory function to handle null values r=android-reviewers,rsainani
Regressions: 1892523
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 127 Branch

:twhite adding a reminder here to add a beta and release uplift request when ready.
Will aim to take it in beta, but release depends on the risk.

Flags: needinfo?(towhite)
Attachment #9397819 - Flags: approval-mozilla-beta?

beta Uplift Approval Request

  • User impact if declined: Potential crashes caused by unhandled bad Pocket data
  • Code covered by automated testing: yes
  • Fix verified in Nightly: yes
  • Needs manual QE test: no
  • Steps to reproduce for manual QE testing: -
  • Risk associated with taking this patch: Low
  • Explanation of risk level: Verified in Nightly, covered by automated tests
  • String changes made/needed: No
  • Is Android affected?: no
Attachment #9397819 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
See Also: → 1893031
Attachment #9398278 - Flags: approval-mozilla-release?

Comment on attachment 9398278 [details] [review]
[mozilla-mobile/firefox-android] Uplift for Bug 1892126 - Updated jsonToPocketApiStory function to handle null values r=android-reviewers,rsainani (#6084)

Approved for 125.3.0

Flags: needinfo?(towhite)
Flags: needinfo?(nbond)
Attachment #9398278 - Flags: approval-mozilla-release? → approval-mozilla-release+

Authored by https://github.com/t-p-white
https://github.com/mozilla-mobile/firefox-android/commit/f6bf84b5d259a03163aa242e2f87a1e7af28d431
[releases_v125] Bug 1892126 - Updated jsonToPocketApiStory function to handle null values r=android-reviewers,rsainani

See Also: → 1901847
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: