From: Eric Hodel Date: 2007-11-29T09:49:10+09:00 Subject: Re: Timeout::Error mystery 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.