awslabs / awslabs/shuttle

Provide more useful feedback for deadlocks

Open
#67 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
1.1k
Forks
59
Avg merge
4d 2h
Merged PRs (30d)
15

Description

From @bkragl in #66:

> One thing I was thinking about is whether it makes sense to have a feature in Shuttle that does precise on-the-fly deadlock detection. Right now there might be a deadlock among some tasks early on in an execution, but we need to wait until the end of the execution to detect it. It might be helpful for debugging to stop the execution right when the deadlock happens.
>
> The nice thing about the current check is that it is completely generic. What I'm proposing would require knowledge about the synchronization primitives (e.g., a combined resource allocation graph for both Mutex and RwLock).

An intermediate step would be to print stack traces for deadlocked threads, so at least you know where to start the debugging process (e.g., which locks are involved).

Contributor guide

Open the contributing guide

Research direction

Start by examining Shuttle's existing end-of-execution deadlock detection and how it identifies deadlocked tasks and synchronization primitives. The issue is done when a deadlock reports stack traces for the affected threads, including enough context to identify where the relevant locks are involved.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
distributed-systems, testing-qa
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.