Opened 13 years ago
Closed 13 years ago
#9548 closed Patch - Bug Fix (Fixed)
[PATCH] pulseaudio output memory leaks
Reported by: | Owned by: | JYA | |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | MythTV - General | Version: | 0.24-fixes |
Severity: | medium | Keywords: | pulseaudio |
Cc: | Ticket locked: | yes |
Description
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.
Attachments (2)
Change History (9)
Changed 13 years ago by
Attachment: | pa-mem-leak.diff added |
---|
comment:1 Changed 13 years ago by
I forgot to mention - once the mmap() errors occur, no audio comes from MythTV until the frontend is restarted. This is the same problem reported here: http://mythtv.org/pipermail/mythtv-users/2010-November/302051.html
comment:2 Changed 13 years ago by
Owner: | set to JYA |
---|---|
Status: | new → assigned |
Changed 13 years ago by
Attachment: | pa-mem-leak-fixed.diff added |
---|
Fixes the bug (without the spurious hunk)
comment:3 Changed 13 years ago by
"Me too". Been wondering what caused my Myth to have no sound after a few start/stop cycles. On my system I'd swear the leak was 150-200MB each time though, not 64MB. My 8GB RAM gets used up very fast. Like the reporter, there is no sound until myth is quit and restarted. Same error output seen here, too.
comment:4 Changed 13 years ago by
Ticket locked: | set |
---|
comment:5 Changed 13 years ago by
Summary: | pulseaudio output memory leaks → [PATCH] pulseaudio output memory leaks |
---|
comment:7 Changed 13 years ago by
Resolution: | → Fixed |
---|---|
Status: | assigned → closed |
possible patch for the memory leak