-
Type: Improvement
-
Resolution: Done
-
Priority: Minor - P4
-
Affects Version/s: 1.3.0
-
Component/s: None
-
None
-
Environment:Ubuntu Lucid 10.04
Ruby 1.8.7
The order of the arguments to Mongo::ReplSetConnection#new seems to affect whether it connects: (mongo02 is the primary)
irb(main):001:0> Mongo::ReplSetConnection.new(['mongo01', 27017], ['mongo02', 27017])
Mongo::ConnectionFailure: Failed to connect to primary node.
from gems/mongo-1.3.0/lib/../lib/mongo/repl_set_connection.rb:128:in `connect'
from gems/mongo-1.3.0/lib/../lib/mongo/connection.rb:632:in `setup'
from gems/mongo-1.3.0/lib/../lib/mongo/repl_set_connection.rb:93:in `initialize'
from (irb):1:in `new'
from (irb):1
irb(main):002:0> Mongo::ReplSetConnection.new(['mongo02', 27017], ['mongo01', 27017])
=> #<Mongo::ReplSetConnection:0x117f0d30 @nodes_tried=[["mongo02", 27017], ["mongo02", 27017], ["mongo01", 27017], ["db01", 27017]], @safe=false, @pool_size=1, @read_secondary=false, @auths=[], @secondaries=[], @primary=["mongo02", 27017], @timeout=5.0, @id_lock=#<Mutex:0x117f0bc8>, @read_pool=nil, @primary_pool=#<Mongo::Pool:0x117ef2f0 @checked_out=[], @socket_ops=
, @timeout=5.0, @size=1, @pids=
{#<TCPSocket:0x117ee008>=>25920}, @port=27017, @queue=#<ConditionVariable:0x117ef250>, @sockets=[#<TCPSocket:0x117ee008>], @host="mongo02", @connection=#<Mongo::ReplSetConnection:0x117f0d30 ...>, @connection_mutex=#<Mutex:0x117ef278>>, @replica_set=nil, @logger=nil, @queue=#<ConditionVariable:0x117f0b28>, @secondary_pools=[], @nodes=[["mongo02", 27017], ["mongo01", 27017], ["db01", 27017]], @nodes_to_try=[], @op_timeout=nil, @safe_mutexes=
{#<TCPSocket:0x117f0998>=>#<Mutex:0x117eff70>, #<TCPSocket:0x117ee008>=>#<Mutex:0x117edea0>}, @connection_mutex=#<Mutex:0x117f0ba0>, @arbiters=[]>
irb(main):003:0>
Logs from the slave when it is the first argument:
Tue Apr 12 17:23:15 [initandlisten] connection accepted from XX.XX.XX.XX:58122 #49
Tue Apr 12 17:23:15 [conn49] end connection XX.XX.XX.XX:58122
The primary shows no connection attempts at all.