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

Issue 696769 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux , Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mash_unittests OverflowButtonActiveInkDropTest.TouchContextMenu is flaky

Project Member Reported by afakhry@chromium.org, Feb 27 2017

Issue description

This test causes recurring failures on the Linux ChromiumOS Ozone Tests builder (https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Ozone%20Tests%20%281%29).

Maybe we should do the same thing in this CL (https://codereview.chromium.org/2718763003) for this test: 
if (WmShell::Get()->IsRunningInMash())
  return;


 

Comment 1 by sky@chromium.org, Feb 27 2017

Status: Started (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 28 2017

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

commit 98d7a599f145f9e5ad5b5f6a47dc1998045f16c8
Author: sky <sky@chromium.org>
Date: Tue Feb 28 00:18:35 2017

mash: makes OverflowButtonActiveInkDropTest.TouchContextMenu early out

It appears to be flaky.

BUG= 696769 , 695751 
TEST=test only change
R=msw@chromium.org
TBR=msw@chromium.org

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

[modify] https://crrev.com/98d7a599f145f9e5ad5b5f6a47dc1998045f16c8/ash/shelf/shelf_view_unittest.cc

Comment 3 by sky@chromium.org, Feb 28 2017

Status: Fixed (was: Started)

Comment 4 by thakis@chromium.org, Mar 21 2017

Status: Assigned (was: Fixed)
It's back, runing my try jobs: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/344720

failures:
OverflowButtonActiveInkDropTest.TouchDragOutAndBack
OverflowButtonActiveInkDropTest.TouchContextMenu
OverflowButtonInkDropTest.TouchActivate
OverflowButtonActiveInkDropTest.TouchDragOut
OverflowButtonActiveInkDropTest.MouseDragOutAndBack
 

Comment 6 by sky@chromium.org, Mar 22 2017

Cc: jamescook@chromium.org
I'll take a look at this tomorrow. James, might this be from https://codereview.chromium.org/2752903002 ?
Cc: tdander...@chromium.org
Labels: Proj-Mustash-Mash
+tdanderson. Who on your team knows the ink drop / ripple code?

It's possible the CL in #6 is related. The overflow menu uses pointer watchers to close itself and my CL hooks up pointer watchers in mash_unittests. However, everything it does is synchronous -- I don't see an obvious way it would introduce flake.

One possibility is that the test was incorrectly passing before (I suspect the overflow menu was not being hidden in the tests) and my CL exposed some existing flake.

Maybe animation differences between classic ash and mash? mash_unittests not tweaking animation timing the same way as ash_unittests?

Error is:
[ RUN      ] OverflowButtonInkDropTest.TouchActivate
[2375:2375:0321/144438.879212:408041496:ERROR:window_tree_host_mus.cc(224)] Not implemented reached in virtual void aura::WindowTreeHostMus::MoveCursorToScreenLocationInPixels(const gfx::Point &)
../../ash/shelf/shelf_view_unittest.cc:2679: Failure
Value of: overflow_button_ink_drop_->GetAndResetRequestedStates()
Expected: has 1 element that is equal to ACTION_PENDING
  Actual: { HIDDEN, ACTION_PENDING }, which has 2 elements

I see this code in InkDropImpl:
InkDropState InkDropImpl::GetTargetInkDropState() const {
  if (!ink_drop_ripple_)
    return InkDropState::HIDDEN;
  return ink_drop_ripple_->target_ink_drop_state();
}

Comment 8 by sky@chromium.org, Mar 22 2017

Cc: bruthig@chromium.org
bruthig@ knows the ink-drop code. I'll poke at this some now.

Comment 9 by sky@chromium.org, Mar 22 2017

As this is causing pain in the CQ I'm disabling the tests for now.
Project Member

Comment 10 by bugdroid1@chromium.org, Mar 22 2017

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

commit 1203b185b7da6a3e2e879c72ad0c340e36b34120
Author: sky <sky@chromium.org>
Date: Wed Mar 22 18:19:12 2017

Makes a couple of overflow button tests early out in mash

They are flaky on the bots.

BUG= 696769 
TEST=none
R=msw@chromium.org
TBR=msw@chromium.org

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

[modify] https://crrev.com/1203b185b7da6a3e2e879c72ad0c340e36b34120/ash/shelf/shelf_view_unittest.cc

Regarding #1

It's odd that OverflowButtonActiveInkDropTest.TouchContextMenu is flakey.  It was intended to be deterministic by using a ScopedMockTimeMessageLoopTaskRunner to drive the underlying Timers and the Layer animations should complete immediately as per the ui::ScopedAnimationDurationScaleMode::ZERO_DURATION set in AshTestHelper::SetUp().

What line is this test actually failing on (The ones reported in old logs don't match up to code search)?

Since it's intermittent I'd start by adding a log line to InkDropImpl::AnimateToState() (or InkDropSpy::AnimateToState()) and find out when the extra HIDDEN is being requested.

I'd also be suspicious of an unexpected input event being dispatched for some reason.

ASSERTing that the overflow shelf is actually closed might shed some light on things.

It's also conceivable that my CL results in two events sent to the code under test, one via normal event generation and one via pointer watcher. However, I think that's similar to what the window server does in mash.

Several more flaky tests from this suite came up in the sheriff list from try flakes today, see OverflowButtonActiveInkDropTest.TouchDragOutAndBack  issue 704175 , OverflowButtonActiveInkDropTest.MouseDragOut  issue 704157 , and OverflowButtonInkDropTest.TouchContextMenu  issue 704176 .

Comment 14 by sky@chromium.org, Mar 22 2017

Status: Started (was: Assigned)
I think I have a handle on what is causing this.

Comment 15 by sky@chromium.org, Mar 22 2017

Cc: sky@chromium.org
 Issue 704175  has been merged into this issue.

Comment 16 by sky@chromium.org, Mar 22 2017

 Issue 704157  has been merged into this issue.

Comment 17 by sky@chromium.org, Mar 22 2017

 Issue 704176  has been merged into this issue.
Project Member

Comment 18 by bugdroid1@chromium.org, Mar 22 2017

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

commit eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69
Author: sky <sky@chromium.org>
Date: Wed Mar 22 23:24:18 2017

Makes AshTestHelper shutdown ChromeOS NetworkHandler

Classic ash unittests don't run with the NetworkHandler running. To
run with the NetworkHandler triggers additional items on the tray,
which tests are not setup to deal correctly with.

BUG= 695751 , 696769 
TEST=test only changes
R=jamescook@chromium.org

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

[modify] https://crrev.com/eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69/ash/mus/test/wm_test_helper.cc
[modify] https://crrev.com/eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69/ash/mus/window_manager_application.cc
[modify] https://crrev.com/eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69/ash/mus/window_manager_application.h
[modify] https://crrev.com/eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69/ash/shelf/shelf_view_unittest.cc
[modify] https://crrev.com/eeccd7ee07f0c25c2de9b9ab4c176ac0b3441e69/ash/test/ash_test_helper.cc

Comment 19 by sky@chromium.org, Mar 22 2017

Status: Fixed (was: Started)
I believe this fixes all the flakey shelf related mash_unitests.

Sign in to add a comment