From: Tanaka Akira Date: 2007-11-30T17:45:23+09:00 Subject: [ruby-dev:32404] SEGV on child process by fork on GC.stress. GC.stress = true 下で fork すると子プロセスが SEGV します。 % ./ruby -ve ' GC.stress = true pid = fork {} Process.wait pid p $? ' ruby 1.9.0 (2007-11-30 patchlevel 0) [i686-linux] # % gdb ruby core.26804 GNU gdb 6.4.90-debian Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1". warning: Can't read pathname for load map: 入力/出力エラーです. Reading symbols from /lib/tls/i686/cmov/libpthread.so.0...done. Loaded symbols for /lib/tls/i686/cmov/libpthread.so.0 Reading symbols from /lib/tls/i686/cmov/librt.so.1...done. Loaded symbols for /lib/tls/i686/cmov/librt.so.1 Reading symbols from /lib/tls/i686/cmov/libdl.so.2...done. Loaded symbols for /lib/tls/i686/cmov/libdl.so.2 Reading symbols from /lib/tls/i686/cmov/libcrypt.so.1...done. Loaded symbols for /lib/tls/i686/cmov/libcrypt.so.1 Reading symbols from /lib/tls/i686/cmov/libm.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libm.so.6 Reading symbols from /lib/tls/i686/cmov/libc.so.6...done. Loaded symbols for /lib/tls/i686/cmov/libc.so.6 Reading symbols from /lib/ld-linux.so.2...done. Loaded symbols for /lib/ld-linux.so.2 Core was generated by `./ruby -ve GC.stress = true pid = fork {} Process.wait pid p $? '. Program terminated with signal 11, Segmentation fault. #0 vm_get_sourceline (cfp=0xb7d78f60) at vm.c:729 729 line_no = iseq->insn_info_table[i - 1].line_no; (gdb) bt #0 vm_get_sourceline (cfp=0xb7d78f60) at vm.c:729 #1 0x0805a2b1 in rb_sourceline () at eval_error.ci:27 #2 0x081065d7 in rb_bug (fmt=0x8131c1d "Segmentation fault") at error.c:225 #3 0x080ba4a0 in sigsegv (sig=11) at signal.c:535 #4 0xb7f2f420 in ?? () #5 0x0000000b in ?? () #6 0x00000033 in ?? () #7 0x00000000 in ?? () (gdb) p iseq $1 = (rb_iseq_t *) 0xb7d78f54 (gdb) p iseq->insn_info_table $2 = (struct iseq_insn_info_entry *) 0x0 (gdb) -- [田中 哲][たなか あきら][Tanaka Akira]