Updates read semantics for the Ruby driver in order to comply with the specification outlined here: http://docs.mongodb.org/manual/applications/replication/#replica-set-read-preference - Modified ReplSetConnection :read parameter to accept and respect the following read preference modes (Note :secondary behaves differently than before) :primary :primary_preferred :secondary :secondary_preferred :nearest - Added :tag_sets parameter to ReplSetConnection in order for tag sets to be specified as part of read preference. - Added :secondary_acceptable_latency_ms parameter to ReplSetConnection for setting maximum latency specification as part of read preference.
… pass in any number of operators themselves
Within the complex connect test there were two issues with 2.1+ versions of the server: A new server feature prevents primary replica set members from stepping down if the secondaries are lagging more than 10 seconds behind. We are now forcing the step-down within this test to avoid the issue. Calling isMaster() on a removed replica set member currently causes the server to hang, skipping this test for now and filed SERVER-6492 to resolve the issue. All other tests passed.
Refactor TCPSocket exception handling: All Errno exceptions are subclasses of SystemCallError EOFError is a subclass of IOError Both SystemCallError and IOError raise ConnectionFailure so they were combined Connection problems related to IO, raising IOError, are now correctly considered ConnectionFailures rather than an OperationFailures. Operation Failure is for MongoDB server operation rejections only.