Checking correctness of asynchronous code with Shuttle
summary
Shuttle is an open source Rust scheduler that controls task interleavings to find concurrency bugs and deterministically replay failures for debugging it runs real production code with no source changes required and supports both thread concurrency and a large subset of Tokio while noting gaps like generic time and full network models it powers large scale ref testing at AWS, catching deadlocks, future locks and cancellation-safety issues and the team reports running on the order of 100 million schedules before release for high confidence
AI-written summary · about
chapters (10)
- 0:00Shuttle introduction
- 1:37How Shuttle works
- 4:28Live demo: race condition
- 6:53Why Shuttle at Amazon S3
- 8:59Shuttle status and plans
- 10:02Ref testing with models
- 13:08Shuttle in production
- 14:11Future lock detection
- 16:15Cancellation safety in Rust
- 20:47Summary
related talks
40mProperty-testing async code in Rust to build reliable distributed systems
29mAsychronous programming in Rust
42m"Cancelling Async Rust"
26mReasoning with Async Rust
18mA better way of doing Async Rust
45mHow we test concurrent algorithms in Kotlin Coroutines
15mConveros: Practical Model Checking for Verifying Rust OS Kernel Concurrency
30mControlled Concurrency Testing for Scala
