New issue
Advanced search Search tips

Issue 757897 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

ScopedBlockingCall can result in too many workers.

Project Member Reported by jeffreyhe@google.com, Aug 22 2017

Issue description

Instantiating ScopedBlockingCalls on a SchedulerWorkerPoolImpl thread can create too many workers.

We may create extra workers in this case: |workers.size()| was equal to
the old |worker_capacity_|, we had multiple ScopedBlockingCalls in
parallel and we had work on the PQ.

Suppose there was exactly one Sequence on the PQ. It's possbile one
ScopedBlockingCall creates a worker, but before that worker picks the
work off the PQ, another ScopedBlockingCall occurs, sees there's work on
the PQ, and creates its own worker. Here, we ended up creating two
workers to deal with one task.

Instead, only one worker should've been created.
 
Summary: ScopedBlockingCall can result in too many workers. (was: ScopedBlockingCall can result into too many workers.)

Comment 2 Deleted

Comment 3 Deleted

Comment 4 Deleted

Comment 5 Deleted

Comment 6 Deleted

Comment 7 by gab@chromium.org, May 3 2018

Status: WontFix (was: Untriaged)
I don't think this is worth fixing after all.

This unlikely scenario merely results in one too many workers. That can only happen once while that worker is on the idle stack and it will be cleaned up if we don't remain busy enough to use it.

Sign in to add a comment