New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 678093 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug



Sign in to add a comment

UserInputTracker::OnInputEvent receives WebInputEvents with timestamps in the future

Project Member Reported by chromium...@appspot.gserviceaccount.com, Jan 3 2017

Issue description

"CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction" is flaky.

This issue was created automatically by the chromium-try-flakes app. Please find the right owner to fix the respective test/step and assign this issue to them. If the step/test is infrastructure-related, please add Infra-Troopers label and change issue status to Untriaged. When done, please remove the issue from Sheriff Bug Queue by removing the Sheriff-Chromium label.

We have detected 3 recent flakes. List of all flakes can be found at https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyTwsSBUZsYWtlIkRDb3JlUGFnZUxvYWRNZXRyaWNzT2JzZXJ2ZXJUZXN0LkZpcnN0TWVhbmluZ2Z1bFBhaW50QWZ0ZXJJbnRlcmFjdGlvbgw.

Flaky tests should be disabled within 30 minutes unless culprit CL is found and reverted. Please see more details here: https://sites.google.com/a/chromium.org/dev/developers/tree-sheriffs/sheriffing-bug-queues#triaging-auto-filed-flakiness-bugs
 
Owner: ksakamoto@chromium.org
Status: Assigned (was: Untriaged)
ksakamoto@ could you please take a look into this?
Cc: bunge...@chromium.org pwnall@chromium.org ksakamoto@chromium.org jsc...@chromium.org brucedaw...@chromium.org
Owner: bmcquade@chromium.org
sorry ksakamoto@, after looking into this a little more, I don't think this a problem with your test.

This is being caused by an assertion failure, and comes up in two different tests (CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction and FromGWSPageLoadMetricsObserverTest.CloseAfterInteraction) for try jobs on a few different CLs. It has only flaked out with patches applied, but all 4 of these CLs have already landed, so cc'ing the authors.

