3.3.2 memory leak on OpenSuSE 12.2

Added by Jimmie Mayfield almost 2 years ago

Hi. A couple weeks ago, I noticed that the kernel out-of-memory killer was invoked against a long-running Audacious process on my 64-bit OpenSuSE 12.2 system (Audacious v3.2.4 installed from the 'Packman' 3rd-party multimedia repository). It had been running for a few weeks playing the same MP3 in a loop. So I wrote a simple script to poll the RSS value once per minute and noted that RSS grew steadily even when idle.

I then grabbed the source code for v3.3.2 from here, including the plugins, and built from scratch and re-ran the test. The memory leak appears to exist in this version also.

To test, I started Audacious but let it idle. No music, no scrolling, no mouse clicks, etc. RSS value was polled once per minute.

22152
22416
22680
22944
23208
23472
23736
24000
26368
26368
26368
26628
26892

So, with a couple exceptions, it appears that even when idle, Audacious' memory footprint is growing at a pretty steady rate of 264KB/minute.

Any ideas?


Replies (4)

RE: 3.3.2 memory leak on OpenSuSE 12.2 - Added by John Lindgren almost 2 years ago

Run:

valgrind --leak-check=full --track-origins=yes audacious 2> valgrind.log
and attach the valgrind.log file; it may help to find the leak.

RE: 3.3.2 memory leak on OpenSuSE 12.2 - Added by Jimmie Mayfield over 1 year ago

Hi. Sorry for the late response. Here is the valgrind log:

audacious.log.bz2 - audacious.log.bz2 (30.3 kB)

RE: 3.3.2 memory leak on OpenSuSE 12.2 - Added by Jimmie Mayfield over 1 year ago

After noticing that the majority of the leakage was associated with calls to the Cairo font library, I installed a backlevel Cairo package that does not perform subpixel rendering and re-ran the test. As you can see, there's still a slight memory leak but it's 100 times smaller with the subpixel stuff removed.

I suppose there's a slight possibility that Audacious is not invoking the Pango/Cairo/fontconfig API correctly and that's causing the leak but it's probably much more likely that the leak is in Cairo's subpixel rendering code.

RE: 3.3.2 memory leak on OpenSuSE 12.2 - Added by John Lindgren over 1 year ago

That looks normal now. The fontconfig related leaks are not actually leaks; fontconfig has an odd way of storing pointer offsets rather than actual pointers, which trips up Valgrind.

(1-4/4)