diff --git a/lib/mongo/networking.rb b/lib/mongo/networking.rb index 6ec1601..97cc7ea 100644 --- a/lib/mongo/networking.rb +++ b/lib/mongo/networking.rb @@ -137,9 +137,14 @@ module Mongo send_message_on_socket(packed_message, sock) result = receive(sock, request_id, exhaust) - rescue SystemStackError, NoMemoryError, SystemCallError, IRB::Abort => ex + rescue SystemStackError, NoMemoryError, SystemCallError => ex close raise ex + rescue Exception => ex + if defined?(IRB) + close if ex.class == IRB::Abort + end + raise ex ensure if should_checkin if command || read == :primary