Issue #7781 has been updated by starrychloe (Chloe S).


I also get these stack errors when I run rails -v (inside any app directory) or bundle install:

Chloe@dumbopc /cygdrive/c/Sites/testapp
$ rails -v
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems/requirement.rb:23: stack level too deep (SystemStackError)

Chloe@dumbopc /cygdrive/c/Sites/testapp
$ bundle install
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.2.3/lib/bundler/friendly_errors.rb:32: stack level too deep (SystemStackError)


----------------------------------------
Bug #7781: Ruby fails make test on Cygwin for test_io.rb.
https://bugs.ruby-lang.org/issues/7781#change-35829

Author: starrychloe (Chloe S)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p374 (2013-01-15 revision 38858) [i386-cygwin]


When compiling Ruby on Cygwin.com, it fails 'make test' for test_io.rb. 

Chloe@dumbopc ~/ruby-1.9.3-p374
$ uname -a
CYGWIN_NT-5.1 dumbopc 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin
$ ./ruby -v
ruby 1.9.3p374 (2013-01-15 revision 38858) [i386-cygwin]

$ make test
...
test_thread.rb ..................................................
#262 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#263 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#264 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#265 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#266 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#267 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#268 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#269 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#270 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
#271 test_io.rb:
       at_exit { p :foo }

       megacontent = "abc" * 12345678
       #File.open("megasrc", "w") {|f| f << megacontent }

       Thread.new { sleep rand*0.2; Process.kill(:INT, $$) }

       r1, w1 = IO.pipe
       r2, w2 = IO.pipe
       t1 = Thread.new { w1 << megacontent; w1.close }
       t2 = Thread.new { r2.read; r2.close }
       IO.copy_stream(r1, w2) rescue nil
       w2.close
       r1.close
       t1.join
       t2.join
       #=> killed by SIGKILL (signal 9) (timeout)  megacontent-copy_stream
FAIL 10/960 tests failed
uncommon.mk:478: recipe for target `yes-btest-ruby' failed
make: *** [yes-btest-ruby] Error 1



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