Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Issue 2233023003: content: Don't keep requesting the GpuChannelHost during shutdown. (Closed)

Created:
4 years, 4 months ago by khushalsagar
Modified:
4 years, 4 months ago
Reviewers:
piman, Khushal
CC:
chromium-reviews, jam, darin-cc_chromium.org, no sievers
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

content: Don't keep requesting the GpuChannelHost during shutdown. During shutdown, the Gpu Channel initialization returns a nullptr. Early out in that case rather than keep queueing more requests. BUG=636294 Committed: https://crrev.com/3e1eed893f3fe23256d5c418eecfc72ddd95fb8b Cr-Commit-Position: refs/heads/master@{#411254}

Patch Set 1 #

Patch Set 2 : timer stop #

Unified diffs Side-by-side diffs Delta from patch set Stats (+7 lines, -0 lines) Patch
M content/browser/gpu/browser_gpu_channel_host_factory.h View 1 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/renderer_host/context_provider_factory_impl_android.cc View 1 1 chunk +5 lines, -0 lines 0 comments Download

Messages

Total messages: 11 (4 generated)
Khushal
4 years, 4 months ago (2016-08-11 01:26:34 UTC) #2
Khushal
On 2016/08/11 01:26:34, Khushal wrote: Seems to me that the better thing would be to ...
4 years, 4 months ago (2016-08-11 01:31:05 UTC) #3
piman
lgtm
4 years, 4 months ago (2016-08-11 01:37:56 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2233023003/20001
4 years, 4 months ago (2016-08-11 01:44:40 UTC) #6
commit-bot: I haz the power
Committed patchset #2 (id:20001)
4 years, 4 months ago (2016-08-11 03:38:47 UTC) #7
commit-bot: I haz the power
Patchset 2 (id:??) landed as https://crrev.com/3e1eed893f3fe23256d5c418eecfc72ddd95fb8b Cr-Commit-Position: refs/heads/master@{#411254}
4 years, 4 months ago (2016-08-11 03:40:44 UTC) #9
no sievers
4 years, 4 months ago (2016-08-11 18:15:22 UTC) #10
Message was sent while issue was closed.
Summarizing a few thoughts from offline discussion:

1) It would be nicer to change this:

void BrowserGpuChannelHostFactory::Terminate() {
  DCHECK(instance_);
+  instance_ = NULL;
  delete instance_;
-  instance_ = NULL;
}

So that we can avoid reentrancy from the callback during factory destruction and
queuing more requests (and infinite recursion), while also making sure the
caller handles BGCHF::instance() == null everywhere.

2) Somewhere we have to trigger the retry. But that makes me wonder if we had
been handling this poorly.
In particular if we have become invisible and don't really need to keep trying
until we become visible again.
And it could explain some weird gpu channel establishment timeout scenarios (for
which we have crash reports).

Maybe the easiest thing is to deliver the failure (null host in general - which
could be because of factory teardown but more importantly because of some real
GPU process (re)launch failure) to the caller (CompositorImpl) always and then
let it decide there if it's a good time to retry (based on visibility and
surface availability).

Powered by Google App Engine
This is Rietveld 408576698