[
https://issues.apache.org/jira/browse/SSHD-1215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17425027#comment-17425027
]
Roberto Deandrea commented on SSHD-1215:
----------------------------------------
Hi Thomas, I tried to reproduce the problem in a unit-test but did not success,
but I found the reason of that.
WinSCP open the file (with SSH_FXP_OPEN) to be written with pflags = 0x01
(SSH_FXF_CREATE_TRUNCATE) and access = 0x06 (ACE4_APPEND_DATA |ACE4_ADD_FILE).
This behavior is strange and it seems to be WRONG. Only if the file is opened
in APPEND mode, these access flags SHULD be set.
In the class FileHandle I checked the following method :
public boolean isOpenAppend() {
return SftpConstants.ACE4_APPEND_DATA == (getAccessMask() &
SftpConstants.ACE4_APPEND_DATA);
}
We change the code in the following code and WinSCP is working fine.
public boolean isOpenAppend() {
return openOptions.contains(StandardOpenOption.APPEND);
}
I think this is the right code, and it fixes the problem with WinSCP.
Can you comment on this ?
> 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: [email protected]
For additional commands, e-mail: [email protected]