Ticket #68 (assigned defect)
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: | VFS | Severity: | 3 - Normal |
Status: | None | Privacy: | Public |
Assigned to: | None | Open/Closed: | Open |
Release: | All versions | Operating 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: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 14 years ago by angel_il
- Owner set to angel_il
- Status changed from new to accepted
comment:5 Changed 14 years ago by angel_il
branch: 68_fish_abort_file_transfer_fix (parent master)
changeset: 68_fish_abort_file_transfer_fix
comment:6 Changed 14 years ago by andrew_b
- Version set to master
- Milestone changed from Future Releases to 4.8.0-pre1
comment:7 Changed 14 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: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:14 Changed 11 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 11 years ago by ossi
- Description modified (diff)
- Reporter changed from slavazanko to ptsekov
comment:17 Changed 8 years ago by andrew_b
- Owner angel_il deleted
- Status changed from accepted to assigned