RUBY-386 ensure that replica set connection doesn't hang when
connecting to unreponsive node. set default op timeout to 30 seconds.
This commit is contained in:
parent
ec97bd0d00
commit
4ed709ff7f
@ -51,8 +51,7 @@ module Mongo
|
|||||||
# @option options [Float] :pool_timeout (5.0) When all of the connections a pool are checked out,
|
# @option options [Float] :pool_timeout (5.0) When all of the connections a pool are checked out,
|
||||||
# this is the number of seconds to wait for a new connection to be released before throwing an exception.
|
# this is the number of seconds to wait for a new connection to be released before throwing an exception.
|
||||||
# Note: this setting is relevant only for multi-threaded applications.
|
# Note: this setting is relevant only for multi-threaded applications.
|
||||||
# @option opts [Float] :op_timeout (nil) The number of seconds to wait for a read operation to time out.
|
# @option opts [Float] :op_timeout (30) The number of seconds to wait for a read operation to time out.
|
||||||
# Disabled by default.
|
|
||||||
# @option opts [Float] :connect_timeout (nil) The number of seconds to wait before timing out a
|
# @option opts [Float] :connect_timeout (nil) The number of seconds to wait before timing out a
|
||||||
# connection attempt.
|
# connection attempt.
|
||||||
# @option opts [Boolean] :ssl (false) If true, create the connection to the server using SSL.
|
# @option opts [Boolean] :ssl (false) If true, create the connection to the server using SSL.
|
||||||
@ -470,7 +469,7 @@ module Mongo
|
|||||||
@pool_timeout = opts[:pool_timeout] || opts[:timeout] || 5.0
|
@pool_timeout = opts[:pool_timeout] || opts[:timeout] || 5.0
|
||||||
|
|
||||||
# Timeout on socket read operation.
|
# Timeout on socket read operation.
|
||||||
@op_timeout = opts[:op_timeout] || nil
|
@op_timeout = opts[:op_timeout] || 30
|
||||||
|
|
||||||
# Timeout on socket connect.
|
# Timeout on socket connect.
|
||||||
@connect_timeout = opts[:connect_timeout] || nil
|
@connect_timeout = opts[:connect_timeout] || nil
|
||||||
|
@ -92,7 +92,7 @@ module Mongo
|
|||||||
|
|
||||||
check_set_membership(config)
|
check_set_membership(config)
|
||||||
check_set_name(config)
|
check_set_name(config)
|
||||||
rescue ConnectionFailure, OperationFailure, SocketError, SystemCallError, IOError => ex
|
rescue ConnectionFailure, OperationFailure, OperationTimeout, SocketError, SystemCallError, IOError => ex
|
||||||
@connection.log(:warn, "Attempted connection to node #{host_string} raised " +
|
@connection.log(:warn, "Attempted connection to node #{host_string} raised " +
|
||||||
"#{ex.class}: #{ex.message}")
|
"#{ex.class}: #{ex.message}")
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user