As long as the memory usage isn't steadily rising, I don't consider it to be a memory leak.
Exactly. I believe on Linux an app will get as much memory as possible ... as long other apps are not asking more memory / memory back.
And this is exactly where the 'leak' is. Memory isn't returned to the OS. I don't mind SAB getting 2gig of memory, but if it causes SAB not to be able to kick off unrar or par2repair, then I do mind. (not to mention all the other stuff that happens when the OS runs out of memory).
On Linux (just like Mac OS X, Windows, Solaris, AIX and almost 100% of all other OS's) all applications will recieve all the memory they request (except when it is limited by the administrator of the OS). There is a diffferences between active and inactive memory. You can see this in /proc/meminfo on a Linux box. There is Active memory, and Inactive memory. Active memory is allocated memory, that is currently in use Inactive memory is allocated memory, cached for a specific application, but is available for the OS to reclaim on the fly when needed.
The problem here is (in my view), that the memory claimed by python is not returned to the OS for reusage (it stayes in 'active memory'). I am not a python programmer, and know very little about python. I am however aware that there is a garbage collector, that should work properly/sufficiently out of the box. I also know that it there are certain commands to force the garbage collector to run. What I really don't know is what is concidered garbage by Python. (and if unused download cache is concidered as such, by the programmer and/or the system)