Interesting results!!! What an understatement!! How on earth did you 
figure that out? It worked like a charm. Initially my problem was just 
that the HTTP request took FOREVER... then i started randomly getting 
the timeout errors mentioned above. I went into the net/protocol.rb file 
and made this change and voila!. Not only did the errors go away, but 
the request takes literally 1/30th of the time it did before it 
eventually got the data or even timed out.. Marcin Coles, you are the 
genius of the day! Thank you!

Marcin Coles wrote:
> Well, I'm no expert, and I certainly wasn't going to learn another 
> language, so I decided to do some tests because this was a problem for 
> me too.
> 
> I went into protocol.rb, to the rbuf_fill method (where it actually 
> starts the timeout thread).
> 
> the code there was
> 
> def rbuf_fill
>       timeout(@read_timeout)  {
>         @rbuf << @io.sysread(1024)
>       }
> end
> 
> now timeout takes 2 parameters - a time in seconds(?) and an exception 
> class to raise (defaults to Error).
> 
> When I changed the code to the following, it started to work for me. 
> New code:
> 
> def rbuf_fill
>       timeout(@read_timeout,ProtocolError) {
>         @rbuf << @io.sysread(1024)
>       }
> end
> 
> Obviously this is not exactly extensively tested - but an interesting 
> results.
> 
> Marcin

-- 
Posted via http://www.ruby-forum.com/.