# \[bug:trunk\] spec/rubyspec/core/array/product\_spec.rb SEGV

**URL:** <https://www.ruby-forum.com/t/bug-trunk-spec-rubyspec-core-array-product-spec-rb-segv/189715>\
**Category:** Development\
**Created:** [June 6, 2010, 2:09am UTC](https://www.ruby-forum.com/t/bug-trunk-spec-rubyspec-core-array-product-spec-rb-segv/189715 "2010-06-06T02:09:37Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 6, 2010, 2:09am UTC](https://www.ruby-forum.com/t/bug-trunk-spec-rubyspec-core-array-product-spec-rb-segv/189715/1 "2010-06-06T02:09:37Z")

</div>

e$B$H!“$$$&$o$1$G!”$H$j$"$($:e(B  
spec/rubyspec/core/array/product\_spec.rb e$B$Oe(B  
SEGV e$B$9$k$h$&$G$9!#e(B

(RUBY\_DEBUG e$B$N$?$a%3%s%Q%$%k$G$Oe(B RUBY\_DEBUG\_ENV  
e$B%^%/%m$r$D$1$F$"$j$^$9!#e(B)

% RUBY\_DEBUG=gc\_stress ./ruby spec/mspec/bin/mspec-run -f s  
spec/rubyspec/core/array/product\_spec.rb

Array#product

- returns converted arguments using :to\_ary
- returns the expected result
- has no required argument
- returns an empty array when the argument is an empty array

Array#product when given a block

- yields all combinations in  
turn/home/ruby/tcio/ruby/spec/rubyspec/core/array/product\_spec.rb:31:  
[BUG] Segmentation fault  
ruby 1.9.3dev (2010-06-05 trunk 28178) [i686-linux]

## – control frame ---------- c:0038 p:---- s:0124 b:0124 l:000123 d:000123 CFUNC :product c:0037 p:0021 s:0119 b:0119 l:0026fc d:000118 BLOCK /home/ruby/tcio/ruby/spec/rubyspec/core/array/product\_spec.rb:31 c:0036 p:---- s:0116 b:0116 l:000115 d:000115 FINISH c:0035 p:---- s:0114 b:0114 l:000113 d:000113 CFUNC :instance\_eval c:0034 p:0017 s:0111 b:0111 l:000110 d:000110 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68 c:0033 p:0021 s:0105 b:0105 l:000092 d:000104 BLOCK /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179 c:0032 p:---- s:0102 b:0102 l:000101 d:000101 FINISH c:0031 p:---- s:0100 b:0100 l:000095 d:000099 IFUNC c:0030 p:---- s:0098 b:0098 l:000097 d:000097 CFUNC :each c:0029 p:---- s:0096 b:0096 l:000095 d:000095 CFUNC :all? c:0028 p:0053 s:0093 b:0093 l:000092 d:000092 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179 c:0027 p:0101 s:0087 b:0087 l:000076 d:000086 BLOCK /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:207 c:0026 p:---- s:0082 b:0082 l:000081 d:000081 FINISH c:0025 p:---- s:0080 b:0080 l:000079 d:000079 CFUNC :each c:0024 p:0127 s:0077 b:0077 l:000076 d:000076 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:199 c:0023 p:0011 s:0074 b:0074 l:000065 d:000073 BLOCK /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:228 c:0022 p:---- s:0071 b:0071 l:000070 d:000070 FINISH c:0021 p:---- s:0069 b:0069 l:000068 d:000068 CFUNC :each c:0020 p:0216 s:0066 b:0066 l:000065 d:000065 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:228 c:0019 p:0109 s:0063 b:0063 l:000062 d:000062 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:37 c:0018 p:0029 s:0056 b:0056 l:000055 d:000055 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/object.rb:11 c:0017 p:0065 s:0049 b:0049 l:0026fc d:0026fc TOP /home/ruby/tcio/ruby/spec/rubyspec/core/array/product\_spec.rb:4 c:0016 p:---- s:0047 b:0047 l:000046 d:000046 FINISH c:0015 p:---- s:0045 b:0045 l:000044 d:000044 CFUNC :load c:0014 p:0018 s:0041 b:0041 l:002110 d:000040 BLOCK /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:56 c:0013 p:---- s:0039 b:0039 l:000038 d:000038 FINISH c:0012 p:---- s:0037 b:0037 l:000036 d:000036 CFUNC :instance\_eval c:0011 p:0017 s:0034 b:0034 l:000033 d:000033 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68 c:0010 p:0081 s:0028 b:0028 l:002110 d:001220 BLOCK /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:56 c:0009 p:---- s:0025 b:0025 l:000024 d:000024 FINISH c:0008 p:---- s:0023 b:0023 l:000022 d:000022 CFUNC :each c:0007 p:0055 s:0020 b:0020 l:002110 d:002110 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:50 c:0006 p:0023 s:0016 b:0016 l:000015 d:000015 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:42 c:0005 p:0063 s:0013 b:0013 l:000012 d:000012 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/commands/mspec-run.rb:87 c:0004 p:0098 s:0010 b:0010 l:000009 d:000009 METHOD /home/ruby/tcio/ruby/spec/mspec/lib/mspec/utils/script.rb:217 c:0003 p:0067 s:0006 b:0006 l:0007ec d:00122c EVAL spec/mspec/bin/mspec-run:8 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:0007ec d:0007ec TOP

## – Ruby level backtrace information

spec/mspec/bin/mspec-run:8:in `<main>' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/utils/script.rb:217:in `main’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/commands/mspec-run.rb:87:in  
`run' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:42:in `process’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:50:in `files' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:50:in `each’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:56:in `block in files' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68:in `protect’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68:in  
`instance_eval' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:56:in `block  
(2 levels) in files’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:56:in `load' /home/ruby/tcio/ruby/spec/rubyspec/core/array/product_spec.rb:4:in `\<top (required)\>’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/object.rb:11:in  
`describe' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:37:in `describe’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:228:in  
`process' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:228:in `each’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:228:in  
`block in process' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:199:in `process’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:199:in  
`each' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:207:in `block in process’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179:in  
`protect' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179:in `all?’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179:in  
`each' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/context.rb:179:in `block in protect’  
/home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68:in  
`protect' /home/ruby/tcio/ruby/spec/mspec/lib/mspec/runner/mspec.rb:68:in `instance\_eval’  
/home/ruby/tcio/ruby/spec/rubyspec/core/array/product\_spec.rb:31:in  
`block (4 levels) in <top (required)>' /home/ruby/tcio/ruby/spec/rubyspec/core/array/product_spec.rb:31:in `product’

## – C level backtrace information

./ruby(rb\_vm\_bugreport+0x73) [0x8158622]  
./ruby [0x818d693]  
./ruby(rb\_bug+0x36) [0x818d6ee]  
./ruby [0x80eedd7]  
[0xb7f06410]  
./ruby(rb\_ary\_entry+0x4d) [0x8166daf]  
./ruby [0x8170c17]  
./ruby [0x814d731]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x81544d8]  
./ruby [0x8152ab9]  
./ruby [0x8152c09]  
./ruby(rb\_obj\_instance\_eval+0x51) [0x8152d77]  
./ruby [0x814d731]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x815477d]  
./ruby [0x81519b5]  
./ruby(rb\_yield\_values2+0x18) [0x8151a73]  
./ruby [0x818777d]  
./ruby [0x814564d]  
./ruby [0x8154722]  
./ruby [0x815477d]  
./ruby [0x81519b5]  
./ruby(rb\_yield+0x3a) [0x815198b]  
./ruby(rb\_ary\_each+0x7c) [0x816857b]  
./ruby [0x814d747]  
./ruby [0x8150672]  
./ruby [0x8151744]  
./ruby [0x8151697]  
./ruby [0x8151e32]  
./ruby(rb\_iterate+0xd4) [0x8151c79]  
./ruby(rb\_block\_call+0x3f) [0x8151e77]  
./ruby [0x8187814]  
./ruby [0x814d747]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x815477d]  
./ruby [0x81519b5]  
./ruby(rb\_yield+0x3a) [0x815198b]  
./ruby(rb\_ary\_each+0x7c) [0x816857b]  
./ruby [0x814d747]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x815477d]  
./ruby [0x81519b5]  
./ruby(rb\_yield+0x3a) [0x815198b]  
./ruby(rb\_ary\_each+0x7c) [0x816857b]  
./ruby [0x814d747]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby(rb\_iseq\_eval+0x2b) [0x8156189]  
./ruby [0x8191265]  
./ruby [0x819146a]  
./ruby [0x814d731]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x81544d8]  
./ruby [0x8152ab9]  
./ruby [0x8152c09]  
./ruby(rb\_obj\_instance\_eval+0x51) [0x8152d77]  
./ruby [0x814d731]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby [0x81546ef]  
./ruby [0x815477d]  
./ruby [0x81519b5]  
./ruby(rb\_yield+0x3a) [0x815198b]  
./ruby(rb\_ary\_each+0x7c) [0x816857b]  
./ruby [0x814d747]  
./ruby [0x814d609]  
./ruby [0x814cbdd]  
./ruby [0x81487ca]  
./ruby [0x81559e9]  
./ruby(rb\_iseq\_eval\_main+0x2b) [0x81561c2]  
./ruby [0x805edb8]  
./ruby(ruby\_exec\_node+0x1c) [0x805eec1]  
./ruby(ruby\_run\_node+0x3b) [0x805ee95]  
./ruby(main+0x74) [0x805d908]  
/lib/i686/cmov/libc.so.6(\_\_libc\_start\_main+0xe5) [0xb7d26455]  
./ruby [0x805d801]

[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](http://www.ruby-lang.org/bugreport.html)

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 6, 2010, 3:47am UTC](https://www.ruby-forum.com/t/bug-trunk-spec-rubyspec-core-array-product-spec-rb-segv/189715/2 "2010-06-06T03:47:22Z")

</div>

e$B%A%1%C%He(B #3394 e$B$,99?7$5$l$^$7$?!#e(B (by Nobuyoshi N.)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r28184.  
Akira, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/3394](http://redmine.ruby-lang.org/issues/show/3394)
