Cyberduck Mountain Duck CLI

#3331 closed defect (fixed)

Directory listing cache for transfer leads to out of memory.

Reported by: Elvey Owned by: dkocher
Priority: high Milestone: 3.3
Component: core Version: 3.2
Severity: major Keywords:
Cc: Architecture:
Platform:

Description (last modified by dkocher)

Kept failing when downloading a 50 MB website:

I/O Error: Download failed
<path of failed file>
Unexpected end of sftp stream..													

I couldn't figure out why 'till I searched through the system.log and found this:

Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]: Exception in thread "Background" java.lang.OutOfMemoryError: Java heap space
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at org.apache.commons.collections.map.AbstractHashedMap.<init>(AbstractHashedMap.java:152)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at org.apache.commons.collections.map.AbstractLinkedMap.<init>(AbstractLinkedMap.java:109)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at org.apache.commons.collections.map.LRUMap.<init>(LRUMap.java:126)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at org.apache.commons.collections.map.LRUMap.<init>(LRUMap.java:111)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at org.apache.commons.collections.map.LRUMap.<init>(LRUMap.java:86)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Cache$1.<init>(Cache.java:39)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Cache.<init>(Cache.java:37)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Local.<init>(Local.java:327)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Local.<init>(Local.java:219)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.DownloadTransfer.childs(DownloadTransfer.java:190)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.SyncTransfer.childs(SyncTransfer.java:200)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Transfer.prepare(Transfer.java:612)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Transfer.prepare(Transfer.java:613)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Transfer.transfer(Transfer.java:573)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.core.Transfer.start(Transfer.java:671)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.ui.cocoa.CDTransferController$4.run(CDTransferController.java:581)
Jul 15 12:53:15 external-4 [0x0-0xf04f04].ch.sudo.cyberduck[67034]:     at ch.cyberduck.ui.cocoa.CDWindowController$1.run(CDWindowController.java:77)

I'm guessing this is why it kept failing.

If the app can't run because of a memory shortage, it should tell the user. I'm using version 3.2.1, but it's not an option. On the current OS (10.5.7).

See disputedly closed Ticket #2645.

Change History (3)

comment:1 Changed on Jul 15, 2009 at 8:26:06 PM by dkocher

  • Description modified (diff)
  • Milestone set to 3.3
  • Priority changed from normal to high
  • Status changed from new to assigned

comment:2 Changed on Aug 13, 2009 at 9:21:30 PM by dkocher

  • Milestone 3.3 deleted
  • Summary changed from UI doesn't report memory errors. to Directory listing cache for transfer leads to out of memory.

comment:3 Changed on Nov 6, 2009 at 2:40:37 PM by dkocher

  • Milestone set to 3.3
  • Resolution set to fixed
  • Status changed from assigned to closed

Fixed in r5307. Cache is limited to browser.cache.size (currently 1000) directory listings.

Note: See TracTickets for help on using tickets.
swiss made software