Issue #13280 has been updated by MarkDBlackwell (Mark D Blackwell).


Just now, I returned to my client's site. I couldn't reproduce the problematic reported behavior, either.

Presumably, some system misconfiguration (such as, Ping packets being blocked somewhere by a firewall?) has since been corrected.

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

* Author: MarkDBlackwell (Mark D Blackwell)
* Status: Assigned
* Priority: Normal
* Assignee: shugo (Shugo Maeda)
* 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>