Bugzilla – Bug 6115
Fishbone causes browser memory overflow
Last modified: 2008-12-18 11:12:53 UTC
I have a system where SqueezeCenter runs on a 64-bit XP Pro Server machine, and I control it through browsers running on two 32-bit XP Pro desktop client machines, all connected on a 100 Mb/s Ethernet network. When I use the Fishbone skin in SC, the client browsers (Internet Explorer) continuously grow their memory usage as observed via the Task Manager, until the system hangs up. This does not occur when either the Classic skin or the Default skin is selected. I have verified this with both versions 14500 and 14539 of the 7.0 Beta. My two desktop clients are identical. If I select the Fishbone skin, the IE7 browser memory usage starts at about 70 MB and grows by approximately 150-200 MB/hour (which is much more than the MP3 data being played!!). This occurs on one client machine which has only two applications running - IE7 with one tab open to SqueezeCenter, and Task Manager to see the memory usage. A virtually identical result is observed on the other client where a lot of different applications are running and I am accessing SC to add and delete tracks to/from the playlist, although the memory usage does change a little when I do something in IE. The clients have 1 GB of internal memory, so when the IE7 memory usage gets above about 300 MB the system begins to noticeably slow down. Once the memory usage goes above about 600 MB, the system is locked up and I cannot even close IE. Reloading the browser window resets the memory usage to the 70 MB level, and it immediately starts growing again. I get the same result if either client is running alone, so the problem does not seem to be related to multiple clients accessing the Server. If I use the Classic or Default skins, the IE7 memory usage starts out at about the same level (~70 MB) and stays roughly constant over several hours. I also opened a browser on the Server machine to look at SC. The results are similar but the Fishbone memory usage doesn't grow as quickly, although the system will eventually hang up. The browser on this machine is IE6, so the difference may be due to either this, to the fact that there is no network involved, or to the fact that the OSes are different. Please let me know if there is any other information I can gather to help pinpoint this problem.
One more thing - the Fishbone memory usage grows independently of whether SqueezeCenter is playing or paused.
change 14600 tries to do some more intensive cleanup of certain code blocks in the playlist handling. I've also updated scriptaculous and prototype which claims to fix some potential leaks in sortables. Other searching suggests that there is some debate as to whether there is a bug in IE7 causing leaks. Mem usage grew from 65 to 83 in first 20 minutes of playback but has sat at 85-6M for the remaining 40 mins. Some of this would be explained by caching of the page loads, much as we see in FF.
I downloaded version 14602, and started a long term experiment. IE7 on a client machine doing nothing else besides SqueezeCenter had its memory usage grow 128 MB in 12.5 hours, or about 10 MB/hour. IE6 on the Server machine grew 70 MB in 12.5 hours, or a little over 5 MB/hour. The memory usage grew at a perfectly consistent rate on both machines. I am now running a test with the Default skin, which didn't seem to grow previously - I will report the result. Overall this is a dramatic improvement in the situation. I also noticed that on the other client where I was doing a lot of work in IE7, the memory usage would get pretty large - around 300 MB. If I then closed all tabs except SqueezeCenter, this number didn't go down. Reloading and clearing caches had no effect. It seems like IE7 doesn't free up memory in certain cases. Closing IE and restarting set memory usage back to the 70-80MB range as I would have expected. I'm amazed at how quickly you responded to this bug - thanks!!
I think I may have it at change 14627. I'll run overnight, but I'm not seeing any appreciable increase over the last hour.
I ran for >10 hours ith the Default skin, and memory grew a little bit in IE7 but noticeably less than with Fishbone. It grew about 3 MB/hour in IE6 (Fishbone was 5). SC was only playing for part of this time, which may have affected the results (previous short experiments seemed to indicate that it didn't matter, however). I will get the new version after 14627 and do another long run with Fishbone to verify.
I downloaded version 14627. IE7 ran for 7 hours with Fishbone and gained 10 MB - 1.4 MB/hour. IE6 ran for 7 hours and actually lost 4 MB. Both of these values seem within the margin of error, and in fact are better than the previous version even running Default. This problem definitely seems adequately handled.
My test showed a rise of 5M over the first hour, then mostly stable for much of the time after, rising about 1M per hour for the next 7. I think this fits in with the expected caching cost or at least in line with your reports of default. marking as fixed. we can reopen if something glaring shows up.
This bug is being closed since it was resolved for a version which is now released! Please download the new version of SqueezeCenter (formerly SlimServer) at http://www.slimdevices.com/su_downloads.html If you are still seeing this bug, please re-open it and we will consider it for a future release.