It looks like the test failures happen because the input event time is in the future for some reason. The DCHECK checks that !base::TimeTicks::IsHighResolution(), which will always fail on Linux (where it's flaking out) - https://cs.chromium.org/chromium/src/base/time/time_posix.cc?q=base/time/time_posix.cc&sq=package:chromium&l=375. 

Bryan, do you know what's going wrong here?

[8856:8856:0103/141142.407412:87564934:FATAL:user_input_tracker.cc(102)] Check failed: !base::TimeTicks::IsHighResolution(). 
#0 0x0000043fa60e base::debug::StackTrace::StackTrace()
#1 0x00000441361b logging::LogMessage::~LogMessage()
#2 0x000004022b97 page_load_metrics::UserInputTracker::OnInputEvent()
#3 0x0000040211f0 page_load_metrics::PageLoadTracker::OnInputEvent()
#4 0x00000097f0fb CorePageLoadMetricsObserverTest_FirstMeaningfulPaintAfterInteraction_Test::TestBody()
#5 0x000003879cde testing::Test::Run()
#6 0x00000387aac0 testing::TestInfo::Run()
#7 0x00000387af57 testing::TestCase::Run()
#8 0x000003882217 testing::internal::UnitTestImpl::RunAllTests()
#9 0x000003881e2a testing::UnitTest::Run()
#10 0x00000351d9e1 base::TestSuite::Run()
#11 0x00000351f53d base::(anonymous namespace)::LaunchUnitTestsInternal()
#12 0x00000351f3b4 base::LaunchUnitTests()
#13 0x000003518c71 main
#14 0x7ff48dbaa7ed __libc_start_main
#15 0x000000645d61 <unknown>
 Issue 678094  has been merged into this issue.
Cc: -pwnall@chromium.org
My CL [1] was a comment change, so (compiler errors aside) it couldn't have changed the test's behavior. I hope this helps narrow down the range.

[1] https://codereview.chromium.org/2603413002/
I believe I'm on copy here because of the tryjob which failed at https://codereview.chromium.org/2611763002/#ps1 , but that CL is just adding a define which isn't actually used anywhere yet. (It will be used in about an hour.)
Project Member

Comment 6 by chromium...@appspot.gserviceaccount.com, Jan 4 2017

Detected 13 new flakes for test/step "CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction". To see the actual flakes, please visit https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyTwsSBUZsYWtlIkRDb3JlUGFnZUxvYWRNZXRyaWNzT2JzZXJ2ZXJUZXN0LkZpcnN0TWVhbmluZ2Z1bFBhaW50QWZ0ZXJJbnRlcmFjdGlvbgw. This message was posted automatically by the chromium-try-flakes app.
Status: Started (was: Assigned)
I'll try to start working on this soon.
Project Member

Comment 8 by chromium...@appspot.gserviceaccount.com, Jan 4 2017

Detected 18 new flakes for test/step "FromGWSPageLoadMetricsObserverTest.CloseAfterInteraction". To see the actual flakes, please visit https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyQwsSBUZsYWtlIjhGcm9tR1dTUGFnZUxvYWRNZXRyaWNzT2JzZXJ2ZXJUZXN0LkNsb3NlQWZ0ZXJJbnRlcmFjdGlvbgw. This message was posted automatically by the chromium-try-flakes app.

Comment 9 by kbr@chromium.org, Jan 5 2017

Cc: kbr@chromium.org junov@chromium.org
bmcquade@: this is affecting Chromium's commit queue and causing valid CLs to be kicked out of the CQ. One example is try job https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/364707 from CL https://codereview.chromium.org/2594843002 but I've seen it on other try jobs too. Please temporarily disable these two tests:

FromGWSPageLoadMetricsObserverTest.CloseAfterInteraction
CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction
 
Thanks.

This test has been unchanged for months and seems to be a flake problem only recently, so before we disable the test I'm going to see if some other more recent change is responsible for the flake.
Following up on comment #2, the DCHECK for IsHighResolution should never be reached, as input event timestamps should always be less than or equal to the current time. So there's a bug with the input event timestamps which may have been introduced recently. I'll take a quick look to see if anything stands out and if I don't see any obvious issues I'll disable the dcheck. Disabling the failing tests is not the right fix here.
Summary: UserInputTracker::OnInputEvent receives WebInputEvents with timestamps in the future (was: "CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction" is flaky)
UserInputTracker::OnInputEvent has a DCHECK to make sure that any WebInputEvent received has a timeStampSeconds that isn't in the future. The dcheck only fires in cases where we have a high resolution clock, as high resolution clocks are guaranteed to be system-wide monotonic across all processes (whereas the windows non-high res monotonic clock can skew between processes).

This dcheck recently started firing in unit tests. For now, we should just disable the dcheck since the broken tests is causing issues for other devs, but the real fix is to figure out why the input events have timestamps in the future and fix that.
Fix is here: https://codereview.chromium.org/2611943004 will commit once trybots go green.
Can we form a regression range for the issue?


Project Member

Comment 15 by bugdroid1@chromium.org, Jan 5 2017

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

commit ec1a7d3712848ad33ca4adf21950877624d44ee0
Author: bmcquade <bmcquade@chromium.org>
Date: Thu Jan 05 16:05:28 2017

Disable UserInputTracker DCHECK which is firing in unit tests.

UserInputTracker::OnInputEvent has a DCHECK to make sure that any
WebInputEvent received has a timeStampSeconds that isn't in the future.
The dcheck only fires in cases where we have a high resolution clock,
as high resolution clocks are guaranteed to be system-wide monotonic
across all processes (whereas the windows non-high res monotonic clock
can skew between processes).

This dcheck recently started firing in unit tests. For now, we just
disable the dcheck since the broken tests is causing issues for
other devs, but the real fix is to figure out why the input events have
timestamps in the future and fix that.

BUG=678093

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

[modify] https://crrev.com/ec1a7d3712848ad33ca4adf21950877624d44ee0/chrome/browser/page_load_metrics/user_input_tracker.cc

Project Member

Comment 16 by chromium...@appspot.gserviceaccount.com, Jan 6 2017

Detected 8 new flakes for test/step "CorePageLoadMetricsObserverTest.FirstMeaningfulPaintAfterInteraction". To see the actual flakes, please visit https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyTwsSBUZsYWtlIkRDb3JlUGFnZUxvYWRNZXRyaWNzT2JzZXJ2ZXJUZXN0LkZpcnN0TWVhbmluZ2Z1bFBhaW50QWZ0ZXJJbnRlcmFjdGlvbgw. This message was posted automatically by the chromium-try-flakes app.
Project Member

Comment 17 by chromium...@appspot.gserviceaccount.com, Jan 6 2017

Detected 8 new flakes for test/step "FromGWSPageLoadMetricsObserverTest.CloseAfterInteraction". To see the actual flakes, please visit https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyQwsSBUZsYWtlIjhGcm9tR1dTUGFnZUxvYWRNZXRyaWNzT2JzZXJ2ZXJUZXN0LkNsb3NlQWZ0ZXJJbnRlcmFjdGlvbgw. This message was posted automatically by the chromium-try-flakes app.
Labels: -Sheriff-Chromium
This appears to be under proper ownership now, removing sheriff label.
Cc: -junov@chromium.org

Sign in to add a comment