https://bugs.kde.org/show_bug.cgi?id=404890

--- Comment #13 from Harald Sitter <sit...@kde.org> ---
openssh falls over

> Mai 11 14:35:03 ajax kdeinit5[9480]: +++++++++++++++++++++ sftp_write
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ channel_write_common ] ( 
> 2 )  channel_write_common: Remote window is 2096505 bytes. going to write 
> 7864349 bytes
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ ssh_packet_need_rekey ] 
> ( 3 )  ssh_packet_need_rekey: packet: [data_rekey_needed=0, out_blocks=2296, 
> in_blocks=2334
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ 
> ssh_socket_unbuffered_write ] ( 3 )  ssh_socket_unbuffered_write: Enabling 
> POLLOUT for socket
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ packet_send2 ] ( 3 )  
> packet_send2: packet: wrote [type=94, len=32784, padding_size=16, comp=32767, 
> payload=32767]
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ channel_write_common ] ( 
> 3 )  channel_write_common: channel_write wrote 32758 bytes
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ channel_write_common ] ( 
> 2 )  channel_write_common: Remote window is 2063747 bytes. going to write 
> 7831591 bytes
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ ssh_packet_need_rekey ] 
> ( 3 )  ssh_packet_need_rekey: packet: [data_rekey_needed=0, out_blocks=4343, 
> in_blocks=2334
> Mai 11 14:35:03 ajax sftp-server[9521]: error: bad message from 127.0.0.1 
> local user me
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ packet_send2 ] ( 3 )  
> packet_send2: packet: wrote [type=94, len=32784, padding_size=16, comp=32767, 
> payload=32767]
> Mai 11 14:35:03 ajax sftp-server[9521]: forced close 
> "/home/me/Public/subdir/file.part" bytes read 0 written 0
> Mai 11 14:35:03 ajax kdeinit5[9480]: log_kio_sftp: [ channel_write_common ] ( 
> 3 )  channel_write_common: channel_write wrote 32758 bytes
> Mai 11 14:35:03 ajax sftp-server[9521]: session closed for local user me from 
> [127.0.0.1]

because of 

>       if (msg_len > SFTP_MAX_MSG_LENGTH) {
>               error("bad message from %s local user %s",
>                   client_addr, pw->pw_name);

defined in

> sftp-common.h:#define SFTP_MAX_MSG_LENGTH       (256 * 1024)

i.e. our write requests are just way too big for openssh

https://tools.ietf.org/html/draft-ietf-secsh-filexfer-00 doesn't seem to
describe a solution for this. It merely states that servers SHOULD support
read/write of 32768 bytes, but not really what happens when the client requests
are larger than the server is willing to handle. I suppose it also doesn't help
that openssh just closes the connection when this happens because that puts our
client into a confused state as we think the session is still open but really
it's not.

I believe the solution here is to simply serialize the writes into multiple
requests so as to not exceed the limits.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to