On Nov 28, 2007, at 16:42 PM, Ruby Ronin wrote:
> Ruby/programming noob here.  I've just finished my first real app,  
> but it's
> 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:in `timeout'
>        from c:/ruby/lib/ruby/1.8/timeout.rb:76:in `timeout'
>        from c:/ruby/lib/ruby/1.8/net/protocol.rb:132:in `rbuf_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:in `readline'
>        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:in `read_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?

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