From: shugo@... Date: 2016-12-02T11:17:25+00:00 Subject: [ruby-core:78464] [Ruby trunk Bug#12999] there still exist race conditions in require Issue #12999 has been reported by Shugo Maeda. ---------------------------------------- Bug #12999: there still exist race conditions in require https://bugs.ruby-lang.org/issues/12999 * Author: Shugo Maeda * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- TestRequire#test_require_with_loaded_features_pop fails by increasing the number of threads, so it seems that there still exist race conditions in require. ``` lexington:ruby$ cat t/require_test.rb require "tempfile" Tempfile.create(%w'bug-7530- .rb') {|script| script.close PATH = script.path THREADS = 10 ITERATIONS_PER_THREAD = 1000 THREADS.times.map { Thread.new do ITERATIONS_PER_THREAD.times do require PATH $".delete_if {|p| Regexp.new(PATH) =~ p} end end }.each(&:join) p :ok } lexington:ruby$ ./ruby t/require_test.rb /home/shugo/local/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': destroyed thread shield - 0x00557a99ff5a78 (ThreadError) from /home/shugo/local/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from t/require_test.rb:12:in `block (4 levels) in
' from t/require_test.rb:11:in `times' from t/require_test.rb:11:in `block (3 levels) in
' lexington:ruby$ ./ruby t/require_test.rb /home/shugo/local/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': Attempt to unlock a mutex which is locked by another thread (ThreadError) from /home/shugo/local/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' from t/require_test.rb:12:in `block (4 levels) in
' from t/require_test.rb:11:in `times' from t/require_test.rb:11:in `block (3 levels) in
' ``` -- https://bugs.ruby-lang.org/ Unsubscribe: