← Back to team overview

linuxdcpp-team team mailing list archive

[Bug 951217] Re: excessive memory usage on file list download

 

There are four scenarios where the filelist is loaded as far as I can
tell.

1) You manually load a file list from disk by opening it in the file menu and it opens up the tab to browse the share 
2) You download someone's list and it opens up the tab to browse the share when the download is complete.
3) You download a directory and the list is downloaded by default
4) You choose the match queue option in search, transfers, hub, or favorite users window.

In option 1 & 2, the list is loaded in memory in order to support the
viewing of that list. Until you close the tab associated with that list
the memory will obviously not be released.

Option 3 doesn't look to be storing the loaded list, it simply uses it
to find additional sources then discards it.

Option 4 might have some issue. It caches a single list in a static TTH
map for some reason. The next time you match a file list this cache
should be cleared and the memory released.

Can you try this:

- Confirm in which scenarios above you are seeing the issue.
- If it's option 4, see if matching the queue of a person with a large list increases the memory to the levels you mentioned for a sustained period of time.
- Then see if matching the queue of a person with a small list causes the memory to reduce to normal levels.

** Changed in: linuxdcpp
       Status: New => Incomplete

-- 
You received this bug notification because you are a member of LinuxDC++
Team, which is subscribed to LinuxDC++.
https://bugs.launchpad.net/bugs/951217

Title:
  excessive memory usage on file list download

Status in Linux DC++:
  Incomplete

Bug description:
  Description of the issue

  I have just downloaded a number of file lists ranging from several kB
  to several MB and this is what happens

  Mem:   2053260k total,  1891236k used,   162024k free,     2496k buffers
  Swap:  2095100k total,   255924k used,  1839176k free,   384880k cached

    PID USER      PR  NI  VIRT  RES  SHR S   %CPU %MEM    TIME+  COMMAND                                                                                                              
  27935 me      21   1 2250m 1.1g 8540 S      2    56.1   1:20.87 linuxdcpp 

  The filelists are all parsed correctly as they should but the memory usage increases to <insane> and stays that way forever.
  Since filelists are never re-used by the program in any way they should be unloaded from memory as well or at least placed into cached so that it can be overwritten.
  An other option is to create the possibility for downloading partial file lists to limit the use of RAM.

  Steps to reproduce

  Download several filelists of up to 60 MB or even more

  Expected result

  Increase of RAM usage to accommodate for parsing filelist, take out
  info needed, dump filelist to reduce RAM usage.

  Actual result

  Increase or RAM usage to accommodate for parsing filelist, take out
  info needed, leave unneeded info in RAM

  Version

  Compiled from latest BZR

  OS

  Opensuse 11.3 to 12.1

  No backtrace since no crash

To manage notifications about this bug go to:
https://bugs.launchpad.net/linuxdcpp/+bug/951217/+subscriptions


References