~/talk

Advanced .NET debugging techniques from real world investigations

Talkat NDC Oslo 2019 · 2019-06-17..06-21· [observability]
links:none on file
slides:none on file

Criteo runs 150 billion requests per day across ~4,000 servers and investigates two real incidents: a slow steady rise in lock contention traced to 14,000 TimerQueueTimer instances (normal ~2,000) caused by MetaMetric objects that never dispose their timers; fix is to implement IDisposable and an external finalizer as a mitigation. A second case shows ~1,000,000 exceptions/min (≈20k/s) from repeated ThreadAbortException in an infinite retry loop exposed only on 64‑bit JIT; remedies include catching/rethrowing ThreadAbortException and reporting the JIT bug. Tools: metrics, JetBrains dotTrace, WinDbg+SOS, and automation with ClrMD.

AI-written summary · about

  1. 0:00Intro
  2. 5:20First example
  3. 7:10Checking the source code
  4. 17:27Checking the instance method
  5. 22:35Checking the meta metric
  6. 22:55Understanding the meta metric
  7. 24:17Verifying the meta metric
  8. 31:05The big picture
  9. 33:50Whats the difference
  10. 34:22Conclusion
  11. 36:35The mindset
  12. 37:28Third chance exceptions
  13. 38:53Lock the catch block
  14. 44:10Curse loop
  15. 47:07Verify
~/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.