「プロセスがロックしてしまうミドルウェア障害」についてですが、まずは現象の説明からさせていただきます。
はてなのアプリケーションは主にPerlで記述されています。またアプリケーションは、Apache上で動作しています。今回の障害は、Apacheのプロセスがロック、すなわち処理途中で固まってしまう状態になってしまうことで発生してしまいました。
このロックは、straceなどで状態を確認したところ、おそらく外部サイトへのリクエストを含む特定の動作パターンで発生すると考えていますが、障害対応時には既に挙動が再現せず、正確な原因追求は難しい状態です。そのため、まずApacheプロセスを再起動させることで処理を再開させました。またさらに対症療法となりますが、再発防止のため、ロックの検出と自律的な再起動を組込むことを検討しています。
今回の障害の原因は、おそらく外部サイトの挙動の変化を受けて、Perlで書かれたアプリケーションが利用しているライブラリ、もしくはApacheの動作が不安定になったことにあると考えており、「プロセスがロックしてしまうミドルウェア障害」という表現を使いました。
ユーザーの皆様にはご迷惑をお掛けし申し分けありませんでした。また、今後もできるだけ分かり易く、迅速な障害告知を心掛けていきたいと思います。
今後とも、人力検索はてなはてなハイクをよろしくお願い致します。
これのこと?
http://d.hatena.ne.jp/hatenahaiku/20110601/1306888443
6/1 はてなハイク障害情報CommentsAdd Stardaichan330knnn4321rmkira1999Tensor
09:34 |
本日 8:02~9:17頃、はてなハイクに接続しづらい障害が発生しておりました。
プロセスがロックしてしまうミドルウェア障害が原因でした。現在は復旧し正常にご利用いただけます。
はてなのミドルウェアはphpで作ったプログラムが主のようなので
phpで作ったプログラムがロケンロールで逮捕されて身動き取れなくなった
じゃなくて、
phpで作ったプログラムがトラブルを起こしてフリーズしてしまったというようなこと
「バグ」なのか、それとも「想定外」なのかは中身を見ることが出来る立場の人にしかわからないし
セキュリティの観点(ホントは詳細がバレルと恥ずかしい)から、詳細な情報は秘匿され続けるでしょうね
phpで作ったプログラムがトラブルを起こしてフリーズしてしまった
というようなのは、ミドルウェア の障害とは言わない。
アプリケーションの障害、と表現されるはず。
PHP でアプリケーションを作っているとしたら、ミドルウェアに当たるのは、Apache だったり PHP もモジュールだったりする。
データベースエンジンや負荷分散のミドルウェアかもしれない。
「ロックした」というのは、プロセスは存在しているけど動いてくれない、ということを意味してると思います。
例えば、無限ループだったり、デッドロックだったり。
「プロセスがロックしてしまうミドルウェア障害」についてですが、まずは現象の説明からさせていただきます。
はてなのアプリケーションは主にPerlで記述されています。またアプリケーションは、Apache上で動作しています。今回の障害は、Apacheのプロセスがロック、すなわち処理途中で固まってしまう状態になってしまうことで発生してしまいました。
このロックは、straceなどで状態を確認したところ、おそらく外部サイトへのリクエストを含む特定の動作パターンで発生すると考えていますが、障害対応時には既に挙動が再現せず、正確な原因追求は難しい状態です。そのため、まずApacheプロセスを再起動させることで処理を再開させました。またさらに対症療法となりますが、再発防止のため、ロックの検出と自律的な再起動を組込むことを検討しています。
今回の障害の原因は、おそらく外部サイトの挙動の変化を受けて、Perlで書かれたアプリケーションが利用しているライブラリ、もしくはApacheの動作が不安定になったことにあると考えており、「プロセスがロックしてしまうミドルウェア障害」という表現を使いました。
ユーザーの皆様にはご迷惑をお掛けし申し分けありませんでした。また、今後もできるだけ分かり易く、迅速な障害告知を心掛けていきたいと思います。
今後とも、人力検索はてなはてなハイクをよろしくお願い致します。
コメント(2件)