Closed Bug 1713911 Opened 3 years ago Closed 3 years ago

Tests skipped in 'toolkit/components/pdfjs/test/browser.ini' for new Fission platform triage

Categories

(Core :: Web Painting, task)

task

Tracking

()

RESOLVED DUPLICATE of bug 1576514
Fission Milestone Future
Tracking Status
firefox-esr78 --- disabled
firefox89 --- disabled
firefox90 --- disabled
firefox91 --- affected

People

(Reporter: ahal, Unassigned)

References

Details

The following tests were disabled in toolkit/components/pdfjs/test/browser.ini due to new Fission platform triage:
browser_pdfjs_saveas.js

Full diff:

diff --git a/toolkit/components/pdfjs/test/browser.ini b/toolkit/components/pdfjs/test/browser.ini
--- a/toolkit/components/pdfjs/test/browser.ini
+++ b/toolkit/components/pdfjs/test/browser.ini
@@ -29,11 +36,13 @@ skip-if = true # see bug 1705327
 support-files =
   file_pdfjs_object_stream.pdf
   file_pdfjs_object_stream.pdf^headers^
 [browser_pdfjs_savedialog.js]
 skip-if = verify
 [browser_pdfjs_saveas.js]
 support-files =
   !/toolkit/content/tests/browser/common/mockTransfer.js
+skip-if =
+  fission && debug && (os == "win" || os == "mac")  # New platform triage
 [browser_pdfjs_views.js]
 [browser_pdfjs_zoom.js]
 skip-if = (verify && debug && (os == 'win'))

See the following try push for failures:
https://treeherder.mozilla.org/jobs?repo=try&revision=ad7a18fdad3b8e35b44152c16d94babb80387cd8

To run these failures in your own try push, first revert the skip-if
annotations, then run:

$ ./mach try fuzzy --rebuild 3 toolkit/components/pdfjs/test/browser.ini

Then use the fuzzy interface to select the task(s) which are relevant to the
removed skip-if expression(s). Please note the failure may be intermittent
and/or been fixed since the triage took place.

We need to determine whether this browser-chrome test failure should block shipping Fission. Tracking for Fission Milestone M7a for the initial audit. Then we can decide whether to move this bug to Fission M8 or post-MVP (Fission Future).

Here is a recent Try run for Fission browser-chrome:

https://treeherder.mozilla.org/jobs?repo=try&revision=ad7a18fdad3b8e35b44152c16d94babb80387cd8

Blocks: 1694824
Fission Milestone: --- → M7a

Based on the linked try run it appears that this test is failing due to a !aParent || result->mParentAGR == aParent assertion failure in https://searchfox.org/mozilla-central/rev/85a74c965bd4bcab091b5767c13c44f84671d9ce/layout/painting/nsDisplayList.cpp#844. Redirecting to :emilio who might have more context about layout and what is going wrong here :-)

Flags: needinfo?(emilio)

This is a DL building assert. I'm actually a bit surprised this is fission specific since the stack indicates that we're building the scrollframe inside a text control.

We have a variety of bugs open with this assert: bug 1697639 / bug 1494676 / bug 1645141 / bug 1700257. Bug 1700257 has a test-case and seems indeed to only repro with fission somehow, according to the comments. Perhaps Miko has cycles to look at this? I'm not too familiar with that code.

Depends on: 1700257
Flags: needinfo?(emilio) → needinfo?(mikokm)
See Also: → 1697639, 1494676, 1645141, 1700257
Component: PDF Viewer → Web Painting
Product: Firefox → Core

