キモブロ

Please spy check please, Fucking retard

Sushi鯖壊滅の危機に瀕していたのを直した

なんだか、Sushi鯖の #1~#5, #A~#C の 8 台のサーバーが死亡していた。

原因を調べたが、steamcmd.sh 実行時に、SIGBUS シグナルが発生していたというもの。調べると、このシグナルは存在しないメモリアドレス参照した時とかに発生するものっぽい。

Segmentation Faultとの違いは、wikipediaのこちらのページに記載してあることが参考になった。以下引用する。

以下のような不正なメモリ操作により発生。ハンドラでキャッチできるが、ハンドラから戻った後の動作はシステムに依存する(通常プロセスの終了)。

アドレス境界不正:CPUはデータのサイズによって配置可能なアドレスに制限があることが多い。例えば32bit整数を4バイト境界(4で割り切れるアドレス)以外に置こうとしたなど。
存在しない物理アドレスページフォールトに似ているが物理アドレスに関して発生。
オブジェクト固有エラー:例えば、mmapマッピングされたファイルが切り捨てられたために仮想アドレスに対応する実体が存在しなくなった場合など。

さて、しかしなぜこのシグナルが発生するのか。strace したり、gdb でおっかけてみたりしたけど結局原因はよくわからず。

なんかマシン自体の問題じゃねと思ったので、当該ノードを reboot したら治った。よく考えると今回死んでたのはすべてさくら VPS のノードだった。(それ以外のノードは、別の VPS サービスを利用している。)


そういえば Sushi 鯖の累計利用者数が15万ユーザー(158,840) になっていた。すごい。