Yeah, Ruby Fixnum normally automatically casts to Bignum if you exceed 
Fixnum boundaries, so it would be an odd case that a reference counter 
overflow would hang this up. This is really puzzling, and I'm wondering if 
the bug isn't further down the stack, like Net::SSH or something.

I'm curious, have you tried Session#download instead of Session#download!. 
The former is non-blocking, but won't really have any effect on your 
operation unless you specifically need it to block until finished.

This really sucks to debug! Waiting for a 4 GB file transfer is like 
waiting for paint to dry.

On Sunday, May 12, 2013 11:43:04 PM UTC-4, Chris McCann wrote:
>
> Thanks very much, Brad. I looked through the source to see if I could find 
> a 32-bit integer somewhere that might be the problem but didn't find any 
> smoking guns. Let me know if you do. 
>
> On May 12, 2013, at 8:24 PM, bradleyland <[email protected]<javascript:>> 
> wrote:
>
> A lot of libraries (Ruby and elsewhere) handle large files rather naively. 
> Fortunately, Net::SFTP looks like it has some smarts for this. The docs for 
> Session#download! say: "If local [the second argument] is omitted, 
> downloads the file to an in-memory buffer and returns the result as a 
> string; otherwise, returns the Net::SFTP::Operations::Download instance." 
> The next place to look is at Download: 
> http://net-ssh.github.io/net-sftp/classes/Net/SFTP/Operations/Download.html. 
> It looks like you've already been there though, because you're using the 
> event handler. The file is written as the download progresses, so it 
> doesn't look like it's cramming the whole thing in memory. I also watched 
> memory usage while downloading a large file, and the ruby process stays 
> around 30 MB, so I don't think it's an issue related to in-memory buffering.
>
> I'm still digging to see if I can find a reason why it would hang at 4 GB.
>
> -- 
> -- 
> SD Ruby mailing list
> [email protected] <javascript:>
> http://groups.google.com/group/sdruby
> --- 
> You received this message because you are subscribed to a topic in the 
> Google Groups "SD Ruby" group.
> To unsubscribe from this topic, visit 
> https://groups.google.com/d/topic/sdruby/4OhfZ4hklIA/unsubscribe?hl=en.
> To unsubscribe from this group and all its topics, send an email to 
> [email protected] <javascript:>.
> For more options, visit https://groups.google.com/groups/opt_out.
>  
>  
>
>

-- 
-- 
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
--- 
You received this message because you are subscribed to the Google Groups "SD 
Ruby" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to