Issue #6618 has been updated by cantregister (Why Cantiregister).


macdeux:fca7 adeh$ ruby threadtest.rb 
>>>>>>>>>>>>>>>> starting
threadtest.rb:6: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.3.0]

-- Control frame information -----------------------------------------------
c:0009 p:---- s:0023 b:0023 l:000022 d:000022 CFUNC  :to_s
c:0008 p:---- s:0021 b:0021 l:000020 d:000020 CFUNC  :puts
c:0007 p:---- s:0019 b:0019 l:000018 d:000018 CFUNC  :puts
c:0006 p:0024 s:0015 b:0015 l:001948 d:000014 BLOCK  threadtest.rb:6
c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC  :each
c:0003 p:0045 s:0007 b:0007 l:001948 d:000a00 EVAL   threadtest.rb:5
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:001948 d:001948 TOP   

-- Ruby level backtrace information ----------------------------------------
threadtest.rb:5:in `<main>'
threadtest.rb:5:in `each'
threadtest.rb:6:in `block in <main>'
threadtest.rb:6:in `puts'
threadtest.rb:6:in `puts'
threadtest.rb:6:in `to_s'

-- C level backtrace information -------------------------------------------

   See Crash Report log file under ~/Library/Logs/CrashReporter or
   /Library/Logs/CrashReporter, for the more detail of.

-- Other runtime information -----------------------------------------------

* Loaded script: threadtest.rb

* Loaded features:

    0 enumerator.so
    1 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/encdb.bundle
    2 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/enc/trans/transdb.bundle
    3 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/defaults.rb
    4 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/rbconfig.rb
    5 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/deprecate.rb
    6 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/exceptions.rb
    7 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb
    8 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb
    9 /Users/adeh/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/x86_64-darwin11.3.0/bigdecimal.bundle

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6
----------------------------------------
Bug #6618: Seg Fault when printing thread.keys
https://bugs.ruby-lang.org/issues/6618#change-27323

Author: cantregister (Why Cantiregister)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 1.9.3
ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.3.0]


This is very easy to reproduce:

require 'bigdecimal'

for thr in Thread.list
 puts thr.keys
end

Somehow a key is introduced to the thread with the object ID of 8.

Attempting to inspect or to_s this key results in a seg fault.

1.9.3p194 :001 > ObjectSpace._id2ref(8)
RangeError: 0x00000000000008 is not symbol id value

It is not clear how this object is created or inserted into the Thread. 


-- 
http://bugs.ruby-lang.org/