Skip to content

concurrent-ruby rspec testsuite fails with ruby4.0.0dev perhaps due to Set change #1093

@mtasaka

Description

@mtasaka

Trying with ruby 4.0.0dev (2025-11-16 master bacd35626c) +PRISM [x86_64-linux]
ruby/ruby@bacd356

concurrent-ruby git head
05523c0
concurrent-ruby side rspec testsuite fails (concurrent-ruby-edge side not tested) like:

$ env RUBYLIB=$(pwd)/lib/concurrent-ruby rspec --exclude-pattern 'spec/concurrent/{actor_spec.rb,channel_spec.rb,lazy_register_spec.rb,channel/**/*,edge/**/*,processing_actor_spec.rb,promises_spec.rb,throttle_spec.rb,cancellation_spec.rb,executor/wrapping_executor_spec.rb}'

......
Failures:

  1) Concurrent::Set.[] when initializing with arguments creates a set with the given objects
     Failure/Error: monitor or raise("BUG: Internal monitor was not properly initialized. Please report this to the concurrent-ruby developers.")
     
     RuntimeError:
       BUG: Internal monitor was not properly initialized. Please report this to the concurrent-ruby developers.
     # ./lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb:34:in 'Concurrent::CRubySet#=='
     # ./spec/concurrent/set_spec.rb:17:in 'block (4 levels) in <module:Concurrent>'

  2) Concurrent::Set.[] when initializing with no arguments is expected to be empty
     Failure/Error: monitor or raise("BUG: Internal monitor was not properly initialized. Please report this to the concurrent-ruby developers.")
     
     RuntimeError:
       BUG: Internal monitor was not properly initialized. Please report this to the concurrent-ruby developers.
     # ./lib/concurrent-ruby/concurrent/thread_safe/util/data_structures.rb:34:in 'Concurrent::CRubySet#empty?'
     # ./spec/concurrent/set_spec.rb:11:in 'block (4 levels) in <module:Concurrent>'

Finished in 2 minutes 31.1 seconds (files took 0.48868 seconds to load)
2157 examples, 2 failures, 12 pending

Failed examples:

rspec ./spec/concurrent/set_spec.rb:16 # Concurrent::Set.[] when initializing with arguments creates a set with the given objects
rspec ./spec/concurrent/set_spec.rb:10 # Concurrent::Set.[] when initializing with no arguments is expected to be empty

Maybe this is due to Set change in ruby4_0 like
ruby/ruby@e4f85bf
but I am not sure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions