StoreGate: Fix potential deadlock between SGImplSvc and DataProxy
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().
parent
6602a7ca
Loading
Please register or sign in to comment