Skip to content
Snippets Groups Projects

StoreGate: Fix potential deadlock between SGImplSvc and DataProxy

Merged Scott Snyder requested to merge ssnyder/athena:deadlock.StoreGate-20200708 into master

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().

Merge request reports

Pipeline #1782242 passed

Pipeline passed for 3ab73357 on ssnyder:deadlock.StoreGate-20200708

Approval is optional

Merged by Walter LamplWalter Lampl 4 years ago (Jul 10, 2020 10:56am UTC)

Merge details

  • Changes merged into master with 2582b90e.
  • Deleted the source branch.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading