Still having problems with exceptions in IMAP module

I have this method defined in a program I use for checking access to
IMAP accounts.

def tryIMAP (host, usessl, user, pass)
retryc = false
proto = usessl ? “IMAPS” : “IMAP”
begin
imap = Net::IMAP.new(host, usessl ? 993 : 143, usessl)
rescue Net::IMAP::ByeResponseError => e
imap.disconnect if imap
STDERR.print “#{host} #{proto} #{e.to_s}\n”;
retryc = true
rescue => e
imap.disconnect if imap
STDERR.print “#{host} #{proto} #{e.to_s}\n”;
return ‘aborted’
end while retryc
begin
imap.login( user, pass)
imap.logout
imap.disconnect
‘success’
rescue Net::IMAP::NoResponseError
‘failure’
end
end

As you can see I explicitly have a rescue clause for
Net::IMAP::ByeResponseError but I still get the error raised at runtime
:frowning:

(Net::IMAP::ByeResponseError)948:in receive_responses': * BYE Autologout; idle for too long from /usr/lib/ruby/1.8/net/imap.rb:932:insynchronize’
from /usr/lib/ruby/1.8/net/imap.rb:932:in receive_responses' from /usr/lib/ruby/1.8/net/imap.rb:917:ininitialize’
from /usr/lib/ruby/1.8/net/imap.rb:916:in start' from /usr/lib/ruby/1.8/net/imap.rb:916:ininitialize’
from test.rb:11:in new' from test.rb:11:intryIMAP’
from test.rb:149
from test.rb:105:in each' from test.rb:105 from test.rb:94:ineach’
from test.rb:94
from test.rb:93:in `open’
from test.rb:93

I am testing several thousand accounts and this error happens at random
places in the list on different runs.

Can anyone suggest where I go from here. I suspect this is a bug
somewhere in imap.rb but I can’t reproduce this reliably. Sigh…

Russell