【実況】 live22x 鯖 Part10

このエントリーをはてなブックマークに追加
815root▲ ★
bbs.cgi が暴走してます。始めて見る症状。

何が起きたんだろう。
816root▲ ★:2006/02/19(日) 07:17:06 ID:???0
昨日ex14でもbbs.cgiが暴走していました。
これは無茶をやったからだと思っていたが、、、。

うーむ、おじさんが何か虫を入れたとかそういう話?
817root▲ ★:2006/02/19(日) 07:17:58 ID:???0
…ていうか、万一暴走してもリミッターが効くはずなのに。(RLimitCPU)

worker MPMだと効かないのか?
818▲ ◆cZfSunOs.U :2006/02/19(日) 07:18:15 ID:H3SbmX+G0
とりあえず gcore で......
819root▲ ★:2006/02/19(日) 07:18:50 ID:???0
ex14もだ。

これは、bbs.cgi に虫が入ったとしか思えないですね。
820root▲ ★:2006/02/19(日) 07:19:45 ID:???0
ex11もか。

worker MPMのところ全部ですね。

>>818
なるほど。
821▲ ◆cZfSunOs.U :2006/02/19(日) 07:21:59 ID:H3SbmX+G0
>>817 worker MPM というか,mod_cgid だと効かないようです.


# 120 sec 規制中か......
822root▲ ★:2006/02/19(日) 07:23:37 ID:???0
#0 0x2814160f in S_regmatch ()
from /usr/local/lib/perl5/5.8.7/mach/CORE/libperl.so
[New LWP 21238]

ここでループしている模様。

LWPと言っているので、
株関係とかそのへんのところ(httpで他から取ってくるところ)くさいですね。
823root▲ ★:2006/02/19(日) 07:24:30 ID:???0
>>821
なるほど、つまり、

・他でも暴走は起こっているが、リミッターで止まっている

と考えるのが妥当ですね。
824root▲ ★:2006/02/19(日) 07:24:57 ID:???0
ちょっと、まじめに調べてみます。
ここ数日で入った部分なわけで。
825動け動けウゴウゴ2ちゃんねる:2006/02/19(日) 07:27:15 ID:m5XZx1yTO
rootタソ ガンガレ
826▲ ◆cZfSunOs.U :2006/02/19(日) 07:27:42 ID:H3SbmX+G0
>>822 S_regmatch() という関数名からすると,正規表現マッチかな......?


http://search.cpan.org/~jhi/BSD-Resource-1.24/Resource.pm
RLimitCPU の代替策として↑入れて setrlimit() とか......
827root▲ ★:2006/02/19(日) 07:30:14 ID:???0
とれなかった時のエラー処理が入ってなさげ。< 株
828root▲ ★:2006/02/19(日) 07:36:09 ID:???0
>>826
おぉ。なるほど。

しかし、use BSD::Resource; は古いbananaには入っていないっぽいですね。
入れてもらわないと、すぐには使えなさそう。
あるいは例によってシステムコール直呼びしてしまうとか。

で、結果が正しく取れても取れなくてもその後のパースに行ってしまうように
なっているようです。splitとかそのへん。

たぶん、それが原因ですね。
829root▲ ★:2006/02/19(日) 07:41:17 ID:???0
$response->is_success ってのを見ればいいのか。

いってきます。
830root▲ ★:2006/02/19(日) 08:11:26 ID:???0 BE:1824645-#
799 名前: ◆MUMUMUhnYI [!stocksage] 投稿日:2006/02/19(日) 08:11:09.67 ID:WdTU/zyx0 ?#
BBS.CGI - 2006/02/19

# 060219 株価の取得のところでbbs.cgiが暴走することがある様子なので、
# $response->is_error を見てエラーチェックをするコードを追加 by む
831root▲ ★:2006/02/19(日) 08:14:16 ID:???0 BE:2919348-#
# エラーチェック
if ($response->is_error)
{
&DispError2($GB, "ERROR!", "ERROR:持ち株情報の取得に失敗しました。($response->code)");
}

処理の前にこれを追加しました。
これでしばらく様子見ということで。
832root▲ ★:2006/02/19(日) 08:21:11 ID:???0 BE:1277827-#
# エラーチェック
if ($response->is_error)
{
&DispError2($GB, "ERROR!", "ERROR:持ち株情報の取得に失敗しました。($response->code())");
}

こうかな(直しました)。

で、vip931 のところのコードも、エラーチェックをしていないっぽいと判明。
833root▲ ★:2006/02/19(日) 08:25:36 ID:???0 BE:4104195-#
(使ってないけど)vip931に臭い情報取得がエラーなら臭くないことにするコードを追加した。
また使う時には、有効になるかなと。
834root▲ ★:2006/02/19(日) 08:28:53 ID:???0 BE:2188883-#
で、>>810>>815-833 あたりで対処のはずということで。