Question

I am trying to upgrade my web server. I have created a brand new instance of a latest generation virtual server on RackSpace that uses an SSD. On this brand new instance, I installed the following:

  1. Google Chrome
  2. FileZilla FTP Client

I then connected to a FileZilla FTP Server on a different server, which is hosting 2 image files that I am using to test. I then downloaded the 2 image files, which FileZilla reports as "successfully transferred". However, both of the image files are truncated! What could possibly be causing this?

Incorrect file size after transfer

A few things to note:

  • This only happens on the new instance if it is using an SSD. If I create an identical instance without the SSD (using SATA instead), the error does not occur.
  • On the server which is transferring the files, the files are also reported as having been transferred successfully. This server has been used as an FTP server for quite some time without any issues.
  • If I set up the new SSD instance as an FTP server and upload a bunch of files to it, some of them randomly get truncated by 2-10KB. Out of a ~150MB upload, I may end up with 150-200KB missing. If I transfer them again, a different subset of files gets truncated.
  • If I throttle the transfer speed on the FTP server to 100KB/s, the 2 image files transfer successfully without getting truncated. If I throttle the transfer speed to 500KB/s, the image files get truncated the same way as if there was no throttling.

Any ideas on how this could be happening?

Update: It is not related to FileZilla. Here is the same issue using ftp on the command line:

Incorrect filesizes

Was it helpful?

Solution

The solution is documented here: http://www.rackspace.com/knowledge_center/article/disabling-tcp-offloading-in-windows-server-2012

That article is for Windows Server 2012. In my case, I was using Windows Server 2008. To get to the network adapter properties, go to

  1. Right click on Computer --> Properties
  2. Device Manager
  3. Open up network adapters drop down and right click --> Properties
  4. Go to Advanced tab
  5. Disable everything except UDP Checksum Offload.

Important note: If only some of the options are disabled, you will notice a massive performance degradation. Performance will go back up to normal levels after you have disabled all of the necessary options.

OTHER TIPS

The reason it says that the transfer is complete is because closing the socket is- unfortunately- how FTP defines a completed transfer. (It opens up a data connection and sends the data. Closing the connection means the file is completely sent.)

For some reason, it seems like the connection is prematurely closing.

Personally, to me this does sound really bizarre and it might be a driver problem or hardware problem, but I would try:
1. Try Passive mode FTP. The command line client uses PORT mode by default. PASV is more firewall friendly.
2. Try disabling all software firewalls (like Windows Firewall) and retrying.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top