[ruby-dev:40339] Re: [ruby-cvs:33760] Ruby:r26545 (trunk): Wed Feb 3 10:12:09 2010 Aaron Patterson <tenderlove@ruby-lang.org>
From:
Tanaka Akira <akr@...>
Date:
2010-02-07 05:18:52 UTC
List:
ruby-dev #40339
2010年2月3日21:07 KOSAKI Motohiro <kosaki.motohiro@gmail.com>: > > すいません、これってテスト環境は何でしょうか? > Linux on x86_64ではtest-allの失敗が増えているように見えるのですが。 i686-linux でも失敗することがあるようです。 boron% ./ruby -v test/runner.rb dl ruby 1.9.2dev (2010-02-07 trunk 26611) [i686-linux] /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/lib/ruby/1.9.1/dl/cparser.rb:42: warning: character class has duplicated range: /^([\d\w@\*_\s]+)\(([\d\w\*_\s\,\[\]]*)\)$/ /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/lib/ruby/1.9.1/dl/import.rb:164: warning: method redefined; discarding old qsort_callback /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_import.rb:20: warning: previous definition of qsort_callback was here Loaded suite test/runner Started .............................................F....................................................................F.. Finished in 0.045032 seconds. 1) Failure: test_char(DL::TestClosure) [/home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_closure.rb:100]: <60> expected but was <137316412>. 2) Failure: test_unsigned_result(DL::TestImport) [/home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_import.rb:59]: <2147483649> expected but was <-2147483647>. 117 tests, 209 assertions, 2 failures, 0 errors, 0 skips zsh: exit 1 ./ruby -v test/runner.rb dl とりあえず valgrind をかけるといろいろ出てくるようです。 boron% valgrind ./ruby -v test/runner.rb dl ==25110== Memcheck, a memory error detector. ==25110== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al. ==25110== Using LibVEX rev 1658, a library for dynamic binary translation. ==25110== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP. ==25110== Using valgrind-3.2.1-Debian, a dynamic binary instrumentation framework. ==25110== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al. ==25110== For more details, rerun with: -v ==25110== ==25348== Thread 2: ==25348== Conditional jump or move depends on uninitialised value(s) ==25348== at 0x40270CC: __pthread_manager (manager.c:128) ==25348== by 0x41977F9: clone (clone.S:119) ==25348== ==25348== Syscall param clone(child_tidptr) contains uninitialised byte(s) ==25348== at 0x41977EC: clone (clone.S:100) ==25348== by 0x41977F9: clone (clone.S:119) ruby 1.9.2dev (2010-02-07 trunk 26611) [i686-linux] /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/lib/ruby/1.9.1/dl/cparser.rb:42: warning: character class has duplicated range: /^([\d\w@\*_\s]+)\(([\d\w\*_\s\,\[\]]*)\)$/ /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/lib/ruby/1.9.1/dl/import.rb:164: warning: method redefined; discarding old qsort_callback /home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_import.rb:20: warning: previous definition of qsort_callback was here Loaded suite test/runner Started .............................................==25110== ==25110== Thread 1: ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x471245C: rb_dlfunction_call (function.c:160) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812B162: rb_yield (vm.c:586) ==25110== by 0x8138127: rb_ary_each (array.c:1402) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x81248E3: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812B162: rb_yield (vm.c:586) ==25110== by 0x8138127: rb_ary_each (array.c:1402) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812B162: rb_yield (vm.c:586) ==25110== by 0x8138127: rb_ary_each (array.c:1402) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x8125C18: vm_exec_core (vm_insnhelper.c:1622) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812B162: rb_yield (vm.c:586) ==25110== by 0x8138127: rb_ary_each (array.c:1402) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812B162: rb_yield (vm.c:586) ==25110== by 0x8138127: rb_ary_each (array.c:1402) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x8060C5C: rb_obj_id (gc.c:2820) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x81248E3: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x8067E51: rb_hash_aset (hash.c:1039) ==25110== by 0x811B0D1: call_cfunc (vm_insnhelper.c:299) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x80DE5AD: st_insert (st.c:460) ==25110== by 0x8067E80: rb_hash_aset (hash.c:1043) ==25110== by 0x811B0D1: call_cfunc (vm_insnhelper.c:299) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x80DE619: st_insert (st.c:463) ==25110== by 0x8067E80: rb_hash_aset (hash.c:1043) ==25110== by 0x811B0D1: call_cfunc (vm_insnhelper.c:299) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x80DE648: st_insert (st.c:463) ==25110== by 0x8067E80: rb_hash_aset (hash.c:1043) ==25110== by 0x811B0D1: call_cfunc (vm_insnhelper.c:299) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x807F61E: rb_fix2str (numeric.c:2081) ==25110== by 0x8083F20: fix_to_s (numeric.c:2127) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x811DDC3: vm_call0 (vm_eval.c:78) ==25110== by 0x811E6CA: rb_funcall (vm_eval.c:234) ==25110== by 0x8087CC9: rb_obj_inspect (object.c:406) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x807F620: rb_fix2str (numeric.c:2084) ==25110== by 0x8083F20: fix_to_s (numeric.c:2127) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x811DDC3: vm_call0 (vm_eval.c:78) ==25110== by 0x811E6CA: rb_funcall (vm_eval.c:234) ==25110== by 0x8087CC9: rb_obj_inspect (object.c:406) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x807F638: rb_fix2str (numeric.c:2090) ==25110== by 0x8083F20: fix_to_s (numeric.c:2127) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x811DDC3: vm_call0 (vm_eval.c:78) ==25110== by 0x811E6CA: rb_funcall (vm_eval.c:234) ==25110== by 0x8087CC9: rb_obj_inspect (object.c:406) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x807F645: rb_fix2str (numeric.c:2091) ==25110== by 0x8083F20: fix_to_s (numeric.c:2127) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x811DDC3: vm_call0 (vm_eval.c:78) ==25110== by 0x811E6CA: rb_funcall (vm_eval.c:234) ==25110== by 0x8087CC9: rb_obj_inspect (object.c:406) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x80DE151: st_delete (st.c:647) ==25110== by 0x8067195: rb_hash_delete_key (hash.c:758) ==25110== by 0x80682A2: rb_hash_delete (hash.c:787) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== ==25110== Conditional jump or move depends on uninitialised value(s) ==25110== at 0x80DE186: st_delete (st.c:648) ==25110== by 0x8067195: rb_hash_delete_key (hash.c:758) ==25110== by 0x80682A2: rb_hash_delete (hash.c:787) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== ==25110== Use of uninitialised value of size 4 ==25110== at 0x80DE18B: st_delete (st.c:649) ==25110== by 0x8067195: rb_hash_delete_key (hash.c:758) ==25110== by 0x80682A2: rb_hash_delete (hash.c:787) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) ==25110== by 0x812998D: vm_exec (vm.c:1124) ==25110== by 0x812A0C2: invoke_block_from_c (vm.c:556) ==25110== by 0x812A4A3: rb_vm_invoke_proc (vm.c:602) ==25110== by 0x805E583: proc_call (proc.c:552) ==25110== by 0x811B0FD: call_cfunc (vm_insnhelper.c:290) ==25110== by 0x812AA0C: vm_call_method (vm_insnhelper.c:378) ==25110== by 0x81248DD: vm_exec_core (insns.def:999) F....................................................................F.. Finished in 1.104106 seconds. 1) Failure: test_char(DL::TestClosure) [/home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_closure.rb:100]: <60> expected but was <72237884>. 2) Failure: test_unsigned_result(DL::TestImport) [/home/akr/chkbuild/tmp/build/ruby-trunk/20100207T130400/ruby/test/dl/test_import.rb:59]: <2147483649> expected but was <-2147483647>. 117 tests, 209 assertions, 2 failures, 0 errors, 0 skips ==25110== ==25110== ERROR SUMMARY: 40 errors from 18 contexts (suppressed: 49 from 9) ==25110== malloc/free: in use at exit: 2,133,089 bytes in 21,669 blocks. ==25110== malloc/free: 55,261 allocs, 33,592 frees, 9,427,325 bytes allocated. ==25110== For counts of detected errors, rerun with: -v ==25110== searching for pointers to 21,669 not-freed blocks. ==25110== checked 1,506,648 bytes. ==25110== ==25110== LEAK SUMMARY: ==25110== definitely lost: 13,848 bytes in 478 blocks. ==25110== possibly lost: 5,672 bytes in 4 blocks. ==25110== still reachable: 2,113,569 bytes in 21,187 blocks. ==25110== suppressed: 0 bytes in 0 blocks. ==25110== Use --leak-check=full to see details of leaked memory. zsh: exit 1 valgrind ./ruby -v test/runner.rb dl まぁ、とりあえず現状でコミットされているので、 いろいろな OS・プロセッサ・コンパイラを使える人は、 動くにせよ動かないにせよ、これを機会に試しておくといいんじゃないかと思います。 動くはず、といっても実際には動かないこともあるようですし。 BSD とか AIX とか、IA64 とか、どうですかね。 -- [田中 哲][たなか あきら][Tanaka Akira]