~/talk

Debugging data races

Talkat Hydra 2020 · 2020-07-06..07-09· [concurrency, distributed-systems]
links:none on file
slides:none on file

Covers concrete root causes (load/store reordering, missing memory barriers, double-check and double-read races) and fixes (volatile/atomics, ordering on both sides). Shows practical tools and tradeoffs: findbugs for pattern matches, heavy tools that incur 10x slowdown, and model checking for small critical algorithms. Describes a working ring-buffer per-thread logging + nanotime post-sort used to reproduce races (used on H2O clustering) and a repeat-until statistical testing strategy to measure and drive down rare failure rates.

AI-written summary · about

  1. 0:00Intro
  2. 0:52A Short Debugging Tale
  3. 1:58What IS a Data Race?
  4. 2:44Timeline of a Data Race
  5. 4:43Reordering Memory Ops
  6. 8:09Common Data Races
  7. 10:06Double Checked Locking
  8. 11:18More On Double-Read
  9. 13:01Getting Clever w/HashMap
  10. 16:13Debugging Techniques
  11. 17:33Visual Inspection
  12. 22:15The Cycle
  13. 24:32Cheaper "Printing"
  14. 26:22Printing Cheap "Printing"
  15. 27:25Tools
  16. 28:44Defensive Locking
  17. 30:20Other Techniques
  18. 31:48Testing Concurrent Code
  19. 36:17Code Reviews
  20. 37:22Static Analysis
  21. 38:08Unit Tests
  22. 39:45Unit Test Framework Issues
  23. 40:43White Box Testing
  24. 42:30Load Testing
  25. 45:57Statistical Testing
  26. 48:25Distributed App Testing
  27. 50:19Writing Data Races
  28. 52:55The Pitfall
~/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.