Ticket #68 (assigned defect)

Opened 15 years ago

Last modified 7 years ago

savannah: Aborting a FISH file transfer is grossly inefficient

Reported by: ptsekov Owned by:
Priority: major Milestone: Future Releases
Component: mc-vfs Version: master
Keywords: Cc: god12@…
Blocked By: #77 Blocking:
Branch state: on hold Votes for changeset:

Description (last modified by ossi) (diff)

Original: http://savannah.gnu.org/bugs/?19721

Submitted by:Pavel Tsekov <ptsekov>Submitted on:Fri 27 Apr 2007 08:40:45 AM UTC
Category:VFSSeverity:3 - Normal
Status:NonePrivacy:Public
Assigned to:NoneOpen/Closed:Open
Release:All versionsOperating System:All

Original submission:

I was looking at the fish code recently and noticed that aborting
a running file transfer still causes MC to read the whole file sent 
by the remote end. I realized that the way FISH is currently
implemented, i.e. commands and data sent over the same channel, this
 is the only way to clear the data channel so that command replies 
would get to the FISH layer without re-establishing a new link. 
While this could be acceptable for small transfers I doubt it that 
it makes sens for multi-megabyte files.

Ideas on how to fix it are welcome. One way I can see is to
open a separate FISH connection for the data transfer i.e. like FTP. 

Comment 1 by Oswald Buddenhagen <ossi> at Fri 27 Apr 2007 12:20:17 PM UTC:

no, i think we can do like ssh does, i.e., tunnel multiple virtual 
connections through one physical connection. this adds some 
overhead, though (especially cpu-wise, as we have to call dd for 
every chunk).

btw, you might want to look at kde's fishserv.pl, it has some 
optimizations. never looked at it myself, though.

Comment 2 by Pavel Tsekov <ptsekov> at Fri 27 Apr 2007 01:38:47 PM UTC:

Sounds interesting - I'll take a look at it. My perl is pretty bad 
though - I hope the code is not too complicated.

Comment 3 by Pavel Tsekov <ptsekov> at Wed 02 May 2007 01:20:28 PM UTC:

Unfortunately kde's fish implementation (as found in kioslave/fish 
directory) is not a improvement in this particular case. At least I 
do not see any code which deals with aborting a file transfer 
gracefully. Most likely the connection is just killed.

Comment 4 by Pavel Tsekov <ptsekov> at Mon 07 May 2007 01:06:26 PM UTC:

I've tested the ssh ability to tunnel multiple session over the same
 connection and it works nicely. There is one problem though - it is
 supported only with SSH protocol v2.

Comment 5 by Oswald Buddenhagen <ossi> at Mon 07 May 2007 04:18:32 PM UTC:

huh? you actually used ssh for that? i guess that's a fine optimization.
but for the general case the chunking should be homegrown (based on 
dd and printf/read, i guess).

Change History

comment:1 Changed 15 years ago by styx

  • Milestone set to future releases

comment:2 Changed 14 years ago by metux

  • severity set to no branch

Is this still valid with the new fish implementation ?

comment:3 Changed 14 years ago by zaytsev

Sure it is.

P.S. SSH2+ sounds like a reasonable requirement nowadays.

comment:4 Changed 13 years ago by angel_il

  • Status changed from new to accepted
  • Owner set to angel_il

comment:5 Changed 13 years ago by angel_il

branch: 68_fish_abort_file_transfer_fix (parent master)

Version 0, edited 13 years ago by angel_il (next)

comment:6 Changed 13 years ago by andrew_b

  • Version set to master
  • Milestone changed from Future Releases to 4.8.0-pre1

comment:7 Changed 13 years ago by angel_il

  • severity changed from no branch to on review

please review

comment:8 Changed 13 years ago by slavazanko

  • severity changed from on review to on rework

Need rebase to current 'master' branch

comment:9 Changed 13 years ago by angel_il

forced update: 68_fish_abort_file_transfer_fix

comment:10 Changed 13 years ago by angel_il

  • severity changed from on rework to on review

please review

comment:11 Changed 13 years ago by slavazanko

  • severity changed from on review to no branch
  • Branch state set to on review

comment:12 Changed 13 years ago by slavazanko

  • Blocked By 77 added
  • Branch state changed from on review to on hold

In my point of view, need to resolve #77 issue first, then probably this ticket will be non-actual. If not - we will continue development from this point.

comment:13 Changed 12 years ago by andrew_b

  • Milestone changed from 4.8.0-pre1 to Future Releases

comment:14 Changed 10 years ago by ossi

  • Summary changed from savannah: Aborting a FISH file transfer still causes the FISH layer to consume the whole file to savannah: Aborting a FISH file transfer is grossly inefficient

comment:15 Changed 10 years ago by ossi

  • Description modified (diff)
  • Reporter changed from slavazanko to ptsekov

comment:16 Changed 8 years ago by god12

  • Cc god12@… added

comment:17 Changed 7 years ago by andrew_b

  • Status changed from accepted to assigned
  • Owner angel_il deleted
Note: See TracTickets for help on using tickets.