Skip to content

Test failure under ruby 3.4 #354

@loqs

Description

@loqs

Versions:

$ ruby --version
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [x86_64-linux]

How to reproduce:

$ git clone https://github.com/grosser/parallel.git
$ cd parallel
$ bundle config set path "$PWD"
$ bundle install
$ gem build --verbose parallel.gemspec
$ gem install --local --verbose --install-dir tmp_install/usr/lib/ruby/gems/3.4.0 --bindir tmp_install/usr/bin parallel-1.26.3.gem
$ GEM_HOME=tmp_install/usr/lib/ruby/gems/3.4.0 bundle exec rspec
...
......................................................................**......................................F........F........*.......*...............F..

Pending: (Failures listed here are expected and do not affect your suite's status)

  1) Parallel.map sets Parallel.worker_number with 4 ractors
     # No reason given
     # ./spec/parallel_spec.rb:323

  2) Parallel.map sets Parallel.worker_number with 0 ractors
     # No reason given
     # ./spec/parallel_spec.rb:330

  3) Parallel.each works with SQLite in ractors
     # unsupported
     # ./spec/parallel_spec.rb:607

  4) Parallel.each sets Parallel.worker_number with ractors
     # unsupported
     # ./spec/parallel_spec.rb:660

Failures:

  1) Parallel.each works with SQLite in threads
     Failure/Error: without_ractor_warning(out).should == "Parent: X\nParallel: XXX\nParent: X\n"

       expected: "Parent: X\nParallel: XXX\nParent: X\n"
            got: "/build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notificatio...h_with_ar_sqlite.rb:3:in 'Kernel#require'\n\tfrom spec/cases/each_with_ar_sqlite.rb:3:in '<main>'\n" (using ==)
       Diff:
       @@ -1,4 +1,17 @@
       -Parent: X
       -Parallel: XXX
       -Parent: X
       +/build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications/fanout.rb:3:in 'Kernel#require': cannot load such file -- mutex_m (LoadError)
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications/fanout.rb:3:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications.rb:4:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications.rb:4:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation/behaviors.rb:3:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation/behaviors.rb:3:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:18:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:18:in '<class:Deprecation>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:8:in '<module:ActiveSupport>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:5:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/rails.rb:26:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/rails.rb:26:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activerecord-6.1.5/lib/active_record.rb:27:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activerecord-6.1.5/lib/active_record.rb:27:in '<top (required)>'
       +	from spec/cases/each_with_ar_sqlite.rb:3:in 'Kernel#require'
       +	from spec/cases/each_with_ar_sqlite.rb:3:in '<main>'
     # ./spec/parallel_spec.rb:611:in 'block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:9:in 'block (2 levels) in <top (required)>'

  2) Parallel.each works with SQLite in processes
     Failure/Error: without_ractor_warning(out).should == "Parent: X\nParallel: XXX\nParent: X\n"

       expected: "Parent: X\nParallel: XXX\nParent: X\n"
            got: "/build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notificatio...h_with_ar_sqlite.rb:3:in 'Kernel#require'\n\tfrom spec/cases/each_with_ar_sqlite.rb:3:in '<main>'\n" (using ==)
       Diff:
       @@ -1,4 +1,17 @@
       -Parent: X
       -Parallel: XXX
       -Parent: X
       +/build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications/fanout.rb:3:in 'Kernel#require': cannot load such file -- mutex_m (LoadError)
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications/fanout.rb:3:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications.rb:4:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/notifications.rb:4:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation/behaviors.rb:3:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation/behaviors.rb:3:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:18:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:18:in '<class:Deprecation>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:8:in '<module:ActiveSupport>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/deprecation.rb:5:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/rails.rb:26:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activesupport-6.1.5/lib/active_support/rails.rb:26:in '<top (required)>'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activerecord-6.1.5/lib/active_record.rb:27:in 'Kernel#require'
       +	from /build/ruby-parallel/src/parallel/ruby/3.4.0/gems/activerecord-6.1.5/lib/active_record.rb:27:in '<top (required)>'
       +	from spec/cases/each_with_ar_sqlite.rb:3:in 'Kernel#require'
       +	from spec/cases/each_with_ar_sqlite.rb:3:in '<main>'
     # ./spec/parallel_spec.rb:611:in 'block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:9:in 'block (2 levels) in <top (required)>'

  3) Parallel GC does not leak memory in threads
     Failure/Error: normalize(result).should == []

       expected: []
            got: ["Hash => 1"] (using ==)
     # ./spec/parallel_spec.rb:743:in 'block (4 levels) in <top (required)>'
     # ./spec/spec_helper.rb:9:in 'block (2 levels) in <top (required)>'

Finished in 1 minute 19.58 seconds (files took 0.05329 seconds to load)
155 examples, 3 failures, 4 pending

Failed examples:

rspec ./spec/parallel_spec.rb[1:11:7] # Parallel.each works with SQLite in threads
rspec ./spec/parallel_spec.rb[1:11:16] # Parallel.each works with SQLite in processes
rspec ./spec/parallel_spec.rb[1:17:1] # Parallel GC does not leak memory in threads

Additional Information:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions