New issue
Advanced search Search tips

Issue 759870 link

Starred by 1 user

Issue metadata

Status: Archived
Owner: ----
Closed: Sep 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , All
Pri: 2
Type: Bug



Sign in to add a comment

LayoutProviderTest.ExplicitTypographyLineHeight is flaky

Project Member Reported by tbansal@chromium.org, Aug 28 2017

Issue description

Build:
https://uberchromegw.corp.google.com/i/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/62727

...
[ RUN      ] LayoutProviderTest.ExplicitTypographyLineHeight
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 32
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 31
...

Possible offending CL:
https://chromium-review.googlesource.com/c/chromium/src/+/630259

Revert in progress: https://chromium-review.googlesource.com/c/chromium/src/+/639241


 
Cc: msw@chromium.org pkasting@chromium.org tapted@chromium.org
Components: UI>Browser
Owner: ----
Status: Untriaged (was: Assigned)
Summary: LayoutProviderTest.ExplicitTypographyLineHeight is flaky (was: LayoutProviderTest.ExplicitTypographyLineHeight is failing)
An earlier flake from Aug 24:
https://uberchromegw.corp.google.com/i/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29/builds/62635


CC'ing some of the owners.

Cc: -tapted@chromium.org
Owner: tapted@chromium.org
Status: Assigned (was: Untriaged)
Cc: -msw@chromium.org -pkasting@chromium.org bsep@chromium.org

Comment 5 by tapted@chromium.org, Aug 29 2017

Note dashboard suggests only Windows 7 might be affected - can't find any win10 failures.

Comment 6 by tapted@chromium.org, Aug 29 2017

full output from one run (all 3 retries fail with the same output)

[ RUN      ] LayoutProviderTest.ExplicitTypographyLineHeight
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 32
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 31
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 0
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(361): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 32
To be equal to: label.height()
      Which is: 31
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 0
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 22
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 1
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(361): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 22
To be equal to: label.height()
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 1
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 3
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(361): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: label.height()
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 3
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(368): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: views::style::GetLineHeight(views::style::CONTEXT_LABEL, kStyle)
      Which is: 21
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(372): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: styled_label.height()
      Which is: 21
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(378): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: styled_label.height()
      Which is: 21
[  FAILED  ] LayoutProviderTest.ExplicitTypographyLineHeight (22 ms)


Comment 7 by tapted@chromium.org, Aug 29 2017

huh. actually on some retries, it's indexes 1 and 2 that fail. Not 3, and not the BodyLineHeight test

[ RUN      ] LayoutProviderTest.ExplicitTypographyLineHeight
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 22
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 1
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(361): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 22
To be equal to: label.height()
      Which is: 21
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 1
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(357): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 19
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 2
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(361): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: label.height()
      Which is: 19
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(355): Testing index: 2
[  FAILED  ] LayoutProviderTest.ExplicitTypographyLineHeight (3 ms)

ref - https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.fyi%2FCrWinClang64_tester%2F6651%2F%2B%2Frecipes%2Fsteps%2Funit_tests%2F0%2Flogs%2FLayoutProviderTest.ExplicitTypographyLineHeight%2F0


Anyway, disable CL is at https://chromium-review.googlesource.com/c/chromium/src/+/639367

Comment 8 by bsep@chromium.org, Aug 29 2017

That's very strange. Do some bots simply have different font sizes configured? I may need to test on a real Windows 7 machine for the right values and then just keep the test disabled on that platform, since the bots seem like they're all over the place.

Comment 9 by tapted@chromium.org, Aug 29 2017

The waterfall bot at https://uberchromegw.corp.google.com/i/chromium.win/builders/Win7%20Tests%20%28dbg%29%281%29 only has a single slave, so it always runs on the same bot.

And the runs in https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.fyi%2FCrWinClang64_tester%2F6651%2F%2B%2Frecipes%2Fsteps%2Funit_tests%2F0%2Flogs%2FLayoutProviderTest.ExplicitTypographyLineHeight%2F0 actually have different behavior on retries

So I think this is Windows' font system doing weird/buggy/random stuff.

I considered it may be something weird in the way tests are run. If a test running in parallel asks for a font before DirectWrite is initialized then I think it would cause ResourceBundle to cache a non-direct-write font.

But retries are run single-process, so I think we can count that out.

Comment 10 by bsep@chromium.org, Aug 29 2017

Yikes, no wonder I had so much trouble getting the right values. We can go to GDI mode for Windows 7 to keep test coverage, since that wasn't flaky.
Project Member

