[mythtv] memory leak in MainServer::FillStatusXML

zoiks2004-ivtv at yahoo.com zoiks2004-ivtv at yahoo.com
Sat Jun 18 20:36:48 UTC 2005


George:

FWIW, I get the same thing.  It's a P4 2.4GHz, with 1
GB RAM, running MythTV 0.18.1 with a 2.6.8 kernel.

Here is a session.  Of course, I terminated it before
it killed the server, but I don't doubt it would have:

mythtv at capricorn:~/test> ps aux | head -n1 > test.log;
while :; do ps aux | grep -m 1 mythbackend >>
test.log; sleep 5; done &
[1] 5241
mythtv at capricorn:~/test> while :; do wget --quiet -O
/dev/null http://127.0.0.1:6544/xml; done &
[2] 5259
mythtv at capricorn:~/test> tail -f test.log
USER       PID %CPU %MEM   VSZ  RSS TTY      STAT
START   TIME COMMAND
mythtv    4520  0.0  1.3 56644 13492 ?       Ssl 
12:48   0:00 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.0  1.3 56644 13492 ?       Ssl 
12:48   0:00 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.0  1.3 56644 13492 ?       Ssl 
12:48   0:00 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.1  1.3 57248 14372 ?       Rsl 
12:48   0:01 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.2  1.4 58056 15192 ?       Ssl 
12:48   0:03 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.4  1.5 58912 16036 ?       Rsl 
12:48   0:06 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.6  1.6 59720 16868 ?       Rsl 
12:48   0:08 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.8  1.7 60512 17688 ?       Ssl 
12:48   0:11 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  0.9  1.7 61384 18512 ?       Ssl 
12:48   0:13 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.1  1.8 62184 19348 ?       Ssl 
12:48   0:15 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.3  1.9 63036 20160 ?       Ssl 
12:48   0:18 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.4  2.0 63832 20992 ?       Ssl 
12:48   0:20 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.6  2.1 64700 21840 ?       Ssl 
12:48   0:22 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.8  2.1 65500 22656 ?       Rsl 
12:48   0:25 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  1.9  2.2 66300 23496 ?       Rsl 
12:48   0:27 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.1  2.3 67148 24308 ?       Ssl 
12:48   0:30 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.3  2.4 67960 25120 ?       Ssl 
12:48   0:32 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.4  2.5 68756 25940 ?       Ssl 
12:48   0:35 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.6  2.5 69540 26736 ?       Rsl 
12:48   0:37 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.7  2.6 70388 27560 ?       Ssl 
12:48   0:39 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  2.9  2.7 71172 28376 ?       Rsl 
12:48   0:42 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.1  2.8 71980 29180 ?       Rsl 
12:48   0:44 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.2  2.8 72832 29984 ?       Rsl 
12:48   0:47 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.4  2.9 73648 30808 ?       Ssl 
12:48   0:49 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.5  3.0 74464 31660 ?       Rsl 
12:48   0:52 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.7  3.1 75264 32476 ?       Rsl 
12:48   0:54 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  3.8  3.2 76064 33292 ?       Ssl 
12:48   0:57 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.0  3.2 76880 34096 ?       Ssl 
12:48   0:59 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.1  3.3 77680 34884 ?       Ssl 
12:48   1:01 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.3  3.4 78480 35700 ?       Ssl 
12:48   1:04 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.4  3.5 79336 36520 ?       Rsl 
12:48   1:06 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.6  3.6 80136 37328 ?       Ssl 
12:48   1:09 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.7  3.6 80952 38144 ?       Rsl 
12:48   1:11 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  4.9  3.7 81736 38972 ?       Ssl 
12:48   1:14 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.0  3.8 82520 39756 ?       Rsl 
12:48   1:16 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.2  3.9 83336 40560 ?       Ssl 
12:48   1:19 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.3  3.9 84144 41360 ?       Ssl 
12:48   1:21 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.5  4.0 84888 42132 ?       Rsl 
12:48   1:23 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.6  4.1 85680 42916 ?       Rsl 
12:48   1:26 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.7  4.2 86488 43720 ?       Ssl 
12:48   1:28 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  5.9  4.3 87312 44540 ?       Ssl 
12:48   1:31 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.0  4.3 88096 45320 ?       Rsl 
12:48   1:33 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.1  4.4 88896 46112 ?       Ssl 
12:48   1:36 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.3  4.5 89672 46924 ?       Ssl 
12:48   1:38 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.4  4.6 90480 47744 ?       Rsl 
12:48   1:41 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.6  4.6 91288 48528 ?       Ssl 
12:48   1:43 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.7  4.7 91964 49212 ?       Ssl 
12:48   1:45 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  6.8  4.8 92748 49980 ?       Ssl 
12:48   1:48 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.0  4.9 93548 50784 ?       Ssl 
12:48   1:50 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.1  4.9 94332 51564 ?       Rsl 
12:48   1:53 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.2  5.0 95068 52332 ?       Rsl 
12:48   1:55 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.4  5.1 95868 53112 ?       Ssl 
12:48   1:58 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.5  5.2 96612 53892 ?       Rsl 
12:48   2:00 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.6  5.2 97460 54692 ?       Ssl 
12:48   2:03 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.7  5.3 98136 55392 ?       Rsl 
12:48   2:05 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  7.9  5.4 98872 56120 ?       Rsl 
12:48   2:08 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.0  5.4 99548 56852 ?       Rsl 
12:48   2:10 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.1  5.5 100348 57608 ?      Ssl 
12:48   2:12 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.2  5.6 101092 58392 ?      Ssl 
12:48   2:15 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.4  5.5 98968 57156 ?       Ssl 
12:48   2:17 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.5  5.6 99992 58060 ?       Ssl 
12:48   2:20 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.6  5.6 101016 58932 ?      Rsl 
12:48   2:22 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.7  5.7 102040 59764 ?      Rsl 
12:48   2:25 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  8.9  5.8 103064 60532 ?      Rsl 
12:48   2:27 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.0  5.9 103064 61304 ?      Ssl 
12:48   2:29 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.1  6.0 104088 62152 ?      Ssl 
12:48   2:32 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.2  6.0 105112 62980 ?      Rsl 
12:48   2:34 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.3  6.1 106136 63852 ?      Ssl 
12:48   2:37 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.5  6.2 107160 64740 ?      Ssl 
12:48   2:40 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.6  6.3 108184 65588 ?      Rsl 
12:48   2:43 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.7  6.4 108184 66436 ?      Ssl 
12:48   2:45 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520  9.9  6.5 109208 67304 ?      Rsl 
12:48   2:48 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.0  6.5 110232 68152 ?      Rsl 
12:48   2:51 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.1  6.6 111256 68988 ?      Ssl 
12:48   2:53 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.2  6.7 112280 69832 ?      Rsl 
12:48   2:56 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.3  6.8 113304 70600 ?      Rsl 
12:48   2:58 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.5  6.9 113304 71372 ?      Rsl 
12:48   3:01 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.6  6.9 114328 72216 ?      Rsl 
12:48   3:03 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.7  7.0 115352 73048 ?      Ssl 
12:48   3:06 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.8  7.1 116376 73868 ?      Rsl 
12:48   3:09 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 10.9  7.2 117400 74696 ?      Rsl 
12:48   3:11 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 11.1  7.3 117400 75568 ?      Ssl 
12:48   3:14 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 11.2  7.3 118424 76420 ?      Rsl 
12:48   3:17 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 11.3  7.4 119448 77280 ?      Ssl 
12:48   3:19 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 11.4  7.5 120472 78124 ?      Ssl 
12:48   3:22 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
mythtv    4520 11.6  7.6 121496 79004 ?      Ssl 
12:48   3:25 /usr/local/bin/mythbackend -d -l
/var/log/mythbackend.log
[...]


