~/talk

End-to-end Deadlock Debugging Tools at Facebook

Talkat CppCon 2017 · 2017-09-24..09-29· [observability, concurrency]
slides:none on file

Facebook builds four concrete tools: folly::Synchronized to force smaller critical sections and encode lock ownership in types, ThreadSanitizer run on CI and on a subset of production via shadow traffic to catch races and lock inversions, an eBPF deadlock detector that samples running binaries every ~15 minutes and reports waits‑for cycles across pthread mutexes, and a gdb extension that reads mutex internals (works on cores) to show thread-to-thread deadlocks; a real six‑mutex cycle is found in production, TSAN costs CPU/memory.

AI-written summary · about

  1. 0:00Intro
  2. 2:37Debugging Deadlocks is Difficult
  3. 9:05Approach #2: ThreadSanitizer Testing
  4. 14:01eBPF Deadlock Detector: Example
  5. 15:55eBPF Deadlock Detector: How it Works
  6. 19:01Approach gdb Deadlock Extension
  7. 19:32gdb Deadlock Extensions Example
  8. 20:12gdb Deadlock Extension: How it Works
  9. 21:54Deadlock Debugging Tools, Pros and cons
~/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.