~/talk

Lincheck: Testing concurrency on the JVM

Talkat Devoxx France 2023 · 2023-04-12..04-14· [concurrency, java]
links:none on file
slides:none on file

Lincheck verifies concurrent JVM data structures by generating scenarios and running stress or controlled bytecode hooks model checking that switch threads at each shared-memory access. It finds real bugs: a non-atomic bounded queue lets three successful offers against capacity two, a counter loses an increment, and a bug in java.util.concurrent.ConcurrentLinkedDeque was reproduced. Verification checks linearizability and progress (lock-freedom), works with Kotlin and Java, and emits deterministic traces for debugging.

AI-written summary · about

  1. 0:00Introduction and motivation
  2. 1:05AI-generated concurrent queue
  3. 3:54Limitations of stress testing
  4. 4:59Ideal concurrent test design
  5. 6:04First failure with LeanCheck
  6. 7:10Linearizability explained
  7. 11:07Analyzing the failure trace
  8. 13:16How LeanCheck works internally
  9. 16:48Model checking basics
  10. 21:04Progress guarantees testing
  11. 22:32Testing Java standard library
  12. 25:23LeanCheck in production
  13. 26:29Summary and call to action
  14. 27:10Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.