I'll have a debdiff tomorrow for raring. ** Description changed:
- Memory usage : 10.9% and constantly increasing (that's over 400 MB on my - system with 4 GB) + [Impact] + Large memory leak in Rhythmbox that manifests itself primarily when changing tracks. The leak for changing through 50 tracks is around 17MB. More tracks = more leaks. This bug hits memory constrained platforms especially hard, but all users should be able to listen to music for an afternoon without running out of memory. + + [Test Case] + I loaded 50 random MP3 tracks from my collection onto a clean system. Some had album art, some did not. Lengths varied from 1 min to 20 mins, most were 3-4 mins long. I started watching rhythmbox with smem, updating every 10 seconds. I then started ryhthmbox and began playing audio. I did two test cases then: + + 1) I let each track play for 1-2 seconds and then skipped to the next + track. The original precise version 2.96-0ubuntu4.2 leaks heavily as the + tracks cycle: + + foo@localhost:~$ while true; do smem -H -P ^rhythmbox; sleep 10; done + 779 mfisch rhythmbox 0 25568 27387 37380 + 779 mfisch rhythmbox 0 32632 34726 45428 + 779 mfisch rhythmbox 0 33564 35664 46372 + 779 mfisch rhythmbox 0 35132 37194 47864 + 779 mfisch rhythmbox 0 36664 38726 49396 + 779 mfisch rhythmbox 0 38180 40272 50972 + 779 mfisch rhythmbox 0 40020 42108 52804 + 779 mfisch rhythmbox 0 41204 43304 54012 + 779 mfisch rhythmbox 0 41220 43300 53988 + 779 mfisch rhythmbox 0 41244 43343 54052 + 779 mfisch rhythmbox 0 42340 44444 55160 + 779 mfisch rhythmbox 0 50288 52391 63120 + + 2) Another way was just to load the tracks and let them play. I watched + this one for over 90 minutes. It still leaks, just more slowly, + especially when it gets into some of the longer tracks. + + mfisch@localhost:~$ while true; do smem -P ^rhythmbox; sleep 120; done + 765 mfisch rhythmbox 0 32136 35148 46948 + 765 mfisch rhythmbox 0 33800 35997 46956 + 765 mfisch rhythmbox 0 33800 35999 46960 + 765 mfisch rhythmbox 0 34248 36456 47464 + 765 mfisch rhythmbox 0 34240 36450 47460 + 765 mfisch rhythmbox 0 34244 36452 47460 + 765 mfisch rhythmbox 0 34248 36456 47464 + 765 mfisch rhythmbox 0 34308 36520 47532 + 765 mfisch rhythmbox 0 34308 36520 47532 + 765 mfisch rhythmbox 0 34312 36524 47536 + 765 mfisch rhythmbox 0 34312 36524 47536 + 765 mfisch rhythmbox 0 34904 37118 48132 + 765 mfisch rhythmbox 0 34904 37118 48132 + 765 mfisch rhythmbox 0 35032 37244 48256 + 765 mfisch rhythmbox 0 35032 37244 48256 + 765 mfisch rhythmbox 0 35408 37620 48632 + 765 mfisch rhythmbox 0 35408 37620 48632 + 765 mfisch rhythmbox 0 35800 38018 49036 + 765 mfisch rhythmbox 0 35800 38018 49036 + 765 mfisch rhythmbox 0 36172 38388 49404 + 765 mfisch rhythmbox 0 36172 38388 49404 + 765 mfisch rhythmbox 0 36412 38630 49648 + 765 mfisch rhythmbox 0 36412 38630 49648 + 765 mfisch rhythmbox 0 36720 38936 49952 + 765 mfisch rhythmbox 0 36720 38936 49952 + 765 mfisch rhythmbox 0 37020 39238 50256 + 765 mfisch rhythmbox 0 37020 39238 50256 + 765 mfisch rhythmbox 0 37384 39600 50616 + 765 mfisch rhythmbox 0 37384 39600 50616 + 765 mfisch rhythmbox 0 37688 39904 50920 + 765 mfisch rhythmbox 0 37688 39904 50920 + 765 mfisch rhythmbox 0 37988 40204 51220 + 765 mfisch rhythmbox 0 37988 40204 51220 + 765 mfisch rhythmbox 0 38296 40512 51528 + 765 mfisch rhythmbox 0 38296 40512 51528 + 765 mfisch rhythmbox 0 38300 40516 51532 + 765 mfisch rhythmbox 0 38300 40516 51532 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 38688 40906 51924 + 765 mfisch rhythmbox 0 39096 41312 52328 + + + [Regression Potential] + The potential here is that Rhythmbox will not work correctly and may crash. Freeing memory that is actually needed later will result in a segfault. If this happened users would experience crashes when playing music. However, I feel this risk is mitigated via testing and the fact that this code has been used upstream for over a year now. I did check the gir library because I was concerned that a breakage may affect other pieces, but it appears that only rhythmbox itself and plugins uses it. + + [Explanation of Fix] + I cherry picked commits from June of 2012 from Rhythmbox's git tree to build the patch. These commits are already in use in Q and R. The commits I pulled are from the 2 upstream gnome bugs: + https://bugzilla.gnome.org/show_bug.cgi?id=677738 + https://bugzilla.gnome.org/show_bug.cgi?id=678208 + + After examining these commits, I found that 7ea940f doesn't apply, the file it patches doesn't exist in this version. Also commit 5b281f5 was + superceded by 7cdf4cd. This leaves the following commits in the patch: 0c5a47c 7cdf4cd fc1e8ca 3dec1ff ad8ab01 96aa2cd 5b281f5 195c2a7 8999cca + + I then built a copy of rhythmbox and installed it. Here are the results + from running Test 1 from above with the patch applied, as you can see + the mem leak is corrected: + + ufa@localhost:~$ while true; do smem -H -P ^rhythmbox; sleep 10; done + 806 ufa rhythmbox 0 25188 27072 36836 + 806 ufa rhythmbox 0 33168 35348 45840 + 806 ufa rhythmbox 0 33460 35634 46120 + 806 ufa rhythmbox 0 33836 36022 46520 + 806 ufa rhythmbox 0 33940 36094 46560 + 806 ufa rhythmbox 0 34156 36306 46768 + 806 ufa rhythmbox 0 34440 36608 47088 + 806 ufa rhythmbox 0 34140 36324 46820 + 806 ufa rhythmbox 0 33844 35992 46452 + 806 ufa rhythmbox 0 33896 36065 46548 + 806 ufa rhythmbox 0 36000 38189 48696 + 806 ufa rhythmbox 0 34724 36880 47364 + + + + (original description) + Memory usage : 10.9% and constantly increasing (that's over 400 MB on my system with 4 GB) Playing a playlist of MP3 files. This can't be normal, right? -Lev ProblemType: Bug DistroRelease: Ubuntu 12.04 Package: rhythmbox 2.96-0ubuntu4.1 ProcVersionSignature: Ubuntu 3.2.0-27.43-generic 3.2.21 Uname: Linux 3.2.0-27-generic x86_64 NonfreeKernelModules: nvidia ApportVersion: 2.0.1-0ubuntu11 Architecture: amd64 Date: Tue Jul 31 14:07:07 2012 InstallationMedia: Ubuntu 12.04 LTS "Precise Pangolin" - Release amd64 (20120425) ProcEnviron: LANGUAGE=en_CA:en TERM=xterm PATH=(custom, no user) LANG=en_CA.UTF-8 SHELL=/bin/bash SourcePackage: rhythmbox UpgradeStatus: No upgrade log present (probably fresh install) ** Changed in: rhythmbox (Ubuntu) Assignee: (unassigned) => Matthew Fischer (mfisch) -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to rhythmbox in Ubuntu. https://bugs.launchpad.net/bugs/1031449 Title: rhythmbox leaking memory To manage notifications about this bug go to: https://bugs.launchpad.net/rhythmbox/+bug/1031449/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs