~/talk

How We Found a 2 GB/Day Leak in 5 Minutes – dotMemory Meets Akka.NET

Talkat JetBrains .NET Days Online 2025 · 2025-10-08..10-09· [dotnet]
slides:none on file

A real production leak reproduces locally and gets diagnosed with dotMemory and Rider in minutes: a throttler using ask creates temporary future actor ref instances that never emit deathwatch notifications, so a watched-entry dictionary retains task and TaskCompletionSource objects and accumulates roughly 2 GB/day in affected deployments. A small code fix to send Terminated for future refs ships in the SQL plugin 1.3.8 and stops the leak.

AI-written summary · about

  1. 0:00Introduction
  2. 0:28Akka.NET and actor model
  3. 1:11Persistence and throttling
  4. 3:18Memory leak in SQL
  5. 5:49User evidence and graphs
  6. 7:35Short-lived objects as signals
  7. 9:19Reproducing in test
  8. 11:27Setting up dotMemory
  9. 13:35Observing memory growth
  10. 15:02Analyzing snapshots
  11. 17:05Death watch retention issue
  12. 19:12Decade-old bug found
  13. 20:16Fix for death watch
  14. 23:52dotMemory uncovered bug
  15. 26:24Fixing Akka.Persistence.Sql leak
  16. 27:27Memory leak troubleshooting
  17. 31:21Profiling in production
  18. 34:32Actor lifecycle management
  19. 36:18Benchmarking memory issues
  20. 38:05Proactive vs reactive profiling
  21. 41:19OpenTelemetry diagnostics
  22. 43:47AI tools for leaks
  23. 47:20Q&A
~/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.