CGI暴走はどういう時に起きるのですか?
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/23 02:25ID:Xiqwo/AJ必ずローカル環境で確かめてましょうなどと言われますが
未だにテストしていて暴走など起きたことありません。
そもそも本当に暴走によるサーバダウンなんて起きるのでしょうか?
とりあえず「whileなどに因る無限ループ」というのは聞きますが
逆に言えば原因としてこれしか聞いたことないです。
じゃあこれさえ気をつければOKでしょうか???
0002nobodyさん
03/06/23 02:34ID:sxlYymea0003nobodyさん
03/06/23 02:56ID:???0004nobodyさん
03/06/23 03:17ID:???0005nobodyさん
03/06/23 04:44ID:???ローカルで、配列に間違えてハッシュのリファレンスを指定したらフリーズした。
(^Cで停止はできるけど)
0006nobodyさん
03/06/23 04:59ID:???0007マリモーマ ◆vx6KgJyjvE
03/06/24 01:00ID:Pfw3AN7S}
0010nobodyさん
03/06/24 06:20ID:rXGYkm8s0011あぼーん
NGNG0012nobodyさん
03/06/24 11:13ID:???ような鯖は管理が甘いんじゃないのか?
一定割合以上CPUが使えないようにするとか、ある転送量
以上になるとサービスが停止するとか、あらかじめ規制し
とけば、暴走CGIを実行されてもそいつのサイトが落ちる
だけで、鯖自体は痛くも痒くもないだろう。
そんな甘い鯖なら、中には意図的に暴走するようにして
鯖を落とそうとするやつもいるだろうし、鍵のない家に
住んでて泥棒に入られたというような話やね。
0013あぼーん
NGNG0014nobodyさん
03/06/24 11:21ID:Rw67+3aY両親が共働きだと暴走し始めます。
0015nobodyさん
03/06/24 11:22ID:???0018nobodyさん
03/06/24 16:52ID:01cZwzPj#!/usr/bin/perl
fork while 1;
__END__
この程度でダメージ喰らうサーバーは結構ある。
0020本7 ◆uPD9aFm9hI
03/06/24 17:45ID:NRot/Ugh002119
03/06/24 18:09ID:???落ちるってhttpdが無限ループで何しても反応しなくなるってこと?
で、http全体を巻き込んで落ちるの?
それともOSが落ちるの?<そんなことないよね??
0022nobodyさん
03/06/24 18:24ID:???昔のパソコンならありそうだけど、ふつうサーバー用OSでは
httpdが落ちたりOSが落ちたりはまずありえない。
で、Cなんかで書かれた物でメモリ管理が間違ってる(甘い以前の問題)
物はよくCore吐いてプロセスが落ちたりするけど、
Perlだとメモリ管理自体をperlが行うから相当雑なスクリプティングでも
プロセスが落ちるところまでは滅多に行かない。
#!/usr/bin/perl
$a .= "0123456789abcdef" x 65536 while 1;
まぁこのくらいやっとけば起動後しばらくして使用可能なメモリ使い切って
プロセス自体は落ちると思うけど、サーバーには影響ないと思われる。
0023本7 ◆uPD9aFm9hI
03/06/24 18:36ID:???HTTPDですぐに幽霊プロスセ作るバカチン(このスレの傾向だとANとかが多
い)だとどんどん未解放領域が増えてしまいにHttpdに泣きつく。
で、自分だけでも手一杯なHttpdはOS叩いて共倒れ。
Winだとまずデスクトップ画像が更新されなくなる(メッセージの不通達)から
Explorerが落ちる。次にPerlが落ちる。で、Httpdがメモリアドレス違反〜がで
て鯖が死ぬ。
とにかくPerlのメモリ管理を意識してやる事かな。俺はPHPに乗り換えてましに
なったけど
0026本7 ◆uPD9aFm9hI
03/06/24 18:47ID:???0028本7 ◆uPD9aFm9hI
03/06/24 19:53ID:???0029あぼーん
NGNG0030あぼーん
NGNG0031あぼーん
NGNG0032nobodyさん
03/06/25 16:30ID:kbF34G9I改造のプロの私には、CGIの暴走の
意味が分かりません。
0033nobodyさん
03/06/25 16:37ID:???>>32
仕事で8年CGIスクリプトを書いてるけど、ローカルでテストなんかしたことないです。
都市伝説みたいなもんでしょう。
> 暴走によるサーバダウンなんて起きるのでしょうか?
サーバーがsystem7とかWindows95とかだったらあるかも知れない。
0034あぼーん
NGNG0035nobodyさん
03/06/25 17:05ID:???0036nobodyさん
03/06/25 18:24ID:MeoOZKwq0037あぼーん
NGNG0038nobodyさん
03/06/25 20:37ID:f3Z/hiNx0039nobodyさん
03/06/25 20:45ID:???0040nobodyさん
03/06/25 21:11ID:???httpdやOS側で実行時間に制限をかける。
無限ループが起きそうな場所の前後でalarm()を呼ぶ。
>>39
スクリプト側でハンドリングされたら意味無しなので、
-TERMや-INTで様子みて、駄目なら-KILLを送るのが確実かと。
0041nobodyさん
03/06/25 22:08ID:???それって手動で解除ってことですか?
それとも、httpとかでの設定すれば自動的にタイムアウトにできるんですか?
■ このスレッドは過去ログ倉庫に格納されています