A Day in the Life

Ruby のバイナリが prelink により毎朝4時に壊れてセグフォになる

Ruby のバイナリが prelink により毎朝4時に壊れてセグフォになる

td-agent.rpm (fluentd の rpm)はパッケージ内に自分で使う Ruby を /usr/lib64/fluent/ruby/bin/ruby にもっている。td-agent の rpm を CentOS に入れると、最初問題無くてもすこしたった後に restart をかけると Ruby が突然セグフォになり起動しなくなるという謎現象が…。yum remove td-agent; yum install td-agent すると再インストール直後は全く問題が起きない。

というわけでいつエラーになるか定期的に restart 繰り返してチェックしたら朝4時すぎると Ruby がセグフォするようになった。朝4時は /ect/cron.daily/* が実行される時間帯なので中身見たら prelink というタスクが(あやしい!)。でこのタスク実行したらすぐにめでたくセグフォするようになりました。

と同じような挙動(CentOS だし Ruby 1.9.x だし)するので、/etc/prelink.conf/d/fluentd-ruby.conf つくって

-b /usr/lib64/fluent/ruby/bin/ruby

書いたら解決した!prelink なんて存在そもそもしらなかったよママン…。

ruby + prelink でググると結構事例ありますなー。

関連するかもエントリー

Ruby 1.9 で起動オプションで外部エンコーディングを指定する
Ruby 1.9 で起動オプションで外部エンコーディングを指定する1.9 をよく解ってないオールドタイプの secondlife ですこんばんは。Ruby 1.9 では外部エンコーディングの Encoding.default_external はロケール( $LANG )によて変...
Ruby 1.9 で起動オプションで外部エンコーディングを指定する1.9 をよく解ってないオールドタイプの secondlife ですこんば...
fluent / fluentd のプラグインの書き方例
fluent / fluentd のプラグインの書き方例http://d.hatena.ne.jp/tagomoris/20111117/1321511988僕はこうやって実装・テストしてます。例えば fluent-plugin-mongo (output plugin)を Un...
fluent / fluentd のプラグインの書き方例http://d.hatena.ne.jp/tagomoris/20111117/1...
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1.8倍速になった
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1.8倍速になった流しのフェローが Ruby 2.0.0 速いって言ってたので、いやいや速いっていっても〜、と思って社内の Ruby 1.9....
Ruby を 1.9.3 p327 から 2.0.0 dev に上げたら Rails の起動時間が2.5倍速、rake spec の速度が1...