Timeout::Error mystery

Ruby/programming noob here. I’ve just finished my first real app, but
performance is occassionally plagued by the following error message:

c:/ruby/lib/ruby/1.8/timeout.rb:54:in rbuf_fill': execution expired (Timeout::Error) from c:/ruby/lib/ruby/1.8/timeout.rb:56:intimeout’
from c:/ruby/lib/ruby/1.8/timeout.rb:76:in timeout' from c:/ruby/lib/ruby/1.8/net/protocol.rb:132:inrbuf_fill’
from c:/ruby/lib/ruby/1.8/net/protocol.rb:116:in readuntil' from c:/ruby/lib/ruby/1.8/net/protocol.rb:126:inreadline’
from c:/ruby/lib/ruby/1.8/net/http.rb:2017:in read_status_line' from c:/ruby/lib/ruby/1.8/net/http.rb:2006:inread_new’
from c:/ruby/lib/ruby/1.8/net/http.rb:1047:in `request’

I did find one proposed solution here (modifying the rbuf_fill method):
http://www.ruby-forum.com/topic/105212 , but it doesn’t seem to work for
me. These posts also explains why standard error handling won’t work.

Does anyone have another solution?

Thanks a bunch!

On Nov 28, 2007, at 16:42 PM, Ruby Ronin wrote:

   from c:/ruby/lib/ruby/1.8/net/protocol.rb:126:in `readline'

Does anyone have another solution?

Timeout::Error is an Interrupt subclass, which is not a StandardError
subclass. You must rescue Timeout::Error explicitly to handle the

I didn’t understand what you meant at first. Once I had some time to
into explicit exception handling I figured it out, and it worked -