Finding Concurrency Errors using Concuerror
summary
Examples of rare Erlang concurrency bugs (data races, crashes, deadlocks) that are hard to reproduce, and an introduction to Concuerror — an open-source stateless model-checking tool for Erlang. It describes how Concuerror integrates with existing EUnit test suites, automatically explores process interleavings to find concurrency errors triggered by a test, and produces deterministic execution traces that can be replayed; live demos may be shown if time permits.
AI-written summary · about
chapters (10)
- 0:00Start
- 3:39Motivation
- 7:06Comparison of approaches
- 9:36Erlang program and its unit test
- 17:27Concuerror in a nutshell
- 23:08Scheduling non-determinism
- 23:23Sources of non-determinism
- 25:49Concuerror's anatomy
- 28:47Another example
- 38:25Evaluation & Experience
related talks
49mTesting and Verifying Chain Repair Protocols using Concuerror
32mEventRacer: Finding Concurrency Errors in Event-Driven Applications
51mA CutEr Tool
24mStatic analysis for concurrent C++ in Visual Studio
45mHow we test concurrent algorithms in Kotlin Coroutines
15mFuzzing Channel-Based Concurrency Runtimes using Types and Effects
47mTesting the Hard Stuff and Staying Sane
36mTesting Stateful and Concurrent Systems Using test.check
