From: tom@... Date: 2016-05-26T21:17:41+00:00 Subject: [ruby-core:75733] [Ruby trunk Bug#11953] ThreadError in 2.3 on code that works on 2.2.4 Issue #11953 has been updated by Tom Mornini. James Gray wrote: > The following code works fine on Ruby 2.2.4 > It raises this error in Ruby 2.3.0 > ThreadError: deadlock; recursive locking We just saw this same error -- apparently out of nowhere -- on very stable code that utilizes Celluloid while under significant load. We've never seen this error previously but cannot yet say that it runs fine on 2.2.4 -- though we do have a strong belief that it runs well under 1.9.3. We'll try it under 2.2.4 and report back. ---------------------------------------- Bug #11953: ThreadError in 2.3 on code that works on 2.2.4 https://bugs.ruby-lang.org/issues/11953#change-58860 * Author: Clayton Flesher * Status: Open * Priority: Normal * Assignee: * ruby -v: 2.3.0 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- This is my first bug reporting, so I'm sorry if this isn't exactly correct format. I'll update my report accordingly if pointed in the right direction. I ran into what appears to be a bug while doing a quiz. I've included the breaking code, the test suite and the description of the quiz as attachments to this bug report. The following code works fine on Ruby 2.2.4. class Prime def self.nth(num) error(num) primes = build_primes(num) primes.last end private def build_primes(num) primes = [2] index = 3 until primes.size == num if example?(index, primes) primes << index end index += 1 end primes end def error(num) unless num > 0 raise ArgumentError end end def example?(index, primes) primes.each do |prime| if index % prime == 0 return false end end true end end It raises this error in Ruby 2.3.0 ThreadError: deadlock; recursive locking /home/clayton/.rubies/ruby-2.3.0/lib/ruby/2.3.0/singleton.rb:140:in `synchronize' /home/clayton/.rubies/ruby-2.3.0/lib/ruby/2.3.0/singleton.rb:140:in `instance' /home/clayton/.rubies/ruby-2.3.0/lib/ruby/2.3.0/singleton.rb:142:in `block in instance' /home/clayton/.rubies/ruby-2.3.0/lib/ruby/2.3.0/singleton.rb:140:in `synchronize' /home/clayton/.rubies/ruby-2.3.0/lib/ruby/2.3.0/singleton.rb:140:in `instance' /home/clayton/exercism/ruby/nth-prime/nth_prime.rb:3:in `nth' nth_prime_test.rb:28:in `test_first' If this is expected behavior, I'm sorry in advance for wasting your time. ---Files-------------------------------- nth_prime.rb (528 Bytes) nth_prime_test.rb (973 Bytes) README.md (1.27 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: