[ruby-core:68044] Re: [ruby-trunk - Bug #10768] [Open] segfault during ruby_vm_destruct() in cont_free()

From: Eric Wong <normalperson@...>
Date: 2015-02-06 09:52:37 UTC
List: ruby-core #68044
r49474 (gc.c: ensure GC state is consistent during VM shutdown)
introduces a failure for me in test/ruby/test_io.rb.
Reverting this commit solves the problem for me on one of my
x86-64 (Debian 7.0) systems (could not reproduce the issue on
32-bit x86 nor some of my other, similar systems)

  1) Error:
TestIO#test_io_select_with_many_files:
ArgumentError: invalid byte sequence in UTF-8
    /home/ew/ruby/test/lib/envutil.rb:308:in `gsub'
    /home/ew/ruby/test/lib/envutil.rb:308:in `block (2 levels) in <module:A=
ssertions>'

This is because bugreporter spew is dumping junk, so
I dumped the output via:

--- a/test/lib/envutil.rb
+++ b/test/lib/envutil.rb
@@ -286,6 +286,7 @@ module Test
       FailDesc =3D proc do |status, message =3D "", out =3D ""|
         pid =3D status.pid
         now =3D Time.now
+        $stderr.write "#{out}\n"
         faildesc =3D proc do
           if signo =3D status.termsig
             signame =3D Signal.signame(signo)


To get the following output:

Using built-in specs.
COLLECT_GCC=3D/usr/bin/gcc-4.7.real
COLLECT_LTO_WRAPPER=3D/usr/lib/gcc/x86_64-linux-gnu/4.7/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion=3D'Debian 4.7.2-5' -=
-with-bugurl=3Dfile:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=
=3Dc,c++,go,fortran,objc,obj-c++ --prefix=3D/usr --program-suffix=3D-4.7 --=
enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=3D/u=
sr/lib --without-included-gettext --enable-threads=3Dposix --with-gxx-inclu=
de-dir=3D/usr/include/c++/4.7 --libdir=3D/usr/lib --enable-nls --with-sysro=
ot=3D/ --enable-clocale=3Dgnu --enable-libstdcxx-debug --enable-libstdcxx-t=
ime=3Dyes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --wit=
h-arch-32=3Di586 --with-tune=3Dgeneric --enable-checking=3Drelease --build=
=3Dx86_64-linux-gnu --host=3Dx86_64-linux-gnu --target=3Dx86_64-linux-gnu
Thread model: posix
gcc version 4.7.2 (Debian 4.7.2-5)=20

p:Z=1D++: [BUG] rb_gc_mark(): 0x002b2b1dda6b00 is T_NONE
ruby 2.3.0dev (2015-02-06 starla 49516) [x86_64-linux]

-- Control frame information -----------------------------------------------
c:0001 p:5933022005200 s:0002 E:000610 TOP    [FINISH]


-- C level backtrace information -------------------------------------------
/home/ew/ruby/ruby(rb_vm_bugreport+0x550) [0x2b2b1befd6e0] vm_dump.c:693
/home/ew/ruby/ruby(rb_bug+0xca) [0x2b2b1bf6508a] error.c:409
/home/ew/ruby/ruby(gc_mark_children+0x65a) [0x2b2b1bdd556a] gc.c:4252
/home/ew/ruby/ruby(gc_marks_rest+0x71) [0x2b2b1bdd83d1] gc.c:4280
/home/ew/ruby/ruby(gc_rest.part.64+0x6a) [0x2b2b1bdd924a] gc.c:5974
/home/ew/ruby/ruby(rb_gc_call_finalizer_at_exit+0x237) [0x2b2b1bddb7d7] gc.=
c:5967
/home/ew/ruby/ruby(ruby_cleanup+0x4b7) [0x2b2b1bdbc727] eval.c:129
/home/ew/ruby/ruby(ruby_run_node+0x4e) [0x2b2b1bdbca1e] eval.c:310
/home/ew/ruby/ruby(main+0x4b) [0x2b2b1bdb88db] parse.y:5350

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

* Loaded script: -

* Loaded features:

    0 enumerator.so
    1 rational.so
    2 complex.so
    3 /home/ew/ruby/.ext/x86_64-linux/enc/encdb.so
    4 /home/ew/ruby/.ext/x86_64-linux/enc/trans/transdb.so
    5 /home/ew/ruby/lib/unicode_normalize.rb
    6 /home/ew/ruby/rbconfig.rb
    7 thread.rb
    8 /home/ew/ruby/.ext/x86_64-linux/thread.so
    9 /home/ew/ruby/lib/rubygems/compatibility.rb
   10 /home/ew/ruby/lib/rubygems/defaults.rb
   11 /home/ew/ruby/lib/rubygems/deprecate.rb
   12 /home/ew/ruby/lib/rubygems/errors.rb
   13 /home/ew/ruby/lib/rubygems/version.rb
   14 /home/ew/ruby/lib/rubygems/requirement.rb
   15 /home/ew/ruby/lib/rubygems/platform.rb
   16 /home/ew/ruby/lib/rubygems/basic_specification.rb
   17 /home/ew/ruby/lib/rubygems/stub_specification.rb
   18 /home/ew/ruby/lib/rubygems/util/stringio.rb
   19 /home/ew/ruby/lib/rubygems/specification.rb
   20 /home/ew/ruby/lib/rubygems/exceptions.rb
   21 /home/ew/ruby/lib/rubygems/core_ext/kernel_gem.rb
   22 /home/ew/ruby/lib/monitor.rb
   23 /home/ew/ruby/lib/rubygems/core_ext/kernel_require.rb
   24 /home/ew/ruby/lib/rubygems.rb
   25 /home/ew/ruby/lib/delegate.rb
   26 /home/ew/ruby/.ext/x86_64-linux/etc.so
   27 /home/ew/ruby/lib/fileutils.rb
   28 /home/ew/ruby/lib/tmpdir.rb
   29 /home/ew/ruby/lib/tempfile.rb

* Process memory map:

2b2b1bd91000-2b2b1c041000 r-xp 00000000 08:01 1494973                    /h=
ome/ew/ruby/ruby
2b2b1c041000-2b2b1c043000 rw-p 00000000 00:00 0=20
2b2b1c043000-2b2b1c044000 ---p 00000000 00:00 0=20
2b2b1c044000-2b2b1c048000 rw-p 00000000 00:00 0                          [s=
tack:3577]
2b2b1c05c000-2b2b1c160000 rw-p 00000000 00:00 0=20
2b2b1c240000-2b2b1c246000 rw-p 002af000 08:01 1494973                    /h=
ome/ew/ruby/ruby
2b2b1c246000-2b2b1c258000 rw-p 00000000 00:00 0=20
2b2b1c258000-2b2b1c278000 r-xp 00000000 08:01 4697265                    /l=
ib/x86_64-linux-gnu/ld-2.13.so
2b2b1c278000-2b2b1c379000 rw-p 00000000 00:00 0=20
2b2b1c477000-2b2b1c478000 r--p 0001f000 08:01 4697265                    /l=
ib/x86_64-linux-gnu/ld-2.13.so
2b2b1c478000-2b2b1c479000 rw-p 00020000 08:01 4697265                    /l=
ib/x86_64-linux-gnu/ld-2.13.so
2b2b1c479000-2b2b1c47a000 rw-p 00000000 00:00 0=20
2b2b1c47a000-2b2b1c491000 r-xp 00000000 08:01 4697270                    /l=
ib/x86_64-linux-gnu/libpthread-2.13.so
2b2b1c491000-2b2b1c690000 ---p 00017000 08:01 4697270                    /l=
ib/x86_64-linux-gnu/libpthread-2.13.so
2b2b1c690000-2b2b1c691000 r--p 00016000 08:01 4697270                    /l=
ib/x86_64-linux-gnu/libpthread-2.13.so
2b2b1c691000-2b2b1c692000 rw-p 00017000 08:01 4697270                    /l=
ib/x86_64-linux-gnu/libpthread-2.13.so
2b2b1c692000-2b2b1c696000 rw-p 00000000 00:00 0=20
2b2b1c696000-2b2b1c69d000 r-xp 00000000 08:01 4697261                    /l=
ib/x86_64-linux-gnu/librt-2.13.so
2b2b1c69d000-2b2b1c89c000 ---p 00007000 08:01 4697261                    /l=
ib/x86_64-linux-gnu/librt-2.13.so
2b2b1c89c000-2b2b1c89d000 r--p 00006000 08:01 4697261                    /l=
ib/x86_64-linux-gnu/librt-2.13.so
2b2b1c89d000-2b2b1c89e000 rw-p 00007000 08:01 4697261                    /l=
ib/x86_64-linux-gnu/librt-2.13.so
2b2b1c89e000-2b2b1c905000 r-xp 00000000 08:01 786903                     /u=
sr/lib/x86_64-linux-gnu/libgmp.so.10.0.5
2b2b1c905000-2b2b1cb05000 ---p 00067000 08:01 786903                     /u=
sr/lib/x86_64-linux-gnu/libgmp.so.10.0.5
2b2b1cb05000-2b2b1cb0d000 rw-p 00067000 08:01 786903                     /u=
sr/lib/x86_64-linux-gnu/libgmp.so.10.0.5
2b2b1cb0d000-2b2b1cb0f000 r-xp 00000000 08:01 4697262                    /l=
ib/x86_64-linux-gnu/libdl-2.13.so
2b2b1cb0f000-2b2b1cd0f000 ---p 00002000 08:01 4697262                    /l=
ib/x86_64-linux-gnu/libdl-2.13.so
2b2b1cd0f000-2b2b1cd10000 r--p 00002000 08:01 4697262                    /l=
ib/x86_64-linux-gnu/libdl-2.13.so
2b2b1cd10000-2b2b1cd11000 rw-p 00003000 08:01 4697262                    /l=
ib/x86_64-linux-gnu/libdl-2.13.so
2b2b1cd11000-2b2b1cd19000 r-xp 00000000 08:01 4697264                    /l=
ib/x86_64-linux-gnu/libcrypt-2.13.so
2b2b1cd19000-2b2b1cf18000 ---p 00008000 08:01 4697264                    /l=
ib/x86_64-linux-gnu/libcrypt-2.13.so
2b2b1cf18000-2b2b1cf19000 r--p 00007000 08:01 4697264                    /l=
ib/x86_64-linux-gnu/libcrypt-2.13.so
2b2b1cf19000-2b2b1cf1a000 rw-p 00008000 08:01 4697264                    /l=
ib/x86_64-linux-gnu/libcrypt-2.13.so
2b2b1cf1a000-2b2b1cf48000 rw-p 00000000 00:00 0=20
2b2b1cf48000-2b2b1cfc9000 r-xp 00000000 08:01 4697257                    /l=
ib/x86_64-linux-gnu/libm-2.13.so
2b2b1cfc9000-2b2b1d1c8000 ---p 00081000 08:01 4697257                    /l=
ib/x86_64-linux-gnu/libm-2.13.so
2b2b1d1c8000-2b2b1d1c9000 r--p 00080000 08:01 4697257                    /l=
ib/x86_64-linux-gnu/libm-2.13.so
2b2b1d1c9000-2b2b1d1ca000 rw-p 00081000 08:01 4697257                    /l=
ib/x86_64-linux-gnu/libm-2.13.so
2b2b1d1ca000-2b2b1d34c000 r-xp 00000000 08:01 4697260                    /l=
ib/x86_64-linux-gnu/libc-2.13.so
2b2b1d34c000-2b2b1d54c000 ---p 00182000 08:01 4697260                    /l=
ib/x86_64-linux-gnu/libc-2.13.so
2b2b1d54c000-2b2b1d550000 r--p 00182000 08:01 4697260                    /l=
ib/x86_64-linux-gnu/libc-2.13.so
2b2b1d550000-2b2b1d551000 rw-p 00186000 08:01 4697260                    /l=
ib/x86_64-linux-gnu/libc-2.13.so
2b2b1d551000-2b2b1d656000 rw-p 00000000 00:00 0=20
2b2b1d656000-2b2b1d658000 r-xp 00000000 08:01 1491407                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/encdb.so
2b2b1d658000-2b2b1d857000 ---p 00002000 08:01 1491407                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/encdb.so
2b2b1d857000-2b2b1d858000 rw-p 00001000 08:01 1491407                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/encdb.so
2b2b1d858000-2b2b1d85a000 r-xp 00000000 08:01 1495011                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/trans/transdb.so
2b2b1d85a000-2b2b1da5a000 ---p 00002000 08:01 1495011                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/trans/transdb.so
2b2b1da5a000-2b2b1da5b000 rw-p 00002000 08:01 1495011                    /h=
ome/ew/ruby/.ext/x86_64-linux/enc/trans/transdb.so
2b2b1da5b000-2b2b1db5b000 rw-p 00000000 00:00 0=20
2b2b1db5b000-2b2b1db5e000 r-xp 00000000 08:01 1494964                    /h=
ome/ew/ruby/.ext/x86_64-linux/thread.so
2b2b1db5e000-2b2b1dd5e000 ---p 00003000 08:01 1494964                    /h=
ome/ew/ruby/.ext/x86_64-linux/thread.so
2b2b1dd5e000-2b2b1dd5f000 rw-p 00003000 08:01 1494964                    /h=
ome/ew/ruby/.ext/x86_64-linux/thread.so
2b2b1dd5f000-2b2b1df5f000 rw-p 00000000 00:00 0=20
2b2b1df5f000-2b2b1df65000 r-xp 00000000 08:01 1494885                    /h=
ome/ew/ruby/.ext/x86_64-linux/etc.so
2b2b1df65000-2b2b1e164000 ---p 00006000 08:01 1494885                    /h=
ome/ew/ruby/.ext/x86_64-linux/etc.so
2b2b1e164000-2b2b1e165000 rw-p 00005000 08:01 1494885                    /h=
ome/ew/ruby/.ext/x86_64-linux/etc.so
2b2b1e165000-2b2b1e265000 rw-p 00000000 00:00 0=20
2b2b1e265000-2b2b1e27a000 r-xp 00000000 08:01 1515685                    /l=
ib/x86_64-linux-gnu/libgcc_s.so.1
2b2b1e27a000-2b2b1e47a000 ---p 00015000 08:01 1515685                    /l=
ib/x86_64-linux-gnu/libgcc_s.so.1
2b2b1e47a000-2b2b1e47b000 rw-p 00015000 08:01 1515685                    /l=
ib/x86_64-linux-gnu/libgcc_s.so.1
2b2b1e47b000-2b2b1f262000 r--s 00000000 08:01 1494973                    /h=
ome/ew/ruby/ruby
2b2b1f262000-2b2b1f3ea000 r--s 00000000 08:01 4697260                    /l=
ib/x86_64-linux-gnu/libc-2.13.so
7fff6f825000-7fff6f846000 rw-p 00000000 00:00 0                          [s=
tack]
7fff6f9fc000-7fff6f9fd000 r-xp 00000000 00:00 0                          [v=
dso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [v=
syscall]


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




make: *** [yes-test-all] Error 1

In This Thread

Prev Next