--- George Nassas <gnassas at mac.com> wrote:

> The past week or so I've been going batty trying to
> track down a memory 
> leak that appears after you request either xml or
> html server status. 
> It's not very hard to observe, on your server
> machine run this:
> 
> 	while :; do wget --quiet -O /dev/null
> http://127.0.0.1:6544/xml; done
> 
> and watch the backend's vsz increase by a meg every
> few seconds. It's 
> about the same if you remove the xml bit.
> 
> I've commented out various parts of FillStatusXML
> and FillProgramInfo 
> hoping to find the line or section at fault but it's
> not so simple. 
> There doesn't appear to be an unmanaged pointer
> anywhere nor am I 
> hitting the server too hard for garbage collection
> to occur. Once the 
> virtual size goes up it never comes down. I'm
> wondering if Qt or the 
> malloc code is going awry in some complicated way.
> Or, maybe there's an 
> obvious problem that I can't see because I've been
> staring at 
> mainserver.cpp for too long.
> 
> That's why I'm tossing this out to the list: do you
> also see the leak? 
> If not, what setup are you running? I've observed
> this on three 
> different systems, two running stock .18 and one
> with cvs from about a 
> week ago. All are debian sarge more or less stable
> with whatever 
> testing and unstable packages are required to get
> myth running.
> 
> In real life I don't hit the server repeatedly like
> that. My 
> application is a status thingie that polls a few
> times a minute so it 
> takes a couple of hours to bring the server down.
> 
> - George
> 
> > _______________________________________________
> mythtv-dev mailing list
> mythtv-dev at mythtv.org
>
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev
> 



More information about the mythtv-dev mailing list