Hasty Briefsbeta

Bilingual

Shuttle

a day ago
  • The Shuttle library is a concurrency verification tool developed by former AWS engineers, designed to make testing concurrent code easier.
  • It addresses the difficulty of reproducing and catching concurrency bugs by using controlled thread scheduling with random exploration.
  • The tool provides drop-in replacements for standard library concurrency primitives and runs tests in a harness that manipulates scheduling.
  • Exhaustive exploration (as in Loom) is not always feasible due to factorial growth in permutations; random exploration handles complex cases and is parallelizable.
  • A worked example demonstrates catching a classic concurrency error (race condition in semaphore) and fixing it with optimistic concurrency and compare-and-swap.
  • Integration involves conditional compilation and re-exports to replace std::sync primitives with shuttle::sync.
  • The library has been used successfully at AWS S3 for critical software and won Best Paper at SOSP '21.