New issue
Advanced search Search tips

Issue 808536 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug



Sign in to add a comment

Lots of LOG(ERROR): Invalid first_meaningful_paint (unset) for time_to_interactive

Project Member Reported by dproy@chromium.org, Feb 2 2018

Issue description

Repro step: 

* Open a url like https://www.nytimes.com/
* Immediately start typing gibberish on the keyboard until the page fully loads. 
* Wait an extra 10 second.
* Open a new tab so that the page backgrounds.

The console should have an error message like "Invalid first_meaningful_paint (unset) for time_to_interactive". 

The root cause seems to be when FMP is invalidated due to user input, Page Load Metrics no longer receives FMP, but InteractiveDetector still receives FMP. 
 
Thanks for debugging!

Do you have a sense for when this issue was first introduced?

Comment 2 by dproy@chromium.org, Feb 4 2018

I think it was introduced since Interactive Detector landed (https://chromium-review.googlesource.com/c/chromium/src/+/720213). thestig@ first noticed the error message and notified me, but it was hard to find consistent reproduction steps.  
Looks like this is in M64 but not 63. Does that sound right? Could we request a cherrypick of the fix into 65?

Comment 4 by dproy@chromium.org, Feb 4 2018

I'll try once the fix CL lands. 

Comment 5 by dproy@chromium.org, Feb 4 2018

And yes, I checked the UMA dashboard, and we only have TTI data since M64, so my best guess is that's when the errors started. 
Project Member

Comment 6 by bugdroid1@chromium.org, Feb 8 2018

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

commit 2576d2ee65549577c3293fa1f657586845e895ff
Author: Deepanjan Roy <dproy@chromium.org>
Date: Thu Feb 08 17:05:28 2018

Do not pass TTI to browser if FMP was invalidated

If First Meaningful Paint is invalidated on the renderer side, we should
not pass a TTI value to the browser. If we do, we end up with a
PageLoadTiming struct that contains a TTI value but no FMP value, and we
throw away that struct as invalid.

We still log a trace event (following the convention of FMP), because
the reaching of TTI quiescence can be useful data for post processing.

Bug:  808536 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I66869d0691bfc934fb94f427f6566f6a70463a73
Reviewed-on: https://chromium-review.googlesource.com/899506
Reviewed-by: Nate Chapin <japhet@chromium.org>
Reviewed-by: Bryan McQuade <bmcquade@chromium.org>
Commit-Queue: Deepanjan Roy <dproy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535413}
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/third_party/WebKit/Source/core/loader/InteractiveDetector.h
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/third_party/WebKit/Source/core/paint/PaintTiming.cpp
[modify] https://crrev.com/2576d2ee65549577c3293fa1f657586845e895ff/tools/metrics/histograms/enums.xml

Fixed? Thanks for working on this. Currently, the terminal from where I launched dev channel Chrome has nothing but this message.

Comment 8 by dproy@chromium.org, Feb 12 2018

Labels: Merge-Request-65
We're requesting a merge into M65 for this change, because

1. This bug is invalidating a significant portion of our page load metrics. If one metric is invalid, all page load metrics for that particular load is thrown out. See dramatic rise of errors in page load metrics here: https://uma.googleplex.com/p/chrome/timeline_v2/?sid=e7d1fe7441b090483b4aa6efa89e5b60

2. Although less urgent, the invalid metric is flooding users' console output making it harder to spot other errors.

Comment 9 by dproy@chromium.org, Feb 12 2018

Status: Fixed (was: Untriaged)
@thestig: Yes it's fixed now - we're requesting a merge back to M65 because the error is actually affecting a lot of our metrics. Thanks for reporting this bug! 
Project Member

Comment 10 by sheriffbot@chromium.org, Feb 12 2018

Labels: -Merge-Request-65 Merge-Review-65 Hotlist-Merge-Review
This bug requires manual review: M65 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 11 by cmasso@google.com, Feb 12 2018

Please add OSs

Comment 12 by dproy@chromium.org, Feb 12 2018

Labels: OS-Android OS-Chrome OS-Linux OS-Mac OS-Windows
How safe is the change listed at #6 to merge to M65?

Comment 14 by dproy@chromium.org, Feb 13 2018

It's a metrics only change, so there should be no user visible impact. Unfortunately the CL goes across a large refactoring CL [1] so the merge is not completely trivial. The only risk here would be crashes, but given that the CL in comment #6 changes less than 20 lines of actual code, I'm reasonably certain by manual inspection that there should be no newly introduced crashes. The change has also safely spent 4 days in Canary now.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/881602
Labels: -Merge-Review-65 Merge-Approved-65
Approving merge to M65 branch 3325 based on comments #9 and #14. Please merge ASAP so we can pick it up for tomorrow's beta release. Thank you.
Project Member

Comment 16 by bugdroid1@chromium.org, Feb 13 2018

Labels: -merge-approved-65 merge-merged-3325
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30aa6f499563e3b360a16f0723c21e0a76a482fa

commit 30aa6f499563e3b360a16f0723c21e0a76a482fa
Author: Deepanjan Roy <dproy@chromium.org>
Date: Tue Feb 13 18:48:10 2018

Merge: Do not pass TTI to browser if FMP was invalidated

This is a manual merge.

If First Meaningful Paint is invalidated on the renderer side, we should
not pass a TTI value to the browser. If we do, we end up with a
PageLoadTiming struct that contains a TTI value but no FMP value, and we
throw away that struct as invalid.

We still log a trace event (following the convention of FMP), because
the reaching of TTI quiescence can be useful data for post processing.

TBR=japhet@chromium.org, tdresser@chromium.org, bmcquade@chromium.org

Bug:  808536 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I66869d0691bfc934fb94f427f6566f6a70463a73
Reviewed-on: https://chromium-review.googlesource.com/899506
Reviewed-by: Nate Chapin <japhet@chromium.org>
Reviewed-by: Bryan McQuade <bmcquade@chromium.org>
Commit-Queue: Deepanjan Roy <dproy@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#535413}
Reviewed-on: https://chromium-review.googlesource.com/916723
Reviewed-by: Timothy Dresser <tdresser@chromium.org>
Cr-Commit-Position: refs/branch-heads/3325@{#450}
Cr-Branched-From: bc084a8b5afa3744a74927344e304c02ae54189f-refs/heads/master@{#530369}
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.h
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/third_party/WebKit/Source/core/loader/InteractiveDetector.cpp
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/third_party/WebKit/Source/core/loader/InteractiveDetector.h
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/third_party/WebKit/Source/core/loader/InteractiveDetectorTest.cpp
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/third_party/WebKit/Source/core/paint/PaintTiming.cpp
[modify] https://crrev.com/30aa6f499563e3b360a16f0723c21e0a76a482fa/tools/metrics/histograms/enums.xml

Sign in to add a comment