Subject: | Can't upload file to WS_FTP-SSH_7.7 server |
Date: | Fri, 15 Jul 2016 12:29:20 +0000 |
To: | "bug-Net-SFTP-Foreign [...] rt.cpan.org" <bug-Net-SFTP-Foreign [...] rt.cpan.org> |
From: | Rob Duval <rduval [...] factset.com> |
Hello Salva,
I currently can't upload a file to a server that identifies itself as WS_FTP-SSH_7.7. A simple reproducer script is included below, and it dies with "Couldn't open remote file 'test.txt': Folder not found: test.txt at /home/user/rduval/fts/test_sftp.pl line 16" when I run it. Please note that I can upload a file using the sftp command-line program on RHEL 6.6.
Can you please take a look and comment on whether there is a bug in Net::SFTP::Foreign? I don't have a viable workaround at the moment, so any advice you have would be appreciated.
Reproducer Script
use strict;
use warnings;
use Net::SFTP::Foreign;
$Net::SFTP::Foreign::debug = -1;
my %options = (
host => '...',
user => '...',
password => '...',
autodie => 1,
more => ['-v']
);
my $session = Net::SFTP::Foreign->new(%options);
$session->put('test.txt');
Perl version: This is perl 5, version 12, subversion 5 (v5.12.5) built for x86_64-linux-thread-multi
Debug Log
#20342 1468585419.00000 new: This is Net::SFTP::Foreign 1.86
#20342 1468585419.00000 new: Loaded from /home/user/rduval/perf/fts_axway53_conf/Users/ftsclient/SecureTransport/xfers_v2/lib//Net/SFTP/Foreign.pm
#20342 1468585419.00000 new: Running on Perl v5.12.5 for linux
#20342 1468585419.00000 new: debug set to -1
#20342 1468585419.00000 new: ~0 is 18446744073709551615
#20342 1468585419.00000 new: Using backend Net::SFTP::Foreign::Backend::Unix 1.76_03
#20342 1468585419.00000 autodisconnect: setting disconnecting pid to 20342 and thread to 1
#20342 1468585419.00000 _init_transport: ssh cmd: ssh -o NumberOfPasswordPrompts=1 -o PreferredAuthentications=keyboard-interactive,password -l removed -v removed -s sftp
#20342 1468585419.00000 _init_transport: starting password authentication
#20342 1468585419.00000 _init_transport: waiting for data from the pty to become available
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to removed [168.114.169.24] port 22.
debug1: Connection established.
debug1: identity file /home/fds/ftsclient/.ssh/identity type -1
debug1: identity file /home/fds/ftsclient/.ssh/identity-cert type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_rsa type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_rsa-cert type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_dsa type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_dsa-cert type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_ecdsa type -1
debug1: identity file /home/fds/ftsclient/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version WS_FTP-SSH_7.7
debug1: no match: WS_FTP-SSH_7.7
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'removed' is known and matches the RSA host key.
debug1: Found key in /home/fds/ftsclient/.ssh/known_hosts:121
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
#20342 1468585420.00000 _init_transport: waiting for data from the pty to become available
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
#20342 1468585421.00000 _init_transport: 54 bytes readed from pty:
73 66 74 70 30 34 65 78 74 2d 66 64 73 6e 66 6a 40 73 66 74 70 2d 30 34 2e 61 6c 6c 69 61 6e 7a | removed
67 69 2d 75 73 2e 63 6f 6d 27 73 20 70 61 73 73 77 6f 72 64 3a 20 | 's password:
#20342 1468585421.00000 _init_transport: looking for user/password prompt
#20342 1468585421.00000 _init_transport: matching against (?i-xsm:(user|name|login)?[:?]\s*$)
#20342 1468585421.00000 _init_transport: sending password
#20342 1468585421.00000 _init_transport: waiting for data from the pty to become available
#20342 1468585421.00000 _init_transport: 2 bytes readed from pty:
0d 0a | ..
#20342 1468585421.00000 _init_transport: looking for password ok
#20342 1468585421.00000 _init_transport: password authentication done
#20342 1468585421.00000 _queue_msg: queueing msg len: 5, code:1, id:3 ... [1]
00 00 00 05 01 00 00 00 03 | .........
#20342 1468585421.00000 _get_msg: waiting for message... [1]
#20342 1468585421.00000 _do_io: _do_io connected: 1
#20342 1468585421.00000 _do_io: _do_io select(-,-,-, undef)
#20342 1468585421.00000 _do_io: _do_io write queue: 9, syswrite: 9, max: 65536, $!:
00 00 00 05 01 00 00 00 03 | .........
#20342 1468585421.00000 _do_io: _do_io select(-,-,-, undef)
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug1: Sending subsystem: sftp
#20342 1468585421.00000 _do_io: _do_io read sysread: 9, total read: 9, $!:
00 00 00 05 02 00 00 00 03 | .........
#20342 1468585421.00000 _get_msg: got it!, len:5, code:2, id:-, status: -
02 00 00 00 03 | .....
#20342 1468585421.00000 _rel2abs: 'test.txt' --> 'test.txt'
#20342 1468585421.00000 put: local file size is 20
#20342 1468585421.00000 _rel2abs: 'test.txt' --> 'test.txt'
#20342 1468585421.00000 _queue_msg: queueing msg len: 29, code:3, id:0 ... [1]
00 00 00 1d 03 00 00 00 00 00 00 00 08 74 65 73 74 2e 74 78 74 00 00 00 1a 00 00 00 04 00 00 01 | .............test.txt...........
a4 | .
#20342 1468585421.00000 _get_msg: waiting for message... [1]
#20342 1468585421.00000 _do_io: _do_io connected: 1
#20342 1468585421.00000 _do_io: _do_io select(-,-,-, undef)
#20342 1468585421.00000 _do_io: _do_io write queue: 33, syswrite: 33, max: 65536, $!:
00 00 00 1d 03 00 00 00 00 00 00 00 08 74 65 73 74 2e 74 78 74 00 00 00 1a 00 00 00 04 00 00 01 | .............test.txt...........
a4 | .
#20342 1468585421.00000 _do_io: _do_io select(-,-,-, undef)
#20342 1468585421.00000 _do_io: _do_io read sysread: 47, total read: 47, $!:
00 00 00 2b 65 00 00 00 00 00 00 00 04 00 00 00 1a 46 6f 6c 64 65 72 20 6e 6f 74 20 66 6f 75 6e | ...+e............Folder not foun
64 3a 20 74 65 73 74 2e 74 78 74 00 00 00 00 | d: test.txt....
#20342 1468585421.00000 _get_msg: got it!, len:43, code:101, id:0, status: 4
65 00 00 00 00 00 00 00 04 00 00 00 1a 46 6f 6c 64 65 72 20 6e 6f 74 20 66 6f 75 6e 64 3a 20 74 | e............Folder not found: t
65 73 74 2e 74 78 74 00 00 00 00 | est.txt....
#20342 1468585421.00000 _set_status: _set_status code: 4, str: Folder not found: test.txt
#20342 1468585421.00000 _set_error: _set_err code: 2, str: Couldn't open remote file 'test.txt': Folder not found: test.txt
#20342 1468585421.00000 open: open failed: Folder not found: test.txt
Couldn't open remote file 'test.txt': Folder not found: test.txt at /home/user/rduval/fts/test_sftp.pl line 16
#20342 1468585421.00000 DESTROY: Net::SFTP::Foreign=HASH(0x1f12df0)->DESTROY called (current pid: 20342, disconnect_by_pid: 20342), current thread generation: 1, disconnect_by_thread: 1)
#20342 1468585421.00000 disconnect: Net::SFTP::Foreign=HASH(0x1f12df0)->disconnect called (ssh pid: 20343)
#20342 1468585421.00000 _conn_lost: _conn_lost
#20342 1468585421.00000 disconnect: starting dirty cleanup of process 20343
#20342 1468585421.00000 disconnect: killing process 20343 with signal 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
#20342 1468585421.00000 disconnect: waitpid returned 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 1792, received 2464 bytes, in 0.6 seconds
Bytes per second: sent 3162.0, received 4347.7
debug1: Exit status -1
#20342 1468585422.00000 disconnect: waitpid returned 20343
#20342 1468585422.00000 disconnect: process 20343 reaped
Thanks,
Rob Duval Portfolio Services Engineering rduval@factset.com<mailto:rduval@factset.com> T 203.810.1728 FactSet Research Systems Inc.<http://www.factset.com/>
Message body is not shown because it is too large.