[ruby-core:79908] [Ruby trunk Bug#13280] net/ftp: Putbinaryfile (on Windows) requires blocksize equal to file size

From: markdblackwell01@...
Date: 2017-03-04 18:15:44 UTC
List: ruby-core #79908
Issue #13280 has been reported by Mark D Blackwell.

----------------------------------------
Bug #13280: net/ftp: Putbinaryfile (on Windows) requires blocksize equal to file size
https://bugs.ruby-lang.org/issues/13280

* Author: Mark D Blackwell
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: 
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
I searched this issue list (for Descriptions including `ftp`), but didn't find this problem discussed.

Recently, in the process of developing a new program, I invoked `putbinaryfile` (in passive mode) on a large file (about 1.3 megabytes) without specifying its `blocksize` argument. Invariably, the server terminated the transfer about five seconds after its start. (BTW, this approximates the duration in which other FTP clients completely send this entire file—with my setup.)

Much smaller files transferred fine.

Eventually, using a test file of about 63 kilobytes, I discovered that if I specified a `blocksize` identical to the file length (in bytes), it worked. And the transfer failed when the `blocksize` was one byte smaller.

Now, I've added code (in my own program) in order to obtain the file size of every file I want to send, and set the `blocksize` argument to that size (exactly). (Except that, for empty files, I need to set it to `1`: otherwise it hangs.)

Since then, I've sent hundreds of files (many of which are approximately 1 or 2 megabytes in size) without experiencing this problem.

Why should I need to set the `blocksize` in this way? It seems undocumented, to say the least.

I'm on Windows 7 — and I'm using an old version of Ruby (for the moment). Nevertheless, (supposedly) this problem may still exist:

~~~
> ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x64-mingw32]
~~~



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next