Ticket #9548 (closed Patch - Bug Fix: Fixed)
Opened 2 years ago
Last modified 2 years ago
[PATCH] pulseaudio output memory leaks
|Reported by:||b-mythtv@…||Owned by:||jyavenard|
|Component:||MythTV - General||Version:||0.24-fixes|
The pulseaudio output of myth doesn't seem to clean up properly. Each stream consumes ~64MB of virtual address space due to shm segments with pulseaudio. After creating several streams, a 32-bit process is quickly exhausted of virtual address space, and a strings of these errors come from mythfrontend as further pa_context_new() calls fail.
mmap() failed: Cannot allocate memory mmap() failed: Cannot allocate memory mmap() failed: Cannot allocate memory mmap() failed: Cannot allocate memory ... 2011-02-04 09:38:11.185 PulseAudio? Error: ContextConnect?, failed to acquire new context
You can also observe the issue by looking at mythfrontend.real's VSS size after opening and closing a stream. With this bug, it increases by 64MB each time a new stream is created (either live tv, or viewing a video).
It seems that the pa_contexts are not being freed in audiooutputpulse.cpp. The attached patch unref's them at various points, and fixes the memory leaks for me (VSS no longer creeps up, and the mmap() problems are gone). I can't claim to understand the code well enough to know if this is correct though.
comment:1 Changed 2 years ago by b-mythtv@…
comment:2 Changed 2 years ago by beirdo
- Owner set to jyavenard
- Status changed from new to assigned
comment:3 Changed 2 years ago by mythtv@…
comment:4 Changed 2 years ago by wagnerrp
- Ticket locked set
comment:5 Changed 2 years ago by beirdo
- Summary changed from pulseaudio output memory leaks to [PATCH] pulseaudio output memory leaks
comment:7 Changed 2 years ago by jyavenard
- Status changed from assigned to closed
- Resolution set to Fixed