~/talk

Detecting and Fixing Unbound Concurrency Problems

Talkat GopherCon UK 2022 · 2022-08-16..08-18· [concurrency, observability]
links:none on file
slides:none on file

Service crashes stem from millions of goroutines spawned by a work queuing routine that is created per request and blocks waiting on a five-worker channel, visible via pprof heap and goroutine profiles showing 10,000 goroutines stuck in Go park. Reproduction uses a benchmark that simulates a slow log sink, and the fix replaces multiple channels with a single buffered work channel with timeout and configurable size, dropping logs on timeout to bound memory and keep predictable usage.

AI-written summary · about

  1. 0:00Start
  2. 2:38Looking at the code
  3. 12:49More memory
  4. 17:02Fix the slow ingestion
  5. 19:07Fix the code
  6. 20:28Understanding the code
  7. 31:59Solution explained
~/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.