Running the tests in Travis with progress or Fuubar formatter produced this run: https://travis-ci.org/mongodb/mongo-ruby-driver/builds/388080809?utm_source=github_status&utm_medium=notification
Specifically this one seems legit and likely it should be addressed:
https://travis-ci.org/mongodb/mongo-ruby-driver/jobs/388080829:
1) Mongo::Server::Connection#dispatch when the process is forked disconnects the connection
Failure/Error: if pid != Process.pid
ConcurrencyError:
Detected invalid array contents due to unsynchronized modifications with concurrent users
# ./lib/mongo/server/connectable.rb:94:in `ensure_same_process!'
# ./lib/mongo/server/connectable.rb:82:in `ensure_connected'
# ./lib/mongo/server/connectable.rb:101:in `read'
# ./lib/mongo/server/connection.rb:230:in `deliver'
# ./lib/mongo/server/connection.rb:144:in `block in dispatch'
# ./lib/mongo/monitoring/publishable.rb:47:in `publish_command'
# ./lib/mongo/server/connection.rb:143:in `dispatch'
# ./lib/mongo/auth/scram.rb:75:in `login'
# ./lib/mongo/server/connection.rb:261:in `block in authenticate!'
# ./lib/mongo/server.rb:267:in `handle_auth_failure!'
# ./lib/mongo/server/connection.rb:260:in `authenticate!'
# ./spec/mongo/auth/scram/negotiation_spec.rb:23:in `authenticate!'
# ./lib/mongo/server/connection.rb:100:in `connect!'
# ./lib/mongo/server/connectable.rb:84:in `ensure_connected'
# ./lib/mongo/server/connection.rb:282:in `write'
# ./lib/mongo/server/connection.rb:229:in `deliver'
# ./lib/mongo/server/connection.rb:144:in `block in dispatch'
# ./lib/mongo/monitoring/publishable.rb:47:in `publish_command'
# ./lib/mongo/server/connection.rb:143:in `dispatch'
# ./lib/mongo/operation/shared/executable.rb:33:in `block in dispatch_message'
# ./lib/mongo/server/connection_pool.rb:110:in `with_connection'
# ./lib/mongo/server.rb:251:in `with_connection'
# ./lib/mongo/operation/shared/executable.rb:32:in `dispatch_message'
# ./lib/mongo/operation/delete/op_msg.rb:41:in `execute'
# ./lib/mongo/operation/shared/write.rb:36:in `execute'
# ./lib/mongo/collection/view/writable.rb:152:in `block in delete_many'
# ./lib/mongo/retryable.rb:150:in `legacy_write_with_retry'
# ./lib/mongo/collection/view/writable.rb:150:in `block in delete_many'
# ./lib/mongo/cluster.rb:517:in `with_session'
# ./lib/mongo/client.rb:457:in `with_session'
# ./lib/mongo/collection/view.rb:204:in `with_session'
# ./lib/mongo/collection/view/writable.rb:149:in `delete_many'
# ./lib/mongo/collection.rb:512:in `delete_many'
# ./spec/mongo/server/connection_spec.rb:471:in `block in (root)'
This one seems weird, possibly a jruby-specific issue: https://travis-ci.org/mongodb/mongo-ruby-driver/jobs/388080825
1) Mongo::Collection::View::MapReduce#each when out is in the options when out is a document iterates over the documents in the result
Failure/Error: Unable to find org/jruby/RubyTime.java to read failed line
TypeError:
no implicit conversion to rational from nil
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/timer.rb:54:in `elapsed_seconds'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/throttle.rb:18:in `choke'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/output.rb:48:in `refresh'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/output.rb:44:in `with_refresh'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/base.rb:177:in `update_progress'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/ruby-progressbar-1.9.0/lib/ruby-progressbar/base.rb:93:in `increment'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/fuubar-2.3.1/lib/fuubar.rb:125:in `block in increment'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/fuubar-2.3.1/lib/fuubar.rb:134:in `with_current_color'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/fuubar-2.3.1/lib/fuubar.rb:125:in `increment'
# /home/travis/.rvm/gems/jruby-9.1.16.0/gems/fuubar-2.3.1/lib/fuubar.rb:77:in `example_passed'
This could also be fixable:
https://travis-ci.org/mongodb/mongo-ruby-driver/jobs/388080813
1) Mongo::Server::Monitor#scan! when calling multiple times in succession throttles the scans to minimum 500ms
Failure/Error: expect(Time.now - start).to be >= 0.5
expected: >= 0.5
got: 0.499879
# ./spec/mongo/server/monitor_spec.rb:25:in `block in (root)'
These failures are not happening with the documentation formatter, perhaps because printing each test name out takes enough time to serialize operations.