[ 
https://issues.apache.org/jira/browse/SSHD-1215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17425960#comment-17425960
 ] 

Roberto Deandrea commented on SSHD-1215:
----------------------------------------

The problem is in the SFTP client of our front-end SSHD server. There when 
theFileHandle.isOpenAppend() is instantiated the file is open in APPEND mode!!!

THIS IS WRONG! The file MUST be opened in WRITE mode as requested by WinSCP 
client.

 

The following implementation is WRONG!!!

 

*public boolean isOpenAppend()*
*{* 

    *return SftpConstants.ACE4_APPEND_DATA == (getAccessMask() & 
SftpConstants.ACE4_APPEND_DATA);* 

*}*

You are testing the WRONG flags. You have to test against *FileOpen* flags, non 
*AccessFile* flags!!!

The right implementation is the following :

 

*public boolean isOpenAppend()*
*{* 

*return openOptions.contains(StandardOpenOption.APPEND);* 

*}* 

 

Fell free to refuse our contribution.

 

Bye

Roberto

 

> WinsCP transfer failure to Apache SSHD Server
> ---------------------------------------------
>
>                 Key: SSHD-1215
>                 URL: https://issues.apache.org/jira/browse/SSHD-1215
>             Project: MINA SSHD
>          Issue Type: Bug
>    Affects Versions: 2.6.0
>            Reporter: Roberto Deandrea
>            Priority: Blocker
>         Attachments: logs.zip
>
>
> Hi
> I have a failure transferring small files from a WinSCP SFTP client version 
> 5.19.2 to a front-end Apache SSHD Server 2.6.0.
> The front-end Apache SSHD server is configured with a Filesystem built upon 
> SFTPFileSystemProvider to proxy files to an Apache SSHD back-end server.
> WinSCP SFTP transfer files successfully directly to back-end Apache SSHD 
> Server.
> I traced the SFTP file transfer on the front-end server and back-end server 
> and it seems that something get wrong in the remote FileSystem set on the 
> front-end server.
> From traces it seems that the first chunk of file is received correctly by 
> the back-end server, but something is wrong on the second chuck of file 
> transmitted.
> -------------------------------------------------------------------------------------------------------------------------
> First SSH_FXP_WRITE chunk received from front-end server :
> [16/09/21 09:18:26:364 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.server.AbstractSftpSubsystemHelper 1 process 
> process(ServerSessionImpl[allfuser1@/172.18.202.33:55400])[length=32757, 
> type=SSH_FXP_WRITE, id=19718] processing
> [16/09/21 09:18:26:364 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.server.SftpSubsystem 3 doWrite 
> doWrite(ServerSessionImpl[allfuser1@/172.18.202.33:55400])[id=19718] 
> *SSH_FXP_WRITE 
> (handle=de6fcf635cb34b0e6d3d56643b7539a3[[/upload/rsa.key|https://issues.apache.org/upload/rsa.key]],
>  offset=0, data=byte[32704])*
> First SSH_FXP_WRITE chunk sent by front-end SFTP client to back.end-server :
> [16/09/21 09:18:26:913 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.client.impl.DefaultSftpClient 3 send 
> send(SftpChannelSubsystem[id=0, 
> recipient=0]-ClientSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:6471][sftp])
>  cmd=SSH_FXP_WRITE, len=32752, id=139
> [16/09/21 09:18:27:010 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.client.impl.AbstractSftpClient 3 checkResponseStatus 
> checkResponseStatus(SftpChannelSubsystem[id=0, 
> recipient=0]-ClientSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:6471][sftp])[id=139]
>  cmd=SSH_FXP_WRITE status=SSH_FX_OK lang= msg=
>  
> First SSH_FXP_WRITE chunk received succesfully from back-end server :
> [16/09/21 09:18:27:007 CEST] 00005c15 id=00000000 
> org.apache.sshd.sftp.server.SftpSubsystem 3 doWrite 
> doWrite(ServerSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:34445])[id=139]
>  *SSH_FXP_WRITE 
> (handle=c88cfd55dd514ccdd0428571191f5ea1[[/upload/rsa.key|https://issues.apache.org/upload/rsa.key]],
>  offset=0, data=byte[32704])*
> [16/09/21 09:18:27:545 CEST] 00005c15 id=00000000 
> org.apache.sshd.sftp.server.AbstractSftpSubsystemHelper 1 process 
> process(ServerSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:34445])[length=32757,
>  
> -----------------------------------------------------------------------------------------------------
> Second SSH_FXP_WRITE chunk received from front-end server:
> [16/09/21 09:18:27:012 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.server.AbstractSftpSubsystemHelper 1 process 
> process(ServerSessionImpl[allfuser1@/172.18.202.33:55400])[length=32757, 
> type=SSH_FXP_WRITE, id=19974] processing
> [16/09/21 09:18:27:013 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.server.SftpSubsystem 3 doWrite 
> doWrite(ServerSessionImpl[allfuser1@/172.18.202.33:55400])[id=19974] 
> *SSH_FXP_WRITE 
> (handle=de6fcf635cb34b0e6d3d56643b7539a3[[/upload/rsa.key|https://issues.apache.org/upload/rsa.key]],
>  offset=32704, data=byte[32704])*
>  
> Second SSH_FXP_WRITE chunk sent by front-end SFTP client to back-end server:
> [16/09/21 09:18:27:473 CEST] 00000175 id=00000000 
> org.apache.sshd.sftp.client.impl.DefaultSftpClient 3 send 
> send(SftpChannelSubsystem[id=0, 
> recipient=0]-ClientSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:6471][sftp])
>  cmd=SSH_FXP_WRITE, len=32752, *id=141*
>  
> Second SSH_FXP_WRITE chunk received from back-end server:
> type=SSH_FXP_WRITE, *id=141*] processing
> [16/09/21 09:18:27:545 CEST] 00005c15 id=00000000 
> org.apache.sshd.sftp.server.SftpSubsystem 3 doWrite 
> doWrite(ServerSessionImpl[DMZ/172.18.202.33/allfuser1@/10.6.6.22:34445])[*id=141*]
>  SSH_FXP_WRITE 
> (handle=c88cfd55dd514ccdd0428571191f5ea1[[/upload/rsa.key|https://issues.apache.org/upload/rsa.key]],
>  *offset=0, data=byte[32704*])
> Now the back-end server complains about this data. The back-end server is 
> expecting a chunk of data at offset=32704 and not offset = 0. 
> java.io.IOException: 
> position([/upload/rsa.key|https://issues.apache.org/upload/rsa.key]) *illegal 
> file channel position, expected frsPosition: 32704, found: 0*
> This is a blocking error and causes the connection closing of the parts 
> involved.
> ----------------------------------------------------------------------------------------------------------------------
> Full traces are attached to this jira.
>  
> Questions and considerations.
>  # Is this a known problem and is fixed in the latest release of Apache SSHD?
>  # If this is a new problem can you suggest me how to fix it, or better 
> troubleshoot it
>  # Let me know if you need further info for troubleshooting
>  
> Thanks in advance  for your support
>  
> Kind Regards
> Roberto Deandrea
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org

Reply via email to