Vote #73929
完了Disconnect and logout from IMAP after mail receive
0%
説明
When running Redmine::IMAP.check(imap_options, options) in a continuous loop with a delay (I don't want to boot the rails env every time) you will eventually get the error listed below depending on your mail provider's maximum concurrent users:
rake aborted! Too many simultaneous connections. (Failure) /usr/local/lib/ruby/2.0.0/net/imap.rb:1156:in `get_tagged_response' /usr/local/lib/ruby/2.0.0/net/imap.rb:1210:in `block in send_command' /usr/local/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize' /usr/local/lib/ruby/2.0.0/net/imap.rb:1192:in `send_command' /usr/local/lib/ruby/2.0.0/net/imap.rb:435:in `login' /home/ppretorius/workspace-ruby/redmine-2.3.1/lib/redmine/imap.rb:30:in `check'
This problem is fixed by simply adding imap.logout and imap.disconnect at the end of the method:
imap.expunge imap.logout imap.disconnect
I got the solution "from this stackoverflow post":http://stackoverflow.com/questions/3322510/ruby-netimap-closing-a-connection.
journals
Since Redmine handles the connection opening and login, it could/should handle logout and disconnection as well.
--------------------------------------------------------------------------------
Patch committed in r11905, thanks.
--------------------------------------------------------------------------------
Merged.
--------------------------------------------------------------------------------
related_issues
relates,Closed,14101,Receive IMAP by uid's