Ticket #3654 (new defect)

Opened 8 years ago

Last modified 2 months ago

Broken sftp connection when uploading files to SSHDroid

Reported by: x905 Owned by:
Priority: major Milestone: Future Releases
Component: mc-vfs Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: no branch Votes for changeset:

Description

in 4.8.17 has been broken sftp connection command
server is sshdroid on android device
4.8.17 can connect, browse files and upload small files (up to 20 kb), but 30 kb cant - and hangs
4.8.15 in same situation works fine (except error -31 as always)

some add info https://www.linux.org.ru/forum/midnight/12592086

Change History

comment:1 Changed 8 years ago by and

maybe #3406

comment:2 Changed 7 years ago by zaytsev

  • Milestone changed from 4.8.18 to 4.8.19

comment:3 Changed 6 years ago by zaytsev

  • Milestone changed from 4.8.20 to 4.8.21

comment:4 Changed 6 years ago by x905

Two years gone - it is time to fix this bug !

comment:5 Changed 6 years ago by zaytsev

Is it still present in current master after all SFTP fixes we've done so far?

comment:6 Changed 6 years ago by x905

GNU Midnight Commander 729f6ee - bug still present
Coping file from device to host - ok
Coping file to device from host - fails
Device is android with SSHDroid

comment:7 Changed 6 years ago by zaytsev

  • Milestone changed from 4.8.21 to 4.8.22
  • Version changed from 4.8.17 to master
  • Summary changed from 4.8.17 broken sftp connection to Broken sftp connection when uploading files to SSHDroid

Ok, thanks for the info. That's sad, but someone needs to invest time to reproduce and fix it...

comment:8 Changed 6 years ago by andrew_b

I installed Android_x86-7.1-r2 in virtual machine.

After a series of experiments I found out the following.

Currently, the maximum size of the buffer used to copy/move data (the data chunk) is 128K, regardless of source and destination. On my PC, my local openssh-7.2p server works fine with such data chunks, but SSHDroid doesn't. I got the correct data transfer to Android only after I set the buffer size down to 16K.

I don't have a nice way to fix this yet.

comment:9 Changed 5 years ago by zaytsev

  • Milestone changed from 4.8.22 to 4.8.23

comment:10 Changed 5 years ago by zaytsev

  • Milestone changed from 4.8.23 to 4.8.24

comment:11 Changed 4 years ago by zaytsev

  • Milestone changed from 4.8.25 to 4.8.26

comment:12 Changed 3 years ago by zaytsev

  • Milestone changed from 4.8.26 to 4.8.27

comment:13 Changed 3 years ago by zaytsev

  • Milestone changed from 4.8.27 to 4.8.28

comment:14 Changed 2 years ago by zaytsev

  • Milestone changed from 4.8.28 to 4.8.29

comment:15 Changed 15 months ago by zaytsev

  • Milestone changed from 4.8.29 to 4.8.30

comment:16 Changed 7 months ago by zaytsev

  • Milestone changed from 4.8.30 to 4.8.31

comment:17 Changed 2 months ago by zaytsev

  • Milestone changed from 4.8.31 to 4.8.32

Maybe make a loop halving the buffer till 4K if getting an error and only then failing?

comment:18 Changed 2 months ago by andrew_b

  • Milestone changed from 4.8.32 to Future Releases
Note: See TracTickets for help on using tickets.