-
-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
scp.put fails with large files #654
Comments
@pwo There are some known issue with libssh and SCP. Would you mind trying this with SFTP instead and let us know if this works for you? Thanks! |
This sounds like an issue of the SCP implementation in pylibssh, where it tries to read the whole file into a single memory buffer in here: This is likely not going to work for large files. The SCP should read the file per smaller chunks and feed it to the libssh. I am not sure if it fails just from nowhere, or fills the whole RAM as the buffers might end up being copied to some other places. |
Fixes: ansible#654 Signed-off-by: Jakub Jelen <[email protected]>
Fixes: ansible#654 Signed-off-by: Jakub Jelen <[email protected]>
SUMMARY
Copying large file with scp.put results in the remote file becoming 0 bytes and pylibssh fails with an exception.
The size limit seems to be 2g, truncate -s 2047m works, truncate -s 2048m does not for the source file.
ISSUE TYPE
PYLISSH and LIBSSH VERSION
OS / ENVIRONMENT
Controller:
RHEL 9.4
Python 3.9
ansible 8.7.0
ansible-core 2.15.12
Ansible installed from pypi in venv.
Target device:
Cisco Nexus N9K-C9336C-FX2, NX-OS 10.2(7)
Also reproducible against sshd on CentOS Stream 9.
OpenSSH_8.7p1, OpenSSL 3.2.2 4 Jun 2024
STEPS TO REPRODUCE
EXPECTED RESULTS
Would expect the scp to not fail.
ACTUAL RESULTS
The remote_file ends up being 0 bytes.
The "end-user" failure of this is that the cisco.nxos.nxos_file_copy ansible module fails with:
"msg": "Exception received : Error transferring file to nxos64-cs.10.3.6.M.bin: Can't write to remote file: b''",
Regular OpenSSH scp works fine for both files.
OpenSSH_8.7p1, OpenSSL 3.0.7 1 Nov 2022
The text was updated successfully, but these errors were encountered: