New issue
Advanced search Search tips

Issue 879017 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 30
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

PaintPropertyNodeTest.InitialStateAndReset always has to be retried

Project Member Reported by w...@chromium.org, Aug 30

Issue description

Running blink_platform_unittests with retries disabled fails because of PaintPropertyNodeTest.InitialStateAndReset, which always fails when run as part of the full suite, and only passes when retried / run on its own.

 
Components: -Blink Blink>Paint
I don't see this locally but it's definitely failing on first-run on the bots:
https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=blink_platform_unittests&tests=PaintPropertyNodeTest.InitialStateAndReset

Here's the failure:
[ RUN      ] PaintPropertyNodeTest.InitialStateAndReset
../../third_party/blink/renderer/platform/graphics/paint/paint_property_node_test.cc:87: Failure
Value of: tree.root->NodeChanged()
  Actual: false
Expected: true
Stack trace:
0   blink_platform_unittests testing::internal::UnitTestImpl::CurrentOsStackTraceExceptTop(int) + 91
1   blink_platform_unittests testing::internal::AssertHelper::operator=(testing::Message const&) const + 89
2   blink_platform_unittests void blink::PaintPropertyNodeTest::...
3   blink_platform_unittests blink::PaintPropertyNodeTest_InitialStateAndReset_Test::TestBody() + 22
[  FAILED  ] PaintPropertyNodeTest.InitialStateAndReset (6 ms)
The test will consistently fail when run after PaintControllerUnderInvalidationTest.EmptySubsequenceInCachedSubsequence:

out/Debug/blink_platform_unittests  --single-process-tests --gtest_filter=PaintControllerUnderInvalidationTest.EmptySubsequenceInCachedSubsequence:PaintPropertyNodeTest.InitialStateAndReset
Owner: pdr@chromium.org
Status: Started (was: Untriaged)
The issue was relying on static state which can be changed by other tests. Patch in progress: https://chromium-review.googlesource.com/c/chromium/src/+/1196824

This is a common problem (it's also the root-cause of crbug.com/874484). I wonder if we could re-initialize statics between tests by modifying DEFINE_STATIC_REF/DEFINE_STATIC_LOCAL to have a reset mechanism for tests.
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6203ef45d90eac9112bc977e8f3c0df27a100ace

commit 6203ef45d90eac9112bc977e8f3c0df27a100ace
Author: Philip Rogers <pdr@chromium.org>
Date: Thu Aug 30 20:19:32 2018

Fix flaky paint property test that relied on static state

PaintPropertyNodeTest.InitialStateAndReset had an expectation that the
initial root paint property state was changed. This could fail if the
test was run after another test that modified the root node's state.
This patch initializes the root node state to be unchanged.

Bug:  879017 
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: If30731871ac8bffb66f8b3a387510e7e2d6fea56
Reviewed-on: https://chromium-review.googlesource.com/1196824
Reviewed-by: Xianzhu Wang <wangxianzhu@chromium.org>
Commit-Queue: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587733}
[modify] https://crrev.com/6203ef45d90eac9112bc977e8f3c0df27a100ace/third_party/blink/renderer/platform/graphics/paint/paint_property_node.h
[modify] https://crrev.com/6203ef45d90eac9112bc977e8f3c0df27a100ace/third_party/blink/renderer/platform/graphics/paint/paint_property_node_test.cc

Status: Fixed (was: Started)

Sign in to add a comment