Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[core] Deadlock involving three locks #5592

Open
Tracked by #5572
jimblandy opened this issue Apr 23, 2024 · 0 comments
Open
Tracked by #5572

[core] Deadlock involving three locks #5592

jimblandy opened this issue Apr 23, 2024 · 0 comments

Comments

@jimblandy
Copy link
Member

The analysis in #5586 together with the lock ranks added in #5539 suggest that a deadlock could occur in the following circumstances:

  • One thread holds a lock on CommandBuffer::data taken in Global::command_encoder_drop while locking Device::life_tracker at the end of Device::untrack.
  • A second thread holds a lock on Device::life_tracker taken in Device::maintain while locking Device::temp_suspected in that same function.
  • A third thread holds a lock on Device::temp_suspected taken in Global::queue_submit while locking CommandBuffer::data in any of several places:
    • CommandBuffer::drop
    • CommandBuffer::is_finished
    • CommandBuffer::extract_baked_commands
    • later in Global::queue_submit itself
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant