Forked from
atlas / athena
Source project has a limited visibility.
-
scott snyder authored
The SGImplSvc::proxy methods take out a lock on the store, fetch the proxy, then call isValid() on the proxy. DataProxy::isValid() will acquire a lock on the proxy and than can call back to the store via TransientAddress::contextFromStore(). Thus, we can get a deadlock if SGImplSvc::proxy() is called in one thread and DataProxy::isValid() in another. Resolve by releasing the SGImplSvc lock in proxy() before calling DataProxy::isValid().
scott snyder authoredThe SGImplSvc::proxy methods take out a lock on the store, fetch the proxy, then call isValid() on the proxy. DataProxy::isValid() will acquire a lock on the proxy and than can call back to the store via TransientAddress::contextFromStore(). Thus, we can get a deadlock if SGImplSvc::proxy() is called in one thread and DataProxy::isValid() in another. Resolve by releasing the SGImplSvc lock in proxy() before calling DataProxy::isValid().
Code owners
Assign users and groups as approvers for specific file changes. Learn more.