https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2011-06-26T15:10:40Z
Ruby Issue Tracking System
Ruby master - Bug #4929: test/dl/test_func.rb was crashed on Mac
https://bugs.ruby-lang.org/issues/4929?journal_id=18299
2011-06-26T15:10:40Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul></ul><p>This issue is only happend w/ --gc-stress.</p>
<p>i.e. seems similar with Bug#4927.</p>
Ruby master - Bug #4929: test/dl/test_func.rb was crashed on Mac
https://bugs.ruby-lang.org/issues/4929?journal_id=18939
2011-07-08T21:55:15Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li></ul><p>Hm,</p>
<p>Today's trunk don't reproduce this issue. I'll close this ticket.<br>
Thanks guys!</p>
Ruby master - Bug #4929: test/dl/test_func.rb was crashed on Mac
https://bugs.ruby-lang.org/issues/4929?journal_id=19755
2011-07-27T12:22:32Z
nagachika (Tomoyuki Chikanaga)
nagachika00@gmail.com
<ul><li><strong>Status</strong> changed from <i>Closed</i> to <i>Open</i></li></ul><p>Hi,</p>
<p>I've found that a similar problem remains at trunk(r32672) yet.<br>
In my environment (Ubuntu 10.04.03), make test-all TESTS="-vq dl/test_func.rb -n test_qsort1.rb" cause SEGV.<br>
It seems that CPtr.new in callback procedure cause SIGSEGV.<br>
I'll re-open this ticket.</p>
<p>$ cat bug4929.rb<br>
require "dl/func"</p>
<p>include DL</p>
<p>GC.stress = true<br>
libc = dlopen("/lib/libc.so.6")<br>
cb = Function.new(CFunc.new(0, TYPE_INT, 'qsort'),<br>
[TYPE_VOIDP, TYPE_VOIDP]){|x,y|<br>
CPtr.new(x)[0] <=> CPtr.new(y)[0]<br>
}<br>
qsort = Function.new(CFunc.new(libc['qsort'], TYPE_VOID, 'qsort'),<br>
[TYPE_VOIDP, TYPE_INT, TYPE_INT, TYPE_VOIDP])<br>
buff = "9341"<br>
qsort.call(buff, buff.size, 1, cb)</p>
<p>$ ./ruby-trunk bug4929.rb<br>
bug4929.rb:9: [BUG] Segmentation fault<br>
ruby 1.9.4dev (2011-07-26 trunk 32672) [i686-linux]</p>
<p>-- Control frame information -----------------------------------------------<br>
c:0008 p:---- s:0035 b:0035 l:000034 d:000034 CFUNC :[]<br>
c:0007 p:0022 s:0031 b:0031 l:001924 d:000030 LAMBDA bug4929.rb:9<br>
c:0006 p:---- s:0027 b:0027 l:000026 d:000026 FINISH<br>
c:0005 p:---- s:0025 b:0025 l:000024 d:000024 CFUNC :call<br>
c:0004 p:0059 s:0018 b:0018 l:000017 d:000017 METHOD /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/func.rb:55<br>
c:0003 p:0227 s:0010 b:0010 l:001924 d:001b2c EVAL bug4929.rb:14<br>
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH<br>
c:0001 p:0000 s:0002 b:0002 l:001924 d:001924 TOP</p>
<p>-- Ruby level backtrace information ----------------------------------------<br>
bug4929.rb:14:in <code><main>' /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/func.rb:55:in </code>call'<br>
/home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/func.rb:55:in <code>call' bug4929.rb:9:in </code>block in '<br>
bug4929.rb:9:in `[]'</p>
<p>-- C level backtrace information -------------------------------------------<br>
./ruby-trunk() [0x816850d] ../ruby/vm_dump.c:796<br>
./ruby-trunk() [0x81ad6a9] ../ruby/error.c:265<br>
./ruby-trunk(rb_bug+0x33) [0x81ad763] ../ruby/error.c:284<br>
./ruby-trunk() [0x80f73e0] ../ruby/signal.c:610<br>
[0x5c1410]<br>
./ruby-trunk() [0x8153795] ../ruby/vm_insnhelper.c:317<br>
./ruby-trunk() [0x815ae5a] ../ruby/vm_insnhelper.c:404<br>
./ruby-trunk() [0x8160b2e] ../ruby/insns.def:1979<br>
./ruby-trunk() [0x8165538] ../ruby/vm.c:1180<br>
./ruby-trunk() [0x8158536] ../ruby/vm.c:637<br>
./ruby-trunk() [0x81585de] ../ruby/vm_insnhelper.c:429<br>
./ruby-trunk() [0x815884b] ../ruby/vm_eval.c:104<br>
/home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so(callback+0x1ea) [0x5ea85a] ../../../ruby/ext/fiddle/closure.c:101<br>
/usr/lib/libffi.so.5(+0x4316) [0xa09316]<br>
/usr/lib/libffi.so.5(+0x46fa) [0xa096fa]<br>
/lib/libc.so.6(+0x2e390) [0x336390] msort.c:142<br>
/lib/libc.so.6(+0x2e25d) [0x33625d] msort.c:53<br>
/lib/libc.so.6(qsort_r+0x239) [0x3367f9] msort.c:294<br>
/lib/libc.so.6(qsort+0x2e) [0x3368fe] msort.c:304<br>
/usr/lib/libffi.so.5(ffi_call_SYSV+0x17) [0xa0963f]<br>
/usr/lib/libffi.so.5(ffi_call+0x6f) [0xa0946f]<br>
/home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so(+0x1c35) [0x5e9c35] ../../../ruby/ext/fiddle/function.c:125<br>
./ruby-trunk() [0x8153795] ../ruby/vm_insnhelper.c:317<br>
./ruby-trunk() [0x815ae5a] ../ruby/vm_insnhelper.c:404<br>
./ruby-trunk() [0x8162bc2] ../ruby/insns.def:1048<br>
./ruby-trunk() [0x8165538] ../ruby/vm.c:1180<br>
./ruby-trunk(rb_iseq_eval_main+0x1ce) [0x816591e] ../ruby/vm.c:1421<br>
./ruby-trunk() [0x805c012] ../ruby/eval.c:204<br>
./ruby-trunk(ruby_run_node+0x32) [0x805deb2] ../ruby/eval.c:251<br>
./ruby-trunk() [0x805b20a] ../ruby/main.c:38<br>
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x158bd6] libc-start.c:232<br>
./ruby-trunk() [0x805b111]</p>
<p>-- Other runtime information -----------------------------------------------</p>
<ul>
<li>
<p>Loaded script: bug4929.rb</p>
</li>
<li>
<p>Loaded features:</p>
<p>0 enumerator.so<br>
1 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/encdb.so<br>
2 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/trans/transdb.so<br>
3 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/rubygems/defaults.rb<br>
4 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/rbconfig.rb<br>
5 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/rubygems/deprecate.rb<br>
6 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/rubygems/exceptions.rb<br>
7 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/rubygems/custom_require.rb<br>
8 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/rubygems.rb<br>
9 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/dl.so<br>
10 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so<br>
11 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/fiddle/function.rb<br>
12 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/fiddle/closure.rb<br>
13 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/fiddle.rb<br>
14 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl.rb<br>
15 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/thread.rb<br>
16 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/callback.rb<br>
17 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/stack.rb<br>
18 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/value.rb<br>
19 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/dl/func.rb</p>
</li>
<li>
<p>Process memory map:</p>
</li>
</ul>
<p>00110000-00119000 r-xp 00000000 08:01 1900550 /lib/tls/i686/cmov/libcrypt-2.11.1.so<br>
00119000-0011a000 r--p 00008000 08:01 1900550 /lib/tls/i686/cmov/libcrypt-2.11.1.so<br>
0011a000-0011b000 rw-p 00009000 08:01 1900550 /lib/tls/i686/cmov/libcrypt-2.11.1.so<br>
0011b000-00142000 rw-p 00000000 00:00 0<br>
00142000-00295000 r-xp 00000000 08:01 1900548 /lib/tls/i686/cmov/libc-2.11.1.so<br>
00295000-00296000 ---p 00153000 08:01 1900548 /lib/tls/i686/cmov/libc-2.11.1.so<br>
00296000-00298000 r--p 00153000 08:01 1900548 /lib/tls/i686/cmov/libc-2.11.1.so<br>
00298000-00299000 rw-p 00155000 08:01 1900548 /lib/tls/i686/cmov/libc-2.11.1.so<br>
00299000-0029c000 rw-p 00000000 00:00 0<br>
00304000-00306000 r-xp 00000000 08:01 715438 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/encdb.so<br>
00306000-00307000 r--p 00001000 08:01 715438 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/encdb.so<br>
00307000-00308000 rw-p 00002000 08:01 715438 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/encdb.so<br>
00308000-0044a000 r-xp 00000000 08:01 1884264 /lib/libc-2.11.1.so<br>
0044a000-0044b000 ---p 00142000 08:01 1884264 /lib/libc-2.11.1.so<br>
0044b000-0044d000 r--p 00142000 08:01 1884264 /lib/libc-2.11.1.so<br>
0044d000-0044e000 rw-p 00144000 08:01 1884264 /lib/libc-2.11.1.so<br>
0044e000-00451000 rw-p 00000000 00:00 0<br>
0046f000-00471000 r-xp 00000000 08:01 762073 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/trans/transdb.so<br>
00471000-00472000 r--p 00001000 08:01 762073 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/trans/transdb.so<br>
00472000-00473000 rw-p 00002000 08:01 762073 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/enc/trans/transdb.so<br>
005c1000-005c2000 r-xp 00000000 00:00 0 [vdso]<br>
005e8000-005eb000 r-xp 00000000 08:01 715461 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so<br>
005eb000-005ec000 r--p 00002000 08:01 715461 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so<br>
005ec000-005ed000 rw-p 00003000 08:01 715461 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/fiddle.so<br>
00697000-006b4000 r-xp 00000000 08:01 1884621 /lib/libgcc_s.so.1<br>
006b4000-006b5000 r--p 0001c000 08:01 1884621 /lib/libgcc_s.so.1<br>
006b5000-006b6000 rw-p 0001d000 08:01 1884621 /lib/libgcc_s.so.1<br>
0082c000-00850000 r-xp 00000000 08:01 1900552 /lib/tls/i686/cmov/libm-2.11.1.so<br>
00850000-00851000 r--p 00023000 08:01 1900552 /lib/tls/i686/cmov/libm-2.11.1.so<br>
00851000-00852000 rw-p 00024000 08:01 1900552 /lib/tls/i686/cmov/libm-2.11.1.so<br>
00908000-0090a000 r-xp 00000000 08:01 1900551 /lib/tls/i686/cmov/libdl-2.11.1.so<br>
0090a000-0090b000 r--p 00001000 08:01 1900551 /lib/tls/i686/cmov/libdl-2.11.1.so<br>
0090b000-0090c000 rw-p 00002000 08:01 1900551 /lib/tls/i686/cmov/libdl-2.11.1.so<br>
009e7000-009ee000 r-xp 00000000 08:01 1900564 /lib/tls/i686/cmov/librt-2.11.1.so<br>
009ee000-009ef000 r--p 00006000 08:01 1900564 /lib/tls/i686/cmov/librt-2.11.1.so<br>
009ef000-009f0000 rw-p 00007000 08:01 1900564 /lib/tls/i686/cmov/librt-2.11.1.so<br>
00a05000-00a0a000 r-xp 00000000 08:01 2154925 /usr/lib/libffi.so.5.0.10<br>
00a0a000-00a0b000 ---p 00005000 08:01 2154925 /usr/lib/libffi.so.5.0.10<br>
00a0b000-00a0c000 r--p 00005000 08:01 2154925 /usr/lib/libffi.so.5.0.10<br>
00a0c000-00a0d000 rw-p 00006000 08:01 2154925 /usr/lib/libffi.so.5.0.10<br>
00bea000-00bff000 r-xp 00000000 08:01 1900562 /lib/tls/i686/cmov/libpthread-2.11.1.so<br>
00bff000-00c00000 r--p 00014000 08:01 1900562 /lib/tls/i686/cmov/libpthread-2.11.1.so<br>
00c00000-00c01000 rw-p 00015000 08:01 1900562 /lib/tls/i686/cmov/libpthread-2.11.1.so<br>
00c01000-00c03000 rw-p 00000000 00:00 0<br>
00e42000-00e52000 r-xp 00000000 08:01 715466 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/dl.so<br>
00e52000-00e53000 r--p 0000f000 08:01 715466 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/dl.so<br>
00e53000-00e54000 rw-p 00010000 08:01 715466 /home/chikanaga/opt/ruby-trunk/lib/ruby/1.9.1/i686-linux/dl.so<br>
00f0e000-00f29000 r-xp 00000000 08:01 1884259 /lib/ld-2.11.1.so<br>
00f29000-00f2a000 r--p 0001a000 08:01 1884259 /lib/ld-2.11.1.so<br>
00f2a000-00f2b000 rw-p 0001b000 08:01 1884259 /lib/ld-2.11.1.so<br>
08048000-08229000 r-xp 00000000 08:01 937708 /home/chikanaga/opt/ruby-trunk/src/build/ruby-trunk<br>
08229000-0822a000 r--p 001e0000 08:01 937708 /home/chikanaga/opt/ruby-trunk/src/build/ruby-trunk<br>
0822a000-0822b000 rw-p 001e1000 08:01 937708 /home/chikanaga/opt/ruby-trunk/src/build/ruby-trunk<br>
0822b000-0823b000 rw-p 00000000 00:00 0<br>
09968000-09b9d000 rw-p 00000000 00:00 0 [heap]<br>
b77be000-b783f000 rw-p 00000000 00:00 0<br>
b783f000-b78c0000 r--p 00000000 08:01 2203743 /usr/lib/locale/ja_JP.utf8/LC_CTYPE<br>
b78c0000-b78c3000 rw-p 00000000 00:00 0<br>
b78c8000-b78c9000 rw-p 00000000 00:00 0<br>
b78c9000-b78ca000 r-xp 00000000 00:00 0<br>
b78ca000-b78cb000 rw-p 00000000 00:00 0<br>
b78cb000-b78cc000 ---p 00000000 00:00 0<br>
b78cc000-b78cf000 rw-p 00000000 00:00 0<br>
b78cf000-b78d6000 r--s 00000000 08:01 2173072 /usr/lib/gconv/gconv-modules.cache<br>
b78d6000-b78d8000 rw-p 00000000 00:00 0<br>
bf90a000-bf91f000 rw-p 00000000 00:00 0 [stack]</p>
<p>[NOTE]<br>
You may have encountered a bug in the Ruby interpreter or extension libraries.<br>
Bug reports are welcome.<br>
For details: <a href="http://www.ruby-lang.org/bugreport.html" class="external">http://www.ruby-lang.org/bugreport.html</a></p>
Ruby master - Bug #4929: test/dl/test_func.rb was crashed on Mac
https://bugs.ruby-lang.org/issues/4929?journal_id=19790
2011-07-28T02:15:11Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r32712.<br>
Motohiro, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<ul>
<li>ext/dl/cfunc.c (dlcfunc_mark), ext/dl/cptr.c (dlptr_mark):<br>
workaround to mark wrapped object. this is not a true fix,<br>
because [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: test/dl/test_func.rb was crashed on Mac (Closed)" href="https://bugs.ruby-lang.org/issues/4929">#4929</a>] is caused by the interface design of DL.</li>
</ul>