~/talk

The 900-Second Ghost: Debugging Half-Open TCP

Talkat KubeCon + CloudNativeCon India 2026 · 2026-06-18..06-19· [observability]
links:none on file
slides:none on file

Production MQTT fleet (2M+ concurrent, 15M daily users, 3.2M RPM) hits a 15‑minute outage caused by half‑open TCP connections; packet captures with tcpdump/Wireshark show FIN packets dropped by cloud load balancer, TCP retransmits keep the socket alive until tcp_retries2=15 — totaling 900 seconds — and an MQTT keepalive set to 15s never fires because the Paho client’s write path blocks. A patch to the library and coordinated changes with the cloud provider fix FIN delivery without accepting ungraceful RSTs.

AI-written summary · about

  1. 0:00Introduction
  2. 1:05MQTT platform scale
  3. 3:17MQTT for real-time monitoring
  4. 5:0815-minute downtime incident
  5. 6:32Impact of half-open TCP
  6. 7:15Half-open connections explained
  7. 10:07L4 vs L7 keep-alive
  8. 11:51MQTT keep-alive detection
  9. 13:38Incident questions start
  10. 14:40Replicating in staging
  11. 16:24TCP packet capture analysis
  12. 18:34900-second retransmission mystery
  13. 20:24Keep-alive timeout failure
  14. 21:30Failure chain blocking keep-alive
  15. 22:36Fixing MQTT library
  16. 22:57FIN packets dropped by LB
  17. 24:00Graceful vs ungraceful termination
  18. 25:26Cloud provider collaboration
  19. 26:10Learnings from debugging
  20. 27:11Q&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.