JRuby test failures exposed by progress/fuubar formatters

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Minor - P4
    • 2.7.0.rc0
    • Affects Version/s: 2.5.3
    • Component/s: Tests
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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.

            Assignee:
            Oleg Pudeyev (Inactive)
            Reporter:
            Oleg Pudeyev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: