New issue
Advanced search Search tips

Issue 644768 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 1
Type: Bug

Blocking:
issue 82385



Sign in to add a comment

blink_platform_unittests PaintControllerUnderInvalidationTest.MoreDrawing failing on Win-Clang bots

Project Member Reported by h...@chromium.org, Sep 7 2016

Issue description

https://build.chromium.org/p/chromium.fyi/builders/CrWinClang%20tester/builds/8915
https://build.chromium.org/p/chromium.fyi/builders/CrWinClang64%20tester/builds/4362
https://build.chromium.org/p/chromium.fyi/builders/ClangToTWin%20tester/builds/6058
https://build.chromium.org/p/chromium.fyi/builders/ClangToTWin64%20tester/builds/6176

Presumably because of https://codereview.chromium.org/2314103002

PaintControllerUnderInvalidationTest.MoreDrawing (run #1):
[ RUN      ] PaintControllerUnderInvalidationTest.MoreDrawing
../../third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp(1706): error: Death test: testMoreDrawing()
    Result: died but not with expected error.
  Expected: Can't find cached display item
Actual msg:
[  DEATH   ] [5036:2184:0907/081051:3634620:WARNING:test_suite.cc(211)] Test launcher output path C:\Users\CHROME~2\AppData\Local\Temp$4_9447	est_results.xml exists. Not adding test launcher result printer.
[  DEATH   ] Backtrace:
[  DEATH   ] 	blink::PaintController::findOutOfOrderCachedItemForward [0x000000013F9AA6BA+146]
[  DEATH   ] 	blink::PaintController::useCachedDrawingIfPossible [0x000000013F9A99A8+140]
[  DEATH   ] 	blink::drawRect [0x000000013F14F152+42]
[  DEATH   ] 	blink::PaintControllerUnderInvalidationTest::testMoreDrawing [0x000000013F165ACD+291]
[  DEATH   ] 	blink::PaintControllerUnderInvalidationTest_MoreDrawing_Test::TestBody [0x000000013F165906+210]
[  DEATH   ] 	testing::Test::Run [0x000000013FDC09C1+183]
[  DEATH   ] 	testing::TestInfo::Run [0x000000013FDC11FB+211]
[  DEATH   ] 	testing::TestCase::Run [0x000000013FDC1589+241]
[  DEATH   ] 	testing::internal::UnitTestImpl::RunAllTests [0x000000013FDC5B80+590]
[  DEATH   ] 	testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool> [0x000000013FDC5928+58]
[  DEATH   ] 	testing::UnitTest::Run [0x000000013FDC5878+162]
[  DEATH   ] 	base::TestSuite::Run [0x000000013FA729E0+132]
[  DEATH   ] 	main [0x000000013F2A6B26+322]
[  DEATH   ] 	base::LaunchUnitTests [0x000000013FA7348A+142]
[  DEATH   ] 	main [0x000000013F2A6AC8+228]
[  DEATH   ] 	__scrt_common_main_seh [0x000000014007F64C+292] (f:\ddctools\crtcstartup\src\startup\exe_common.inl:255)
[  DEATH   ] 	BaseThreadInitThunk [0x0000000076EB5A4D+13]
[  DEATH   ] 	RtlUserThreadStart [0x00000000770EB831+33]
[  DEATH   ]
[  FAILED  ] PaintControllerUnderInvalidationTest.MoreDrawing (125 ms)
 
Cc: pdr@chromium.org wangxianzhu@chromium.org
The discussion on that review suggests that some tests fail on other bots as well...maybe not clang-specific?
Blocking: 82385
There is only one layout test fail and we know it's an under-invalidation and will fix it soon.

According to http://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=blink_platform_unittests&tests=PaintControllerUnderInvalidationTest.MoreDrawing this bug is specific on windows clang and LTO Linux.

Comment 4 by h...@chromium.org, Sep 7 2016

The test fails on official chrome-branded MSVC builds too -- no Clang necessary.

wangxianzhu: What's your plan for fixing this? It seems to me like it's time to revert that patch.
hans@ can you provide the link to the failing builds?
Please don't revert the change. This is actually the problem of the test and I will fix the test instead.

Comment 7 by h...@chromium.org, Sep 7 2016

See the links in #0.

For the MSVC official build, I did that locally. I suspect we don't have Windows bots running this test in official builds, except the Clang ones.
I think the internal official builds do run tests, so you'll get a bug assigned to you the next time they cycle (they're very slow and might run only nightly for canary builds, not sure).
Cc: -wangxianzhu@chromium.org h...@chromium.org
Owner: wangxianzhu@chromium.org
The CL was in between 9/2 8:59 and 9/5 1:30, and after 9/6 17:43. I would like to check the status of internal official builds, but for now the server returns 502 (or I did sth wrong to access the builds).

It seemed that during the following expected CHECK failure:
        CHECK(false) << "Can't find cached display item";
some logs from other part of the code mixed in, or the logging system didn't catch the output of the above CHECK failure.
This looks like a problem of the logging code or the gtest death testing code. However I'll create a patch to workaround it.

hans@ did you get exactly the same results as on the clang-win bots when you run official build locally?
Aha! Official builds don't include the string parameter to CHECK, this is actually a known bug type. You'll want something like https://codereview.chromium.org/1053013009/diff/20001/ppapi/shared_impl/media_stream_buffer_manager_unittest.cc (see the bug linked from that CL, and the bug blocked on that bug for several similar examples)

Comment 13 by pdr@chromium.org, Sep 7 2016

Thank you for helping investigate this Nico. The linked bugs seem to be about working around this issue but I'm worried the next person to use EXPECT_DEATH will hit this again in the future. Could we change EXPECT_DEATH to not have a string parameter, or add comments warning folks?
EXPECT_DEATH is in gtest, so we can't change it super easily. But if you can come up with something, that'd be cool! I'd say we hit this about once a quarter (there might be more instance I don't know about, but the clang official bots usually find official breakages first)

Comment 15 by pdr@chromium.org, Sep 7 2016

Would the following idea work?
1) Add a root PRESUBMIT.py check that bans the use of EXPECT_DEATH( and ASSERT_DEATH( in https://cs.chromium.org/chromium/src/PRESUBMIT.py?l=153
2) Add a new EXPECT_DEATH wrapper that drops the param in official builds, sort of like https://cs.chromium.org/chromium/src/third_party/crashpad/crashpad/test/gtest_death_check.h
Project Member

Comment 16 by bugdroid1@chromium.org, Sep 7 2016

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

commit 812a431578014239af1444e2967413140ab516de
Author: wangxianzhu <wangxianzhu@chromium.org>
Date: Wed Sep 07 23:17:59 2016

Fix PaintControllerUnderInvalidationTest.MoreDrawing on official builds

Official build doesn't output strings on CHECK failures.

BUG= 644768 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2

Review-Url: https://codereview.chromium.org/2319283002
Cr-Commit-Position: refs/heads/master@{#417112}

[modify] https://crrev.com/812a431578014239af1444e2967413140ab516de/third_party/WebKit/Source/platform/graphics/paint/PaintControllerTest.cpp

Status: Fixed (was: Assigned)

Comment 18 Deleted

Sign in to add a comment