Crash in [@ std::__ndk1::__tree<T>::find<T>]
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox-esr68 | --- | unaffected |
firefox-esr78 | --- | unaffected |
firefox79 | --- | wontfix |
firefox80 | --- | wontfix |
firefox81 | --- | fixed |
People
(Reporter: RyanVM, Assigned: kats)
References
(Regression)
Details
(Keywords: crash, regression)
Crash Data
Attachments
(1 file)
This bug is for crash report bp-d34ecfab-599e-440d-8d6b-ee3fd0200818.
This is showing up as a new signature with the Focus 8.6 release based on Gecko 79. Looks like it affects Fenix also.
Top 10 frames of crashing thread:
0 libxul.so std::__ndk1::__tree_iterator<std::__ndk1::__value_type<mozilla::layers::LayersId, mozilla::layers::CompositorBridgeParent::LayerTreeState>, std::__ndk1::__tree_node<std::__ndk1::__value_type<mozilla::layers::LayersId, mozilla::layers::CompositorBridgeParent::LayerTreeState>, void*>*, long> std::__ndk1::__tree<std::__ndk1::__value_type<mozilla::layers::LayersId, mozilla::layers::CompositorBridgeParent::LayerTreeState>, std::__ndk1::__map_value_compare<mozilla::layers::LayersId, std::__ndk1::__value_type<mozilla::layers::LayersId, mozilla::layers::CompositorBridgeParent::LayerTreeState>, std::__ndk1::less<mozilla::layers::LayersId>, true>, std::__ndk1::allocator<std::__ndk1::__value_type<mozilla::layers::LayersId, mozilla::layers::CompositorBridgeParent::LayerTreeState> > >::find<mozilla::layers::LayersId> /builds/worker/fetches/android-ndk/sources/cxx-stl/llvm-libc++/include/__tree:2598
1 libxul.so mozilla::layers::GetStateForRoot gfx/layers/ipc/CompositorBridgeParent.cpp:2459
2 libxul.so mozilla::layers::CompositorBridgeParent::GetGeckoContentControllerForRoot gfx/layers/ipc/CompositorBridgeParent.cpp:2494
3 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:244
4 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
5 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
6 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
7 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
8 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
9 libxul.so mozilla::layers::RemoteContentController::UpdateOverscrollVelocity gfx/layers/ipc/RemoteContentController.cpp:247
Comment 2•4 years ago
|
||
The stacks are recursing into UpdateOverscrollVelocity quite deep, perhpas we are accidentally going in a circle and recursing forever until running out of stack?
Comment 3•4 years ago
|
||
The crash stack suggests that in this call, rootController
is also a RemoteContentController
and so we get into an infinite recursion. The code assumes it will be a ChromeProcessController
.
Assignee | ||
Comment 4•4 years ago
|
||
Yeah that's what it seems like. It's pretty weird because it means the root CompositorBridgeParent has a RemoteContentController as its GeckoContentController implementation, which should only happen if the GPU process is enabled, which should never be the case on Android. And even if it were, the XRE_IsParentProcess() check here should catch that.
I looked at some of the other codepaths too and don't see how this can be happening. Maybe we should land more MOZ_RELEASE_ASSERTs to isolate the problem.
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 5•4 years ago
|
||
If somehow we're getting a BrowserChild instance created in the parent process, and it runs this code that will trigger this code on the root CBP which could then cause this crash on the next overscroll.
I'm not sure why a BrowserChild instance might get created in the parent process, maybe extensions or something? It might also be something else entirely but of the codepaths I've seen this seems the most plausible.
Assignee | ||
Comment 6•4 years ago
•
|
||
:nika said that we should never be getting a BrowserChild instance in the parent process. So I'm not sure what's going on here. I have a patch that asserts things harder. https://treeherder.mozilla.org/#/jobs?repo=try&group_state=expanded&revision=072f08ca10adbca2a03a494d565b374d98f99306
Assignee | ||
Comment 7•4 years ago
|
||
Updated•4 years ago
|
Comment 9•4 years ago
|
||
bugherder |
Updated•4 years ago
|
Assignee | ||
Comment 11•4 years ago
|
||
We'll probably see the crash disappear and be replaced with another one on one of the release asserts. So the signature will change, might as well keep this one closed for now.
Reporter | ||
Comment 12•4 years ago
|
||
Alright, thanks. We'll keep an eye on the incoming reports from Nightly (keeping in mind that there's a bit of lag with Fenix Nightly builds picking up newer GV builds).
Reporter | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Assignee | ||
Updated•4 years ago
|
Description
•