68

When I attempted to copy a file (of size, ) over the network using scp I get a error <file> stalled Why does this happen? How do I resolve it?

5 Answers5

82

This happens because scp is trying to grab as much bandwidth as possible, and any delay (by a firewall, etc.) can stall it. Limiting the bandwidth (with -l option) will fix it.

For example, you might want to limit the bandwidth to 1 MB/s (= 8192 Kbits/s):

 scp -l 8192 <file> <destination>

Source: http://www.aixmind.com/?p=1371 - Wayback Machine

muru
  • 207,970
11

I've managed to solve it by using rsync:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt user@host.com:/tmp/
2

Any chance you're behind a Cisco ASA firewall? If so, turn off "sequence number randomization" and that'll help a lot -- also disable TCP Offload (ethtool -K $INTERFACE tso off gso off gro off) if you're on a Cisco ASA with Broadcom NICs in your server.

dotwaffle
  • 121
  • That's genius. Is that change permanent or do I need to put the command somewhere?

    Just to be clear, you have to set that on your NIC, not on the cscotun interface.

    – mjaggard May 18 '17 at 18:54
1

Given the error message that we received when the scp stalled I suspected that it was the encryption that was failing. "The authenticity of host 'myserver (10.10.11.12)' can't be established. ECDSA key fingerprint is SHA256:+zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo" With that in mind I ran "scp -c aes128-ctr /tmp/test.dan/bigfile.src myserver:/tmp/bigfile". scp WAS successful with the alternate cipher. Is there an issue with the default cipher blowing a buffer space?

Might try adding "-c " with an alternate cipher and see if it resolves your stall.

0

I've hit this myself nearly a decade later, and I'm finding that despite the upload claiming - stalled - and the amount of data sent not incrementing, the file is growing on the destination.

This leads me to believe that the client is just misreporting its (lack of) success.

Solution: Verify the copy is progressing.