Bug #2727: make: *** [encdb.h] Aborted
http://redmine.ruby-lang.org/issues/show/2727

起票者: Kazuhiro NISHIYAMA
ステータス: Open, 優先度: High
カテゴリ: build
ruby -v: ruby 1.9.1p420 (2010-02-04 revision 26571) [i686-linux]

Ubuntu 9.10 の環境で ruby_1_9_1 を make すると encdb.h のところでアボートします。
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9) なので #1299 と似ている気がしますが、よくわかりませんでした。

./miniruby -I/home/kazu/wc/ruby/branches/ruby_1_9_1/lib -I.ext/common -I./- -r/home/kazu/wc/ruby/branches/ruby_1_9_1/ext/purelib.rb  /home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb -c -o encdb.h /home/kazu/wc/ruby/branches/ruby_1_9_1/template/encdb.h.tmpl /home/kazu/wc/ruby/branches/ruby_1_9_1/enc enc
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1310: [BUG] Segmentation fault
ruby 1.9.1p420 (2010-02-04 revision 26571) [i686-linux]

-- control frame ----------
c:0013 p:---- s:0060 b:0060 l:000059 d:000059 CFUNC  :catch
c:0012 p:0049 s:0056 b:0056 l:001d30 d:001024 BLOCK  /home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1310
c:0011 p:---- s:0050 b:0050 l:000049 d:000049 FINISH
c:0010 p:---- s:0048 b:0048 l:000047 d:000047 CFUNC  :catch
c:0009 p:0062 s:0044 b:0044 l:001d30 d:001d30 METHOD /home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1258
c:0008 p:0024 s:0034 b:0034 l:000033 d:000033 METHOD /home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1252
c:0007 p:0066 s:0029 b:0029 l:000c7c d:0004f8 BLOCK  /home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb:12
c:0006 p:0116 s:0026 b:0026 l:000025 d:000025 METHOD /home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:793
c:0005 p:---- s:0020 b:0020 l:000019 d:000019 FINISH
c:0004 p:---- s:0018 b:0018 l:000017 d:000017 CFUNC  :new
c:0003 p:0069 s:0015 b:0015 l:000c7c d:001ae8 EVAL   /home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb:8
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000c7c d:000c7c TOP
---------------------------
-- Ruby level backtrace information-----------------------------------------
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1310:in `catch'
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1310:in `block in parse_in_order'
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1258:in `catch'
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1258:in `parse_in_order'
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:1252:in `order!'
/home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb:12:in `block in <main>'
/home/kazu/wc/ruby/branches/ruby_1_9_1/lib/optparse.rb:793:in `initialize'
/home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb:8:in `new'
/home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb:8:in `<main>'

-- C level backtrace information -------------------------------------------
0x816a589 ./miniruby(rb_vm_bugreport+0x69) [0x816a589]
0x808674f ./miniruby [0x808674f]
0x80867ea ./miniruby(rb_bug+0x3a) [0x80867ea]
0x8111974 ./miniruby [0x8111974]
0x4001d410 [0x4001d410]
0x8158368 ./miniruby [0x8158368]
0x81586a4 ./miniruby [0x81586a4]
0x81631a6 ./miniruby [0x81631a6]
0x815e40a ./miniruby [0x815e40a]
0x81617b9 ./miniruby [0x81617b9]
0x8167f16 ./miniruby [0x8167f16]
0x8158368 ./miniruby [0x8158368]
0x81586a4 ./miniruby [0x81586a4]
0x81631a6 ./miniruby [0x81631a6]
0x815e40a ./miniruby [0x815e40a]
0x81617b9 ./miniruby [0x81617b9]
0x81637c3 ./miniruby [0x81637c3]
0x815af7e ./miniruby(rb_funcall2+0xfe) [0x815af7e]
0x8087a60 ./miniruby(rb_obj_call_init+0x50) [0x8087a60]
0x80bd48a ./miniruby(rb_class_new_instance+0x3a) [0x80bd48a]
0x8158368 ./miniruby [0x8158368]
0x81586a4 ./miniruby [0x81586a4]
0x81631a6 ./miniruby [0x81631a6]
0x815e40a ./miniruby [0x815e40a]
0x81617b9 ./miniruby [0x81617b9]
0x8161a0b ./miniruby(rb_iseq_eval_main+0xab) [0x8161a0b]
0x8088737 ./miniruby(ruby_exec_node+0xb7) [0x8088737]
0x8089d46 ./miniruby(ruby_run_node+0x56) [0x8089d46]
0x805cfde ./miniruby(main+0x7e) [0x805cfde]
0x400ccb56 /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x400ccb56]
0x805cec1 ./miniruby [0x805cec1]

[NOTE]
You may encounter a bug of Ruby interpreter. Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

make: *** [encdb.h] Aborted


gdb でちょっと調べてみた感じだと th が 0xffffffff になっていて th->errinfo で落ちているようです。

% gdb --args ./miniruby -I/home/kazu/wc/ruby/branches/ruby_1_9_1/lib -I.ext/common -I./- -r/home/kazu/wc/ruby/branches/ruby_1_9_1/ext/purelib.rb /home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb -c -o encdb.h /home/kazu/wc/ruby/branches/ruby_1_9_1/template/encdb.h.tmpl /home/kazu/wc/ruby/branches/ruby_1_9_1/enc enc
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/kazu/build/ruby/ruby_1_9_1/ruby/miniruby...done.
(gdb) r
Starting program: /home/kazu/build/ruby/ruby_1_9_1/ruby/miniruby -I/home/kazu/wc/ruby/branches/ruby_1_9_1/lib -I.ext/common -I./- -r/home/kazu/wc/ruby/branches/ruby_1_9_1/ext/purelib.rb /home/kazu/wc/ruby/branches/ruby_1_9_1/tool/generic_erb.rb -c -o encdb.h /home/kazu/wc/ruby/branches/ruby_1_9_1/template/encdb.h.tmpl /home/kazu/wc/ruby/branches/ruby_1_9_1/enc enc
[Thread debugging using libthread_db enabled]
[New Thread 0xb7c00b70 (LWP 14843)]

Program received signal SIGSEGV, Segmentation fault.
0x08167f46 in rb_f_catch (argc=1, argv=0xb7c010ec)
    at /home/kazu/wc/ruby/branches/ruby_1_9_1/vm_eval.c:1258
1258        else if (state == TAG_THROW && RNODE(th->errinfo)->u1.value == tag) {
(gdb) p state == TAG_THROW
$1 = 1
(gdb) p th
$2 = (rb_thread_t *) 0xffffffff
(gdb)


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