Comment 11 by bugdroid1@chromium.org, Aug 29 2017

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

commit 0a262e581259d11fd953920efe6e31a6798eb839
Author: Trent Apted <tapted@chromium.org>
Date: Tue Aug 29 01:07:38 2017

Disable flaky LayoutProviderTest.ExplicitTypographyLineHeight on Windows 7.

This isn't the nicest way to disable a test, but ensures we retain some
coverage on Windows 10.

TBR=bsep@chromium.org

Bug:  759870 
Change-Id: Iab4869db287b6427d132d2e80296f699fe054ffa
Reviewed-on: https://chromium-review.googlesource.com/639367
Commit-Queue: Trent Apted <tapted@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Reviewed-by: Trent Apted <tapted@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497968}
[modify] https://crrev.com/0a262e581259d11fd953920efe6e31a6798eb839/chrome/browser/ui/views/harmony/layout_provider_unittest.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 28 2017

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

commit 5f0588db03a24bfe7873b0111f05cfadf34bd12a
Author: Trent Apted <tapted@chromium.org>
Date: Thu Sep 28 04:18:55 2017

Re-enable LayoutProviderTest.ExplicitTypographyLineHeight on Windows 7.

It was disabled for being flaky once enabling DirectWrite. Test using
GDI instead to avoid the flakiness. Still use DirectWrite on Windows
10, which isn't flaky.

Bug:  759870 
Change-Id: Ib2aeab562be8734e471b12cd479c34bbea7bd607
Reviewed-on: https://chromium-review.googlesource.com/674888
Commit-Queue: Trent Apted <tapted@chromium.org>
Reviewed-by: Bret Sepulveda <bsep@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504895}
[modify] https://crrev.com/5f0588db03a24bfe7873b0111f05cfadf34bd12a/chrome/browser/ui/views/harmony/harmony_typography_provider.cc
[modify] https://crrev.com/5f0588db03a24bfe7873b0111f05cfadf34bd12a/chrome/browser/ui/views/harmony/layout_provider_unittest.cc

Cc: tapted@chromium.org
Labels: -Pri-1 OS-Windows Pri-2
Owner: ----
Status: Available (was: Assigned)
We're probably not out of the woods on this one.

https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=unit_tests&tests=LayoutProviderTest.ExplicitTypographyLineHeight

has flaky failures, but reliable passes on retries. On Windows 10.

It's possibly a flake in a Windows subsystem attempting to enable DirectWrite.

Lowering priority, since the retries seem to be reliable on Windows 10.



Example: https://chromium-swarm.appspot.com/task?id=396f491327c08f10&refresh=10&show_raw=1

[ RUN      ] LayoutProviderTest.ExplicitTypographyLineHeight
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(360): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: views::style::GetLineHeight(kHarmonyHeights[i].context, kStyle)
      Which is: 19
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(358): Testing index: 3
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(364): error:       Expected: kHarmonyHeights[i].line_height
      Which is: 20
To be equal to: label.height()
      Which is: 19
Google Test trace:
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(358): Testing index: 3
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(371): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: views::style::GetLineHeight(views::style::CONTEXT_LABEL, kStyle)
      Which is: 19
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(375): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: styled_label.height()
      Which is: 19
../../chrome/browser/ui/views/harmony/layout_provider_unittest.cc(381): error:       Expected: kBodyLineHeight
      Which is: 20
To be equal to: styled_label.height()
      Which is: 19
[  FAILED  ] LayoutProviderTest.ExplicitTypographyLineHeight (3 ms)

Retrying 3 tests (retry #1)
[7809/7811] TabStripModelTest.MoveSelectedTabsTo (46 ms)
[7810/7811] LayoutProviderTest.ExplicitTypographyLineHeight (6 ms)
[7811/7811] DownloadProtectionServiceFlagTest.CheckClientDownloadOverridenByFlag (44 ms)
Status: Archived (was: Available)
Archiving old bugs that haven't been actively assigned in over 180 days.

If you feel this issue should still be addressed, feel free to reopen it or to file a new issue. Thanks!
Archiving old bugs that haven't been actively assigned in over 180 days.

If you feel this issue should still be addressed, feel free to reopen it or to file a new issue. Thanks!
Archiving old bugs that haven't been actively assigned in over 180 days.

If you feel this issue should still be addressed, feel free to reopen it or to file a new issue. Thanks!

Sign in to add a comment