Skip to content

SGTools: Fix deadlock.

Scott Snyder requested to merge ssnyder/athena:deadlock.SGTools-20210616 into master

Fix a potential deadlock (ATEAM-755).

We can't be holding DataProxy::m_mutex when calling contextFromStore, or we might deadlock.

Refactor a bit. Move contextFromStore from TransientAddress to DataProxy. Change TransientAddress::isValid to take an optional EventContext rather than a store; if it doesn't get the context, it doesn't try to do an update. Change DataProxy::isValid to get the context outside of the lock, if needed.

In passing, make DataProxy::m_store atomic. Then we don't need locking around accesses to it.

Merge request reports