Log signatures
V8 JavaScript heap OOM (Node)
Section titled “V8 JavaScript heap OOM (Node)”FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memoryor
<--- Last few GCs ---><--- JS stacktrace --->FATAL ERROR: Ineffective mark-compacts near heap limitExit code: often 134 (SIGABRT on Unix)
Mitigation (temporary): NODE_OPTIONS=--max-old-space-size=4096 — buys time, does not fix leak.
Container OOMKilled (Kubernetes / Docker)
Section titled “Container OOMKilled (Kubernetes / Docker)”State: TerminatedReason: OOMKilledExit Code: 137Kernel killed process — may not include JS stack trace.
Check kubectl describe pod → Last State, memory limits vs rss metrics.
Browser tab crash
Section titled “Browser tab crash”Chrome: “Aw, Snap!” / error code RESULT_CODE_KILLED — often after long leak session.
Less explicit than Node — use Performance monitor before crash.
GC pressure warnings (smell, not proof)
Section titled “GC pressure warnings (smell, not proof)”(node) WARNING: Excessive number of pending callbacksMaxListenersExceededWarningInvestigate — often correlates with listener/timer leaks.
flowchart TD logs[Log line] jsOOM[V8 heap OOM exit 134] kubeOOM[OOMKilled exit 137] logs --> jsOOM logs --> kubeOOM jsOOM --> fix[Fix retention in code] kubeOOM --> fix