New issue
Advanced search Search tips

Issue 792747 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 1
Type: Bug-Regression



Sign in to add a comment

All tests in PaymentAppBrowserTest suite are flaky on Linux Tsan

Project Member Reported by thomasanderson@chromium.org, Dec 7 2017

Issue description

The Linux Tsan tester has been flaking for a while now and is detecting real failures.  A different test seems to flake each time.  Sample failures:

https://ci.chromium.org/buildbot/chromium.memory/Linux%20TSan%20Tests/15153
https://ci.chromium.org/buildbot/chromium.memory/Linux%20TSan%20Tests/15157
https://ci.chromium.org/buildbot/chromium.memory/Linux%20TSan%20Tests/15163
https://ci.chromium.org/buildbot/chromium.memory/Linux%20TSan%20Tests/15165

jinho.bang@ could you please look into this issue?
 
Cc: gogerald@chromium.org
cc Ganggui, because one of the threads is a PaymentAppInfoFetcher.

Comment 2 Deleted

Okay, I'll take this issue. This is similar to https://chromium-review.googlesource.com/c/chromium/src/+/658201.
Ping.  Any update on this?  4 of the last 25 runs on Linux TSan Tests have failed in PaymentAppBrowserTest.  We have an equivalent linux_chromium_tsan_rel_ng that runs on the CQ so devs may be blocked on red bots because of this issue.
jinho.bang@ has a CL almost ready to submit,
https://chromium-review.googlesource.com/c/chromium/src/+/818586
great! Thanks jinho.bang@ and gogerald@ for fixing the issue
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 19 2017

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

commit fd61042af3f8301ee3c3d3d3c2f79a684a9003b8
Author: Jinho Bang <jinho.bang@samsung.com>
Date: Tue Dec 19 16:59:23 2017

PaymentHandler: Fix flaky PaymentAppBrowserTest suite

This problem occurs due to race condition for `WebContents`. The
`PaymentAppInfoFetcher` that owns the `WebContentsHelper` is destroyed
on the IO thread in the previous implementation.
BTW, the `WebContentHelper` inherits `WebContentsObserver`, so, when it
is destroyed, it will eventually call `WebContentsImpl::RemoveObserver`
on the IO thread.
On the other hands, `WebContentsImpl::SubresourceResponseStarted`
might not be finished yet on UI thread. So, it is caused.

To fix this problem, change the fetcher object to be created and
destroyed on UI thread.

Bug:  792747 
Change-Id: I009d5d0a20481f5feda48a8093131d6e13c6b2ee
Reviewed-on: https://chromium-review.googlesource.com/818586
Commit-Queue: Jinho Bang <jinho.bang@samsung.com>
Reviewed-by: Ganggui Tang <gogerald@chromium.org>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525061}
[modify] https://crrev.com/fd61042af3f8301ee3c3d3d3c2f79a684a9003b8/content/browser/payments/payment_app_database.cc
[modify] https://crrev.com/fd61042af3f8301ee3c3d3d3c2f79a684a9003b8/content/browser/payments/payment_app_database.h
[modify] https://crrev.com/fd61042af3f8301ee3c3d3d3c2f79a684a9003b8/content/browser/payments/payment_app_info_fetcher.cc
[modify] https://crrev.com/fd61042af3f8301ee3c3d3d3c2f79a684a9003b8/content/browser/payments/payment_app_info_fetcher.h

Status: Fixed (was: Started)

Sign in to add a comment