Project

General

Profile

Bug #7530

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

I have no idea what's going on here. 

 ~~~ 
 jruby-1.7.0 ~/projects/vts-jruby $ cat bench_load_path.rb  
 require 'benchmark' 

 FAKE_PATHS = ARGV[0].to_i || 100 
 THREADS = 8 
 ITERATIONS_PER_THREAD = 1000 

 FAKE_PATHS.times do |i| 
   $:.unshift "foo#{i}" 
 end 

 $: << '.' 

 system 'touch __load_path_bench_script__.rb' 
 puts Benchmark.measure { 
   @threads = THREADS.times.map do 
     Thread.new { 
       ITERATIONS_PER_THREAD.times do 
         require '__load_path_bench_script__' 
         $".pop 
       end 
     } 
   end 
   @threads.each { |t| t.join } 
 } 
 system 'rm __load_path_bench_script__.rb' 

 jruby-1.7.0 ~/projects/vts-jruby $ ruby-2.0.0 -rubygems bench_load_path.rb 100 
 /usr/local/lib/ruby/2.0.0/rubygems/custom_require.rb:36:in `require': wrong argument type false (expected mutex) (TypeError) 
	 from /usr/local/lib/ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 

 jruby-1.7.0 ~/projects/vts-jruby $ ruby-2.0.0 --disable-gems bench_load_path.rb 100 
 bench_load_path.rb:18:in `require': wrong argument type false (expected mutex) (TypeError) 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 

 With verbose on, I get this error and a bunch of circular require warnings, even though I'm not doing any circular requires here. 

 ruby-2.0.0-preview2 ~/projects/vts-jruby $ ruby -v bench_load_path.rb  
 ruby 2.0.0dev (2012-12-01 trunk 38126) [x86_64-darwin11.4.2] 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36: warning: loading in progress, circular require considered harmful - /Users/headius/projects/vts-jruby/__load_path_bench_script__.rb 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
 /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require': Attempt to unlock a mutex which is locked by another thread (ThreadError) 
	 from /Users/headius/.rvm/rubies/ruby-2.0.0-preview2/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require' 
	 from bench_load_path.rb:18:in `block (4 levels) in <main>' 
	 from bench_load_path.rb:17:in `times' 
	 from bench_load_path.rb:17:in `block (3 levels) in <main>'

Back