memory leak fixed?

I downloaded the latest version of Qt. On my very first search (which was pretty broad, I just searched for "flac") there was a memory leak. It automatically stopped responding and within seconds was taking up 1.7GB of RAM. Doesn't look like it has been fixed...

thescarletfire's picture

I'm sure Nir will be releasing the memory leak fix soon, if he hasn't already.

(Did you download the newest build yet?)
SoulseekQt build 2013.9.18 (search results memory leak fix)

The search results memory leak fix just makes sure that the memory occupied by search results is properly released when they are dismissed, it doesn't reduce the memory use of active results. If you're running a search for just a file type you're bound to get an insanely large number of results, which would cause said hangups and high memory consumption. Admittedly though it might be better not to process search results past a certain number. Maybe I should look into instating a hard limit on results per search...

Yup, that's exactly what I think is happening. Searching for "love" does the same thing. :)

I don't know how the search works but maybe you could have it search in blocks? What I mean is: have it search for a number of results and allow the user to search some more if they so desire.

If someone is dumb enough to search for a single common word like "flac", "love", "mp3", "cd", "the", or for a string of digits or for a single letter, then they deserve the client-overwhelming response they get.

Of course it'd be nice to keep the client from being overwhelmed by a flood of legitimate results to a foolish query. But wouldn't it be ideal to focus on preventing clients from returning results for such a query? Also maybe warn the user if they're entering a risky query, and giving them a chance to change it.

SoulseekQt does cut short search processing for searches that produce more than 2000 results currently. I've just now implemented a setting for limiting the number of received results per search, which is set to 10,000 results by default. The number can be changed and limiting turned off altogether if the user wishes it.