You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Kernel: 6.17.0-22-generic Ready for PR #22~24.04.1-Ubuntu PREEMPT_DYNAMIC
Hardware: MSI PRO X870-P WIFI (MS-7E47), BIOS 1.A77
RAM: 64 GB / Swap: 8 GB
What happened
At 2026-05-04 22:26:40, a CLI tool (filter_candidates) running inside one Wave
terminal tab exhausted all physical RAM and swap (~56 GB anon RSS). The Linux
OOM killer targeted and killed it (PID 198518).
Because all Wave terminals run under a single shared systemd snap scope
(snap.waveterm.waveterm-*.scope), the OOM kill caused the entire scope to be
marked as failed — killing every open Wave tab and the Wave window itself. Wave
then restarted from scratch ~2.5 minutes later.
Expected behavior: Only the terminal tab running the offending process is
affected. Other tabs survive.
Actual behavior: All tabs died. Wave exited completely and restarted.
kernel: oom-kill: task=filter_candidat, pid=198518,
task_memcg=.../snap.waveterm.waveterm-627a76e8-562a-4b34-9485-7c57743ce98f.sc
ope
kernel: Out of memory: Killed process 198518 (filter_candidat)
total-vm:64594572kB, anon-rss:56183304kB, file-rss:0kB, UID:1000
kernel: oom_reaper: reaped process 198518 (filter_candidat), now anon-rss:120kB
Scope failure (systemd):
snap.waveterm.waveterm-627a76e8.scope: A process of this unit has been killed
by the OOM killer.
snap.waveterm.waveterm-627a76e8.scope: Stopping timed out. Killing.
snap.waveterm.waveterm-627a76e8.scope: Killing process 197833 (waveterm) with
signal SIGKILL.
snap.waveterm.waveterm-627a76e8.scope: Failed with result 'oom-kill'.
snap.waveterm.waveterm-627a76e8.scope: Consumed 15min 35s CPU time, 56.4G
memory peak, 6.7G memory swap peak.
Root cause
The task_memcg in the OOM kill record places filter_candidat inside Wave's snap
scope. When systemd sees a process in the scope killed by OOM, it marks the
whole scope failed and SIGKILLs the remaining processes — including the Wave
frontend and all shell tabs.
Possible mitigations (for Wave devs to consider)
Run each tab's child shell/process in its own sub-cgroup or scope, isolating
OOM kills to a single tab
Catch the scope-level OOM signal and attempt session save before exiting
Lower oom_score_adj for the Wave frontend processes so the OOM killer
preferentially kills child processes before Wave itself
Expected Behavior
When a process running in one terminal tab exhausts memory
and gets OOM-killed, only that tab is affected. All other tabs and the Wave
session remain alive.
Steps To Reproduce
Open Wave with multiple terminal tabs active
In one tab, run a process that allocates memory until it exhausts all RAM +
swap
Observe that when the OOM killer fires, all tabs die and Wave restarts from
scratch
Current Behavior
If you have an OOM in wave you will get this:
There is no good answer here, any button will cause the entire terminal (and all other terminals to die with it).
Environment
What happened
At 2026-05-04 22:26:40, a CLI tool (filter_candidates) running inside one Wave
terminal tab exhausted all physical RAM and swap (~56 GB anon RSS). The Linux
OOM killer targeted and killed it (PID 198518).
Because all Wave terminals run under a single shared systemd snap scope
(snap.waveterm.waveterm-*.scope), the OOM kill caused the entire scope to be
marked as failed — killing every open Wave tab and the Wave window itself. Wave
then restarted from scratch ~2.5 minutes later.
Expected behavior: Only the terminal tab running the offending process is
affected. Other tabs survive.
Actual behavior: All tabs died. Wave exited completely and restarted.
Kernel evidence
kernel: wavesrv.x64 invoked oom-killer:
gfp_mask=0x140cca(GFP_HIGHUSER_MOVABLE|__GFP_COMP), order=0, oom_score_adj=100
kernel: CPU: 14 UID: 1000 PID: 197928 Comm: wavesrv.x64 Tainted: P OE
6.17.0-22-generic #22~24.04.1-Ubuntu
kernel: Hardware name: Micro-Star International Co., Ltd. MS-7E47/PRO X870-P
WIFI, BIOS 1.A77
kernel: Call Trace:
kernel: oom_kill_process+0x118/0x290
kernel: out_of_memory+0x101/0x340
kernel: __alloc_pages_may_oom+0x109/0x1d0
kernel: filemap_fault+0x10c/0xd50 ← wavesrv triggered OOM via page fault
(file-backed mmap read)
kernel: Mem-Info:
kernel: active_anon:7219452kB inactive_anon:52898868kB
kernel: Free swap = 0kB ← swap fully exhausted
kernel: Total swap = 8388604kB
kernel: Wave processes at time of OOM:
kernel: [ 197833] waveterm anon-rss:3363 pp oom_score_adj=100
kernel: [ 197895] waveterm anon-rss:384 pp oom_score_adj=100
kernel: [ 197896] waveterm anon-rss:768 pp oom_score_adj=100
kernel: [ 197913] wavesrv.x64 anon-rss:5044 pp oom_score_adj=100 ←
invoked OOM killer
kernel: [ 197943] waveterm anon-rss:14637 pp oom_score_adj=200
kernel: [ 197948] waveterm anon-rss:411 pp oom_score_adj=100
kernel: [ 198012] waveterm anon-rss:47874 pp oom_score_adj=300
kernel: [ 198060] waveterm anon-rss:1057 pp oom_score_adj=300
kernel: [ 198517] hashcat.bin anon-rss:557504 pp oom_score_adj=100
kernel: [ 198518] filter_candidat anon-rss:14045826 pp oom_score_adj=100 ←
KILLED
kernel: [ 198568] claude anon-rss:42532 pp oom_score_adj=100
kernel: oom-kill: task=filter_candidat, pid=198518,
task_memcg=.../snap.waveterm.waveterm-627a76e8-562a-4b34-9485-7c57743ce98f.sc
ope
kernel: Out of memory: Killed process 198518 (filter_candidat)
total-vm:64594572kB, anon-rss:56183304kB, file-rss:0kB, UID:1000
kernel: oom_reaper: reaped process 198518 (filter_candidat), now anon-rss:120kB
Scope failure (systemd):
snap.waveterm.waveterm-627a76e8.scope: A process of this unit has been killed
by the OOM killer.
snap.waveterm.waveterm-627a76e8.scope: Stopping timed out. Killing.
snap.waveterm.waveterm-627a76e8.scope: Killing process 197833 (waveterm) with
signal SIGKILL.
snap.waveterm.waveterm-627a76e8.scope: Failed with result 'oom-kill'.
snap.waveterm.waveterm-627a76e8.scope: Consumed 15min 35s CPU time, 56.4G
memory peak, 6.7G memory swap peak.
Root cause
The task_memcg in the OOM kill record places filter_candidat inside Wave's snap
scope. When systemd sees a process in the scope killed by OOM, it marks the
whole scope failed and SIGKILLs the remaining processes — including the Wave
frontend and all shell tabs.
Possible mitigations (for Wave devs to consider)
OOM kills to a single tab
preferentially kills child processes before Wave itself
Expected Behavior
When a process running in one terminal tab exhausts memory
and gets OOM-killed, only that tab is affected. All other tabs and the Wave
session remain alive.
Steps To Reproduce
swap
scratch
Wave Version
0.14.5 (snap rev 204, latest/stable)
Platform
Linux
OS Version/Distribution
Ubu 24.04
Architecture
x64
Anything else?
No response