From: Tanaka Akira Date: 2009-10-18T00:06:16+09:00 Subject: [ruby-dev:39505] Re: OpenSSL 1.0.0 support In article <20090811.215258.126602848.taca@back-street.net>, Takahiro Kambe writes: > また、Ruby 1.9.1 patchlevel 243 と Ruby 1.9.2 preview1用のパッチも作成 > してみました。いずれも、コンパイルに問題がないところまでの確認はしてい > ます。 > ftp://ftp.back-street.net/pub/ruby/openssl-1/ruby-1.9.2pre1-openssl1-patch.bz2 openssl-1.0.0-beta3 と組み合わせて試すと、コンパイルできるよ うになるのは良いのですが、テストで SEGV しますねぇ。 % ./ruby test/runner.rb -v openssl Loaded suite test/runner Started OpenSSL::TestASN1#test_decode: 0.03 s: . OpenSSL::TestCipher#test_AES: 0.10 s: . OpenSSL::TestCipher#test_ciphers: 0.00 s: . OpenSSL::TestCipher#test_crypt: 0.02 s: . OpenSSL::TestCipher#test_dup: 0.00 s: . OpenSSL::TestCipher#test_empty_data: 0.00 s: . OpenSSL::TestCipher#test_info: 0.00 s: . OpenSSL::TestCipher#test_reset: 0.00 s: . OpenSSL::TestDigest#test_098_features: 0.00 s: . OpenSSL::TestDigest#test_digest: 0.00 s: . OpenSSL::TestDigest#test_dup: 0.00 s: . OpenSSL::TestDigest#test_eql: 0.00 s: . OpenSSL::TestDigest#test_info: 0.00 s: . OpenSSL::TestDigest#test_reset: 0.00 s: . OpenSSL::TestEC#test_check_key: 0.03 s: . OpenSSL::TestEC#test_curve_names: 0.01 s: . OpenSSL::TestEC#test_dh_compute_key: 0.03 s: . OpenSSL::TestEC#test_dsa_sign_verify: 0.03 s: . OpenSSL::TestEC#test_encoding: 0.07 s: . OpenSSL::TestEC#test_set_keys: 0.04 s: . OpenSSL::TestEOF1#test_eof_0: 0.20 s: . OpenSSL::TestEOF1#test_eof_0_rw: 0.00 s: . OpenSSL::TestEOF1#test_eof_1: 0.39 s: . OpenSSL::TestEOF1#test_eof_2: 0.05 s: . OpenSSL::TestEOF1#test_eof_3: 0.05 s: . OpenSSL::TestEOF2#test_eof_0: 0.20 s: . OpenSSL::TestEOF2#test_eof_0_rw: 0.00 s: . OpenSSL::TestEOF2#test_eof_1: /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37: [BUG] Segmentation fault ruby 1.9.2dev (2009-10-17 trunk 25381) [i686-linux] -- control frame ---------- c:0019 p:---- s:0073 b:0073 l:000072 d:000072 CFUNC :=== c:0018 p:0020 s:0069 b:0069 l:000065 d:000068 BLOCK /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37 c:0017 p:0026 s:0066 b:0066 l:000065 d:000065 METHOD /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:35 c:0016 p:0094 s:0063 b:0063 l:000062 d:000062 METHOD /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:68 c:0015 p:0016 s:0057 b:0055 l:00136c d:000054 BLOCK /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:66 c:0014 p:0041 s:0052 b:0052 l:000eb0 d:000eb0 METHOD /home/ruby/openssl/ruby/test/openssl/test_pair.rb:80 c:0013 p:0061 s:0046 b:0046 l:00136c d:00136c METHOD /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:65 c:0012 p:0063 s:0043 b:0043 l:000042 d:000042 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:458 c:0011 p:0091 s:0037 b:0037 l:000018 d:000036 BLOCK /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:426 c:0010 p:---- s:0032 b:0032 l:000031 d:000031 FINISH c:0009 p:---- s:0030 b:0030 l:000029 d:000029 CFUNC :each c:0008 p:0026 s:0027 b:0027 l:000018 d:000026 BLOCK /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420 c:0007 p:---- s:0024 b:0024 l:000023 d:000023 FINISH c:0006 p:---- s:0022 b:0022 l:000021 d:000021 CFUNC :each c:0005 p:0082 s:0019 b:0019 l:000018 d:000018 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419 c:0004 p:0154 s:0014 b:0014 l:000013 d:000013 METHOD /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:393 c:0003 p:0041 s:0007 b:0007 l:0015dc d:000006 BLOCK /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:334 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:001034 d:001034 TOP --------------------------- /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:334:in `block in autorun' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:393:in `run' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419:in `run_test_suites' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:419:in `each' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420:in `block in run_test_suites' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:420:in `each' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:426:in `block (2 levels) in run_test_suites' /home/ruby/openssl/lib/ruby/1.9.1/minitest/unit.rb:458:in `run' /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:65:in `test_eof_1' /home/ruby/openssl/ruby/test/openssl/test_pair.rb:80:in `open_file' /home/ruby/openssl/ruby/test/ruby/ut_eof.rb:66:in `block in test_eof_1' /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:68:in `read' /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:35:in `fill_rbuff' /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37:in `rescue in fill_rbuff' /home/ruby/openssl/lib/ruby/1.9.1/openssl/buffering.rb:37:in `===' -- C level backtrace information ------------------------------------------- ./ruby(rb_vm_bugreport+0x6c) [0x8152552] ./ruby [0x8185599] ./ruby(rb_bug+0x36) [0x81855f4] ./ruby [0x80ec2fa] [0xb7fd7410] ./ruby [0x80669f5] ./ruby [0x806534b] ./ruby [0x8066ba9] ./ruby [0x8066bbc] ./ruby(rb_gc_finalize_deferred+0x19) [0x8066be2] ./ruby [0x8154aae] ./ruby(rb_threadptr_execute_interrupts+0x19) [0x8154b91] ./ruby [0x814b0d6] ./ruby [0x814ba4c] ./ruby [0x814b709] ./ruby(rb_funcall+0xa2) [0x814bafa] ./ruby [0x814a724] ./ruby(rb_obj_respond_to+0x4f) [0x814a631] ./ruby(rb_respond_to+0x20) [0x814a760] ./ruby [0x8186c58] ./ruby [0x814807d] ./ruby [0x8147ef7] ./ruby [0x8147436] ./ruby [0x814310a] ./ruby [0x814fa96] ./ruby [0x814e7e2] ./ruby [0x814e870] ./ruby [0x814bcc6] ./ruby(rb_yield+0x3a) [0x814bc9c] ./ruby(rb_ary_each+0x7c) [0x81621ab] ./ruby [0x814805e] ./ruby [0x8147ef7] ./ruby [0x8147436] ./ruby [0x814310a] ./ruby [0x814fa96] ./ruby [0x814e7e2] ./ruby [0x814e870] ./ruby [0x814bcc6] ./ruby(rb_yield+0x3a) [0x814bc9c] ./ruby(rb_ary_each+0x7c) [0x81621ab] ./ruby [0x814805e] ./ruby [0x8147ef7] ./ruby [0x8147436] ./ruby [0x814310a] ./ruby [0x814fa96] ./ruby [0x814e7e2] ./ruby(rb_vm_invoke_proc+0xb0) [0x814e922] ./ruby(rb_proc_call+0x8e) [0x8060564] ./ruby(rb_call_end_proc+0x1a) [0x805dcf6] ./ruby(rb_exec_end_proc+0x174) [0x805df97] ./ruby [0x805e1f4] ./ruby(ruby_cleanup+0x92) [0x805e2c0] ./ruby(ruby_run_node+0x43) [0x805e620] ./ruby(main+0x74) [0x805d070] /lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7df7455] ./ruby [0x805ceb1] [NOTE] You may have encountered a bug in the Ruby interpreter or extension libraries. Bug reports are welcome. For details: http://www.ruby-lang.org/bugreport.html zsh: abort ./ruby test/runner.rb -v openssl % ldd .ext/i686-linux/openssl.so linux-gate.so.1 => (0xb7f65000) libssl.so.1.0.0 => /home/ruby/openssl/lib/libssl.so.1.0.0 (0xb7ebc000) libcrypto.so.1.0.0 => /home/ruby/openssl/lib/libcrypto.so.1.0.0 (0xb7d38000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7d04000) librt.so.1 => /lib/i686/cmov/librt.so.1 (0xb7cfb000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb7cf7000) libcrypt.so.1 => /lib/i686/cmov/libcrypt.so.1 (0xb7cc5000) libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb7c9f000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7b44000) /lib/ld-linux.so.2 (0xb7f66000) % ./ruby -v ruby 1.9.2dev (2009-10-17 trunk 25381) [i686-linux] -- [田中 哲][たなか あきら][Tanaka Akira]