From: m_seki@... Date: 2002-02-23T19:31:13+09:00 Subject: [ruby-dev:16044] Re: Digest::MD5 SEGV (ruby_1_6) 咳といいます。 >  ここの、 > > > #0 0x402e0b4a in MD5_Final () from /lib/libcrypto.so.2 > > #1 0x4002259b in MD5_End () at eval.c:41 > > #2 0x40025265 in rb_digest_base_hexdigest () at eval.c:41 > > が原因です。md5.so 内のではなく、 libcrypto.so.2 の MD5_*() を > 呼んでしまっている。 なるほど。 >  単体で大丈夫というのはおそらく、他の拡張ライブラリの *.so が > libcrypto.so.2 に(間接的に)リンクされていて、そいつをロードした > ことが影響したのかもしれません。対策としては、シンボルがぶつから > ないように md5.c を直す、でしょうか。 require 'postgres' していますので、そのせいかもしれないですね。 まずはmd5.cに手を入れて実験してみます。 >  しかし、 rtld がそういう仕様だとほかでもいろいろぶつかって困る > ような気がするんですが、どうなんでしょうね。お使いのシステムは > Red Hat Linux 7.2 でしたっけ。 そうです。RHL7.2です。 Vine2.1.5で同じスクリプトを実行しましたがとくに問題なく動作しました。 # といっても共有ライブラリが本当におなじものか自信がない…。 >  ということは、そのシステムで libssl.so と libcrypto.so.2 を > 両方リンクして MD_*() を呼び出すプログラムは、同じようにコアを > 吐いちゃうんでしょうか? ふむむう。