Package upload takes too long, with error in windows log (failed applying protocol)

When sending a package to a server (8.8mb package) it took about 12minutes and then continued with the process successfully.
It seems very slow, so i checked the log in the server and i see the attached… any ideas?

and this is the error from diagnostics

Hi,

Thanks for getting in touch!

The error you are showing from diagnostics can occur with a timeout, so does not really help find a resolution here!
To get to the bottom of this issue could you please do the following:

  1. Try the deployments a few more times, and let us know if the speed is similar each time
  2. Provide us with a screenshot of the network traffic during the deployment

Thanks!

Vanessa

Unfortunately this happens all the time. I just updated octopus to latest, and tried to update all tentacles through the octopus server interface. In the log, this error showed up in almost all the servers! Only a server which is inside LAN worked without a problem. All remote servers reported the issue i attached above (diagnostics) in octopus (some with red and some with yellow formatting), and in windows event log there is the exact same error attached in the first post.

if i capture the incoming and outgoing traffic at the remote server (for port 10933) and save it as a wireshark capture file, will this be ok for you? Tell me what will be the most helpfull for you…

thanks

i’ve also done a bandwidth test between the servers with the use of iperf (http://iperf.fr/) and i’m getting a value of 40kb/s on average. This means that 10mb should be uploaded at about 3-4min … instead of 10-14 that it takes for octopus to upload!

G’day - sorry to hear this has been troublesome. We’ve realised that there are some throttling issues in our file transfer library, made worse by some changes we introduced a few versions back. Essentially Octopus makes too many outbound connections, leading to timeouts or poor performance over slower connections like this one.

The solution (you must be using 2.4.8 or later, I believe) is to set the Octopus.Acquire.MaxParallelism project-level variable to 1 (or another small number). When a new release is created and deployed this will limit the number of concurrent package transfers, making the process faster and more reliable.

Let me know if you need any more detail. We’re working towards a better overall experience for this in a future update.

Regards,
Nick

wow! With this variable the upload time is ~3 minutes for remote servers!
I’ll go in and add this variable in all projects for now (~100 projects) and i hope this will be transparent in the future without requiring a variable.

Excellent, really glad to hear it did the job! Thanks for the follow-up.

Nick

Incidentally, for 100 projects it might be faster to add the variable using a C# app against the Octopus.Client NuGet package - some brief details here: http://docs.octopusdeploy.com/display/OD/Octopus.Client

wow once again :slight_smile: Didn’t know this existed… thank you very much.