New issue
Advanced search Search tips

Issue 642362 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 643822
Owner: ----
Closed: Oct 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Potential races in ManagedValueStoreCache::ExtensionTracker

Project Member Reported by emaxx@chromium.org, Aug 30 2016

Issue description

Looks like there are data races possible in the ManagedValueStoreCache::ExtensionTracker implementation.

Some of its methods don't do anything if ExtensionSystem::ready is not signaled, and others are executed asynchronously as callbacks triggered by ExtensionSystem::ready()->Post. This results in a potential race when ExtensionSystem::ready has just been signaled: while the latter ones may be still working asynchronously, the former ones may be called synchronously, and wrongly assume that the asynchronous stuff is already done.


For example, the OnExtensionUninstalled method may call SchemaRegistry::UnregisterComponent with a component that was not previously registered within SchemaRegistry, because the registration that is triggered by the OnExtensionsReady method may still not finish its work by that time (it's working in a background blocking thread). This results in DCHECK in SchemaRegistry.
There are maybe other cases when the race can be triggered, but we are hitting this exact race while working on our CL.
 
Labels: Stability
Status: Available (was: Untriaged)

Comment 2 by emaxx@chromium.org, Oct 10 2016

Mergedinto: 643822
Status: Duplicate (was: Available)

Sign in to add a comment