(In reply to Emilio Cobos Álvarez (:emilio) from comment #3)

This is a DL building assert. I'm actually a bit surprised this is fission specific since the stack indicates that we're building the scrollframe inside a text control.

We have a variety of bugs open with this assert: bug 1697639 / bug 1494676 / bug 1645141 / bug 1700257. Bug 1700257 has a test-case and seems indeed to only repro with fission somehow, according to the comments. Perhaps Miko has cycles to look at this? I'm not too familiar with that code.

If this test asserts in Fission debug builds but passes in Fission opt builds, then this bug probably doesn't need to block our Fission M7a Beta experiment, but we should evaluate whether this assertion needs to be fixed before we ship Fission MVP. I will track this bug for our Fission M8 Release experiment milestone.

Fission Milestone: M7a → M8

I am investigating this and other bugs with this signature.

Assignee: nobody → mikokm
Flags: needinfo?(mikokm)
Status: NEW → ASSIGNED

Miko, do you have any updates or an ETA for this test fix?

This test is still skipped for Fission debug tests on Windows and macOS:

[browser_pdfjs_saveas.js]
support-files =
  !/toolkit/content/tests/browser/common/mockTransfer.js
skip-if =
  fission && debug && (os == "win" || os == "mac")  # Bug 1713911 - new Fission platform triage

https://searchfox.org/mozilla-central/source/toolkit/components/pdfjs/test/browser.ini#34-38

Flags: needinfo?(mikokm)

(In reply to Chris Peterson [:cpeterson] from comment #6)

Miko, do you have any updates or an ETA for this test fix?

This test is still skipped for Fission debug tests on Windows and macOS:

[browser_pdfjs_saveas.js]
support-files =
  !/toolkit/content/tests/browser/common/mockTransfer.js
skip-if =
  fission && debug && (os == "win" || os == "mac")  # Bug 1713911 - new Fission platform triage

https://searchfox.org/mozilla-central/source/toolkit/components/pdfjs/test/browser.ini#34-38

The original AGR related assertion should now be fixed by the patch in bug 1697639. I cannot reproduce this assertion locally anymore.

There is however another assertion related to APZ:

1:02.93 GECKO(946445) [Parent 946445, WRSceneBuilder#1] ###!!! ASSERTION: Two layers that scroll together have different ancestor transforms: 'false', file /home/miko/Code/mu2/gfx/layers/apz/src/APZCTreeManager.cpp:1419
Initializing stack-fixing for the first stack frame, this may take a while...
 1:17.34 GECKO(946445) #01: NS_DebugBreak (/home/miko/Code/mu2/xpcom/base/nsDebugImpl.cpp:431)
 1:17.34 GECKO(946445) #02: mozilla::layers::HitTestingTreeNode* mozilla::layers::APZCTreeManager::PrepareNodeForLayer<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::RecursiveMutexAutoLock const&, mozilla::layers::WebRenderScrollDataWrapper const&, mozilla::layers::FrameMetrics const&, mozilla::layers::LayersId, mozilla::Maybe<mozilla::layers::ZoomConstraints> const&, mozilla::layers::AncestorTransform const&, mozilla::layers::HitTestingTreeNode*, mozilla::layers::HitTestingTreeNode*, mozilla::layers::APZCTreeManager::TreeBuildingState&) (/home/miko/Code/mu2/gfx/layers/apz/src/APZCTreeManager.cpp:1417)
 1:17.34 GECKO(946445) #03: void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper(mozilla::layers::WebRenderScrollDataWrapper))#1}::operator() const (/home/miko/Code/mu2/gfx/layers/apz/src/APZCTreeManager.cpp:481)
 1:17.34 GECKO(946445) #04: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:141)
 1:17.34 GECKO(946445) #05: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:142)
 1:17.34 GECKO(946445) #06: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:142)
 1:17.34 GECKO(946445) #07: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:142)
 1:17.34 GECKO(946445) #08: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:142)
 1:17.34 GECKO(946445) #09: std::enable_if<(std::is_same_v<decltype ({parm#2}({parm#1})), void>)&&(std::is_same_v<decltype ({parm#3}({parm#1})), void>), void>::type mozilla::layers::ForEachNode<mozilla::layers::ReverseIterator, mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#1}, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper)#2}>(mozilla::layers::WebRenderScrollDataWrapper, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#1}&, void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int)::{lambda(mozilla::layers::WebRenderScrollDataWrapper const)#2}&) (/home/miko/Code/mu2/gfx/layers/TreeTraversal.h:142)
 1:17.34 GECKO(946445) #10: void mozilla::layers::APZCTreeManager::UpdateHitTestingTreeImpl<mozilla::layers::WebRenderScrollDataWrapper>(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int) (/home/miko/Code/mu2/gfx/layers/apz/src/APZCTreeManager.cpp:440)
 1:17.34 GECKO(946445) #11: mozilla::layers::APZCTreeManager::UpdateHitTestingTree(mozilla::layers::WebRenderScrollDataWrapper const&, bool, mozilla::layers::LayersId, unsigned int) (/home/miko/Code/mu2/gfx/layers/apz/src/APZCTreeManager.cpp:722)
 1:17.34 GECKO(946445) #12: mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::LayersId, mozilla::layers::LayersId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_32::operator()() (/home/miko/Code/mu2/gfx/layers/apz/src/APZUpdater.cpp:0)
 1:17.35 GECKO(946445) #13: mozilla::detail::RunnableFunction<mozilla::layers::APZUpdater::UpdateScrollDataAndTreeState(mozilla::layers::LayersId, mozilla::layers::LayersId, mozilla::wr::Epoch const&, mozilla::layers::WebRenderScrollData&&)::$_32>::Run() (/home/miko/Code/mu2/obj-ff-dbg/dist/include/nsThreadUtils.h:533)
 1:17.35 GECKO(946445) #14: mozilla::layers::APZUpdater::ProcessQueue() (/home/miko/Code/mu2/gfx/layers/apz/src/APZUpdater.cpp:468)
 1:17.35 GECKO(946445) #15: mozilla::layers::APZUpdater::CompleteSceneSwap(mozilla::wr::WrWindowId const&, mozilla::wr::WrPipelineInfo const&) (/home/miko/Code/mu2/gfx/layers/apz/src/APZUpdater.cpp:122)
 1:17.35 GECKO(946445) #16: apz_post_scene_swap (/home/miko/Code/mu2/gfx/layers/apz/src/APZUpdater.cpp:534)
 1:17.35 GECKO(946445) #17: <webrender_bindings::bindings::APZCallbacks as webrender::renderer::SceneBuilderHooks>::post_scene_swap (gfx/webrender_bindings/src/bindings.rs:0)

We seem to have quite a few older bugs open for this, so it seems non-critical. And since this is NS_ASSERTION, at least the tests should run to completion.

Flags: needinfo?(mikokm)

(In reply to Miko Mynttinen [:miko] from comment #7)

The original AGR related assertion should now be fixed by the patch in bug 1697639. I cannot reproduce this assertion locally anymore.

Awesome!

There is however another assertion related to APZ:
...
We seem to have quite a few older bugs open for this, so it seems non-critical. And since this is NS_ASSERTION, at least the tests should run to completion.

We are tracking that "Two layers that scroll together have different ancestor transforms" assertion failure for Fission's MVP milestone in bug 1576514. I will move this bug to Fission's MVP milestone and make it depend on that bug.

Fission Milestone: M8 → MVP
Depends on: 1576514

If this test causes only the APZ's assertion, then we can simply allow it with using SimpleTest.expectAssertions.

I am also wondering whether disabling layout.display-list.improve-fragmentation eliminates the assertion or not.

Assignee: mikokm → nobody
Status: ASSIGNED → NEW

Resolving as a duplicate of bug 1576514, which tracks the skipped test's actual assertion failure. We can re-enable this browser_pdfjs_saveas.js test in that bug.

Status: NEW → RESOLVED
Fission Milestone: MVP → Future
Closed: 3 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.