« ブログバトラー | Main | x86_64環境でffmpeg + amrをコンパイルする »

rrdtool 1.2.15が僕のRedhatをクラッシュさせるんだ

RRDファイルの特定の条件で、rrdtool 1.2.15のgraphコマンドが、システムをクラッシュさせてしまう。
因みに、再現した環境はRHEL4 x86_64。でも、rrdtool自身の問題だと思うので他の環境でも起こるかと。特にdagのrpm使ってる人は要注意(2007年1月23日時点でバグありのバージョンしか配布していない為)。

最初、cactiでグラフを見ていたら、急にsshが何の応答もしなくなった。少し経つとちょろっと応答が返ってくるのでネットワーク障害か何かかなと思っていたのだけれども、uptimeを見たらロードアベレージがえらい事になっていておったまげた。

取り合えず、/var/log/messageを見ると、oom-killer(kernelがよきにはからってメモリを喰い尽くしているプロセスをkillしてくれる)がrrdtoolを殺しているのを発見。そんな訳で、rrdtool oom-killerで検索をかけると出てきました。

#54 (Memory usage much higher than 1.0.x, can lead to swapping a machine to death) - RRDtool Trac (サイトのCSSがおかしいのでスタイル切って見ると良いかと)
Bug 201241: rrdtool consumes swap until death

dagのrpmがバージョンが1.2.15までしか無かったので最新版のソースを持ってきてインストール。configure中にlibartのdevelが入っていなくてエラったので、RHNのlibart-develを入れたら問題なくコンパイル通った。

そんな訳で、現在問題なく動いております。
いやはや、リソース喰い過ぎでsshが出来なくなった時は焦った。oom-killerさまさま。

Post a comment