X

bbs.cgi再開発プロジェクト7

■ このスレッドは過去ログ倉庫に格納されています
1root▲ ★
垢版 |
NGNG
bbs.cgiの開発作業をすすめていくためのスレッドです。

FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。

・雪だるま作戦への対応
・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・長いメインルーチンをより短くコンパクトに

あたりがターゲットか。

前スレ:
bbs.cgi再開発プロジェクト6
http://qb5.2ch.net/test/read.cgi/operate/1113117347/
293root▲ ★
垢版 |
NGNG
>>292
そですね。そうゆうっぽいの。

Perlから明示的に open() しなくてもチェックできる手は、ないのかなと。
2005/11/22(火) 23:12:47ID:7B8fTBqD0
>>293
つsystem()

…そういう話じゃ無かったらごめんなさい。
NGNG
ファイルシステムが「行」を管理してくれたら可能かもしれませんね(苦笑)

# (Count, ERROR message) = TotalLineNumberinFile(filename)
# Count = TotalLineNumberinFile(filename)
# filename は行数を調べたいファイル名
# Count は行数。-1の時はエラー。リストコンテキストで評価した場合、第2返り値にエラーメッセージが入ります。
# 正常に取得出来たときは'OK'が返ります。
sub TotalLineNumberinFile{
my $filename = shift;
my $count;
open my $filehandle $filename or return wantarray ? (-1,$!) : -1;
$count++ while <$filehandle>;
close $filehandle;
return wantarray ? ($count,'OK') : $count;
}
2005/11/22(火) 23:37:31ID:JzWOnNm+0
wcでも使うか
2005/11/23(水) 03:53:20ID:3uL3GDNB0
index.html作成時に必要なhtmlが無ければ作るというのは変じゃないような気がする。
ほとんどの場合、必要なhtmlが無い=スレ立て直後 だろうけど。
2005/11/23(水) 10:19:18ID:SnvvLR240
たまに大掃除もするので
その場合も、
2005/11/23(水) 12:23:06ID:h05bzQxj0
そですね。作ること自体は間違いじゃないと。

今夜あたりにでもちと。
300root▲ ★
垢版 |
2005/11/23(水) 16:52:24ID:???0
対応したです。

347 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/23(水) 16:47:32 ID:93wvGgv70
# 051123 htmlファイルが存在しなくて、かつしばらくたっても作られない場合にのみ、
# MakeIndex4PCからMakeWorkFileを呼ぶようにする by む

operate2 でテストしました。
html/ の下をからっぽにしてからレスして、必要な html が作られなおすことを確認済み。
301root▲ ★
垢版 |
2005/11/23(水) 17:02:15ID:???0
ちょっと、ex13でテストしてみるかな。

html/html 全消しします。< ex13
問題が出なければ成功。
302root▲ ★
垢版 |
2005/11/23(水) 17:02:39ID:???0
× ex13
○ neet4vip
303root▲ ★
垢版 |
2005/11/23(水) 17:04:07ID:???0
大丈夫そうですね。

様子を観察中。
2005/11/23(水) 19:11:10ID:???0
>>285の件、先ほどメールしました。
よろしくお願いいたします。
305root▲ ★
垢版 |
2005/11/23(水) 19:20:36ID:???0
>>304
メールざっと見ました。

主旨は、帽子の強度というか取り扱い方面に関するご相談、ということですか。
で、bbs.cgi での取り扱いにからむので、ここできいたと。

直感的に、仕様変更というか仕様追加を伴いそうな話な気がするので、
内容をよく読んでから、お返事するです。
場合によっては、別途いろんな方にご相談させていただく可能性も。

ということで。
2005/11/23(水) 23:53:37ID:5fdaspcI0
外部にトラックバック打つ時にshift_jisのまま打つのはどうかと
307桶屋
垢版 |
2005/11/24(木) 01:53:13ID:tdesbJrh0
>>265-268
どこまでやろうと考えているかはわかりませんが、
それを実際にやるときには、管理人に確認を取った方がいいと思います。
見映えやデザインが変わる恐れもありますので……。

まあ、「あいあい」だけで終わるような気もしますけど。


>>216
レスしていませんでした。興味深い話をどうもですー。
308桶屋
垢版 |
2005/11/24(木) 01:55:17ID:tdesbJrh0
ここよりもむしろ雪だるまの話になるかもですが、
indexから見たhtml/ の下のファイルは、iframeにして埋めてしまうのはどうかと考えたことがあります。

つまり、index.htmlでは以下のようにしてしまい、スレッド順位が変わるときには"./01.html"の部分だけ書き換え。

<iframe src="./01.html" align="center" width="95%" height="90%" scrolling="auto" frameborder="0" marginwidth="0" marginheight="0">
(説明文)このページではインラインフレームを使用しています。
</iframe>
 ・
 ・
 ・
10スレッド分ほど繰り返す


メリットは、
 ・index.htmlが一気にコンパクトになって生成コストが下がる(cssにするだけより断然効果あり)
 ・前段にキャッシュを使う場合、html/ の下がヒットして稼げるかも

デメリットは、
 ・スクロールが二重に (;^ ^
 ・Netscape 4.7 など古いブラウザは、やっぱりiframeは使えない(cssの時と同じ互換性の問題)
309桶屋
垢版 |
2005/11/24(木) 01:56:49ID:tdesbJrh0
それで、SETTING.TXTに、例えばINDEX_MODEといった新しいフラグを作っておいて、

INDEX_MODE=0 :デフォルト html/*.htmlファイルを作る。index.htmlも全部作る
INDEX_MODE=1 :html/*.htmlファイルを作る。index.htmはiframeで埋め込む
INDEX_MODE=2 :html/*.htmlファイルを作る。index.htmはサボる。今の実況板仕様
INDEX_MODE=3 :html/*.htmlファイルを作らない。index.htmはローカルルールとスレッド一覧と広告だけ


こういうのはどうですかね?(;^ ^ >SunOSさん他
310root▲ ★
垢版 |
NGNG
>>307
> どこまでやろうと考えているかはわかりませんが、
> それを実際にやるときには、管理人に確認を取った方がいいと思います。

そうすね。

で、html/html を作るところは、まだカスタマイズの余地がありそうな肝。
例えば下の方のスレにsageでレスした時は、更新しないとか。
(今はレスしたものについては必ず作っている)
2005/11/24(木) 03:04:04ID:PVimEjmL0
iframeは操作感が非常に悪くなると思います。
2005/11/24(木) 03:56:35ID:7i6JpL430
じゃー、今流行のajaxで
2005/11/24(木) 09:19:19ID:uDXz6nAD0
やりとりを見てると改善できる所は
まだまだありそうですね
314root▲ ★
垢版 |
2005/11/24(木) 13:38:26ID:???0
<チラシの裏>
http://www-06.ibm.com/jp/developerworks/linux/041119/j_l-optperl.html
</チラシの裏>
2005/11/24(木) 15:50:46ID:zK+0kexT0
SSIで挿入で
NGNG
>>314
どっかで叩かれていたような気も。。。
ひとまず、x 演算子のオペランドが逆です(哀)

#5.003時代のものだったかな?@最新のは5.008(5.8.x)
2005/11/24(木) 21:08:18ID:g6I3uHOe0
>>267 実際に bbsd が吐く index.html を直接見るのが一番手っ取り早いかも知れません.
ただ,index.html 以外に index.css というファイルも生成するようになってまして,
これは SETTING.TXT の更新を検出するとそれに合わせて更新するようになってます.

>>308 そういう <iframe> (or <object>) の使用というのも考えたことも
あるにはあるんですが,やはりスクロール等の操作性の問題などもあると思います.
まぁ,bbsd での index.html 生成は bbs.cgi のよりは軽くなってるかと思うので,
とりあえず大筋では従来のやり方を踏襲する形でもいいかなという感じでやってます.
318root▲ ★
垢版 |
NGNG
厨な質問をば。

if ($errmsgが10桁の数字だったら)

というのは、Perlでどう書いたらいいのかしら。
NGNG
>>318
$errmsg =~ /\d{10}/
かなぁ。。。

$errmsg + 1 < 10000000001
なんてのも有りかな?(文字列に対してもインクリメント出来るから)
320root▲ ★
垢版 |
NGNG
>>319
どもです。
上のほうで組み込んでみるです。
2005/11/26(土) 16:33:09ID:0o7g/RPa0
$errmsg =~ /^\d{10}$/
じゃないと、「aa1234567890」も真になっちゃわない?
322root▲ ★
垢版 |
NGNG
>>321
なるほど、対応するです。
2005/11/26(土) 20:26:40ID:7t446eNO0
lengeh($_) == 10 || int($_) eq $_
2005/11/26(土) 20:27:38ID:7t446eNO0
あーリロードしてないしlengthだし
325動け動けウゴウゴ2ちゃんねる
垢版 |
2005/11/26(土) 22:43:57ID:zBsPZFmx0
なんかエラー出たんで貼っときますね
ERROR:不明なエラーが発生しました。
(board:livejupiter key:1133001202 errmsg:No such file or directory)
このメッセージをコピペして、運用情報板で報告していただけるとありがたいです。

誘導されてきました
2005/11/27(日) 16:51:15ID:wSLpr1G40
http://live22x.2ch.net/livejupiter/index.html

1000オーバーのスレッドの1001はindex.htmlには表示されない模様?
2005/11/27(日) 20:05:08ID:Q5XEP8aN0
>>326 それは意図的に1000までにさせてますが,1001以降も表示させた方がいいんでしょうかね?
書き込みフォームをなくすことで終了してるスレということを示すようにはしてますが......
2005/11/27(日) 20:18:34ID:u0humMch0
今までどおりのほうがいいような
2005/11/27(日) 20:23:12ID:xD14ZgWG0
なぜ書き込めないのか、という理由の表示として、
あった方がわかりやすいかもしれない。
状況を理解してもらうためのメッセージだし。
2005/11/27(日) 20:30:09ID:Q5XEP8aN0
>>328-329 じゃあ1001以降も表示する形にしましょう......対応完.
331root▲ ★
垢版 |
NGNG
>>330
更新しました。 @ live22
332325
垢版 |
2005/11/28(月) 00:34:23ID:N5H/ccvWO
>>325って何だったんですか?
なんとなくしかわからいんで教えてください。(´・ω・)
333桶屋
垢版 |
2005/11/28(月) 00:48:22ID:0iPr7fvn0
どうぞ。

【雪だるま】bbsd⇔各cgi間のI/F仕様について考え・詰めていくスレッド
http://qb5.2ch.net/test/read.cgi/operate/1130482779/236-
2005/11/28(月) 14:25:03ID:/GNK4Si70
>>326
もともと1000以降は表示されない仕様だったような、、
335root▲ ★
垢版 |
2005/11/28(月) 14:35:38ID:???0
>>334
それは確か、read.cgi だったような。

index.html は、bbs.cgiのソースを見る限りそうは見えないです。
常にdatのお尻のBBS_CONTENTS_NUMBER行を表示していたと思う。
2005/11/28(月) 14:50:40ID:/GNK4Si70
ありゃ、ほんとだ、、いろいろ見てみましたけど
NHK教育実況板見たら100表示されてますね、、
だけど表示されてないように見えたのは気のせいか、、
すいません、
2005/11/28(月) 21:00:32ID:qciCODWD0
ここ扱いか知らんけど
スレッドの並べ替えってやっぱローカルで処理させたほうがいいんじゃないの?
338root▲ ★
垢版 |
NGNG
>>337
ん、何の話かしら。
2005/11/29(火) 10:40:56ID:zjVVPpoJ0
なんかよく判らんけどバグかな?
http://ex11.2ch.net/test/read.cgi/morningcoffee/1132910311/
俺が持ってる最後のレス
  990 名前:名無し募集中。。。 投稿日:2005/11/29(火) 01:01:04 0
  誰もいないな

がたぶん1000いってdat落ちするはずだったけど
スレタイもdatも無くなってリスタートしてる模様
340root▲ ★
垢版 |
2005/11/29(火) 12:09:33ID:???0
>>339
F22で落ちた瞬間に書き込みがなされると、こうなるですね。

対策してみるか。
レスの時は、そのdatがなかったら書かない。
341root▲ ★
垢版 |
NGNG
しかしこれは、リスクをぎりぎりまで減らすことはできても、
「ローカル雪だるま」をしない限り、なしにはできないですね。

従来のbbs.cgiでも、入り口のところでdatの存在は見ているです。
入り口ではあったのに、書くところで圧縮が入ってなくなったということで。

今の様子を見ていると、サーバ資源がどきどきしているlive系ではこの部分スルー(従来通り)で、
他ではこれ入れて、安全性を高めることにしよう。
2005/11/29(火) 13:36:30ID:ATVnho5w0
10億回に一回以下の出来事になにかしてもしょうがないと思うです
ほっとけ ほっとけ
343root▲ ★
垢版 |
2005/11/29(火) 14:09:55ID:???0
>>342
10億回すか。
まぁ、10億かどうかはともかく、レアケースであると。

# というか、想定通りの回答で。
344root▲ ★
垢版 |
2005/11/29(火) 14:11:12ID:???0
これまで、mnewsplusとかnews4vipとかmorningcoffeeとかで、出ているですね。
所詮、特殊な板か。
2005/11/29(火) 14:43:16ID:j5QwZ4jc0
AFOX
2005/11/29(火) 15:45:02ID:OFgfa+aY0
いっそdatをSQL化して、.datは.htmlとかと同じように生成さぼる対象にしてはどうか。
で、read.cgiと同じパラメータ方法でdatの該当行だけとれるようにする。
そうしたらSQLのレベルで1000ロックとか排他とかできるようになりませんかね。
347root▲ ★
垢版 |
2005/11/29(火) 16:00:52ID:???0
>>346
VIPのプロジェクトってやつですね。

あれ、どのくらい進んだのかな。
2005/11/29(火) 16:01:32ID:F6/xCrikO
2ちゃんねるブラウザが使えなくなる
2005/11/29(火) 16:22:16ID:OFgfa+aY0
>>347
あれ?それ初耳です。数人であれこれ考えていて出てきただけなので。
もしよろしければ参考URL教えていただけませんか?

>>348
>>346の範囲だと使えなくなるのではなくて、
現行のAPI使った専ブラでは読み込みの追従が遅れるだけ。
2005/11/29(火) 16:28:16ID:GdnIox6j0
C レベルでの open() 関数呼び出し段階で

スレ立て時: O_WRONLY|O_CREAT|O_EXCL (同一名ファイルが存在すれば EEXIST)
レス追記時: O_WRONLY|O_APPEND (ファイルが存在しなければ ENOENT)

というフラグ付きで呼ばれるようにできればファイルの存在確認とオープンが
アトミックに行えるんですよね(bbsd ではそうしてます).
となると,Perl では sysopen() を使えばいいのかな......
NGNG
>>349
http://nanacahaha.com/news4vip/
NGNG
>>350
定数を利用するのには use Fcntl がいるですね♪
353root▲ ★
垢版 |
NGNG
>>348
レガシなdatとsubject.txtは、作るようですよ。< VIPのやつ

>>350
なるほど、なるほど。
で、戻り値でエラーハンドリングもすると。

ちなみに subject.txt 生成部分とかは、ワークのファイルで作って、rename() しているですね。
で、rename() でしくると、どうも500エラーになっているらしいと。

このへんも、何かうまいわざがあるように思っていたり。
flock() じゃなくて。
354root▲ ★
垢版 |
NGNG
こうかしら。

・スレ立て時
use Fcntl;
sysopen(FH, $path, O_WRONLY|O_CREAT|O_EXCL, 0666) or &DispError2(スレ立て失敗処理);

・レス追記時
use Fcntl;
sysopen(FH, $path, O_WRONLY|O_APPEND) or &DispError2(レスができない処理);

で、index.html とか subject.txt / subback.html とかを
安全にかつうまくこなすには、どういうアイディアが考えられるのかと。
355root▲ ★
垢版 |
NGNG
>>354
2番目のにも、0666 が必要すね。
356root▲ ★
垢版 |
NGNG
これで、うまくいったようです。

これで、datの存在チェックうんぬんのところと、
追記してクローズした後でdatをchmod 666しているところをとばせました。

Over1000処理してchmod 555datをあとから追いついて
chmod 666することがなくなったので、
より、安全にもなったはず。

# 新スレの場合、datがあったらエラー
if($GB->{NEWTHREAD})
{
sysopen(OUT, $filename, O_WRONLY|O_CREAT|O_EXCL, 0666)
or &DispError2($GB,"ERROR!","ERROR:板飛びそうなので、またの機会にどうぞ。。。");
}
# レスの場合、datに追記できなかったらエラー
else
{
sysopen(OUT, $filename, O_WRONLY|O_APPEND, 0666)
or &DispError2($GB,"ERROR!","ERROR:レスしようとしたらdatに書けませんでした。今dat落ちしちゃったかもです。");
}
357root▲ ★
垢版 |
NGNG
chmod 555datを => chmod 555したdatをあとから
358root▲ ★
垢版 |
NGNG
481 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/11/30(水) 03:23:06 ID:vRY99gsD0 ?###
# 051130 WriteDatFile改良、sysopenを使用しより安全確実な処理に by む
359root▲ ★
垢版 |
NGNG
When opening a file, a lock with flock(2) semantics can be obtained by
setting O_SHLOCK for a shared lock, or O_EXLOCK for an exclusive lock.
If creating a file with O_CREAT, the request for the lock will never fail
(provided that the underlying file system supports locking).

ふむ、、、。

しかし、どうなんだろう。
360root▲ ★
垢版 |
NGNG
これは、index.html / subject.txt / subback.html i/index.html(qb5とbbspinkのみ)
といったファイルの話です。

今は、
index.html subject.txt … 一時ファイル(*1)を作ってそっちで作り、それをrename
subback.html i/index.html … ロックなしでいきなり本ファイル作成(カミカゼ状態)

に、なっているです。

で、animeサーバやmorningcoffee、news4vipなど、たくさんの書き込みがあるところで、
かつlive系と違ってスレ数が多くてファイル生成にコストがかかるところを中心に、
上記の一時ファイルがだんだんと溜まっていき、
例えばanimeサーバではメモリディスクを圧迫していき、何回か破綻状態になりました。

で、このへんをなんとかできると、こういったことも減るんじゃないかなと。

上のほうでもおじさんが書いていたような気がしますが、
まずはopenやsysopenのエラーチェックをまじめにやるべきなのかもですね。
361root▲ ★
垢版 |
NGNG
あとは、renameでやる手法でやる時の、最後のrenameのところをどうするかか。
今は、こんな処理をしているですね。

my $resuc = 0;
until($resuc)
{
$resuc = rename($subtemp, $subject);
}

これだと、何らかの形でrenameが失敗し続けると、ブロックしてしまうような。

…といったところで、今日はここまでか。

http://qb5.2ch.net/test/read.cgi/operate/1130482779/248
は、またあとで。
NGNG
my $rename_status = eval {
 for (1..10){
  rename($subtemp, $subject) and return 0;
 }
 return $!;
}
if (defined $rename_status) {
 &DispError2($GB,"ERROR!","ERROR:subject.txtは変更出来ませんでした。($rename_status)")
}

こんなかんじかな?
2005/11/30(水) 08:23:38ID:0+e07y/o0
>>355 乙です.
>2番目のにも、0666 が必要すね。

mode (0666) が反映されるのはファイル作成時だけなので,
単に追記するだけなら不要です(指定しても実害はないでしょうが).


で subject.txt 等の更新処理ですが,ロックなしだと例えば

bbs.cgi-1: subject.txt 読み込み
bbs.cgi-2: subject.txt 読み込み
bbs.cgi-1: 1111111111.dat レス数インクリメント
bbs.cgi-2: 1111111112.dat レス数インクリメント
bbs.cgi-1: subject.txt.1 に書き出し
bbs.cgi-2: subject.txt.2 に書き出し
bbs.cgi-1: subject.txt.1 -> subject.txt にリネーム
bbs.cgi-2: subject.txt.2 -> subject.txt にリネーム

のようになると「1111111111.dat レス数インクリメント」は反映されなく
なってしまいますね.これならいっそのこと,一時ファイル名は固定にして
O_EXCL 付きで sysopen() して,失敗したら subject.txt の更新処理自体
スキップするようにしてしまってもいいかも知れません.

きっちりやるとしたら,やはりロックせざるを得ないでしょう.
ちなみに,bbsd ではファイルロックより軽い mutex で排他制御してます.
# もっとも,この前の負荷試験では mutex の保護下でやってるのに
# 1000 越え発生という奇妙な現象も起こってしまったので,
# その点は要観察なわけですが......
364root▲ ★
垢版 |
NGNG
>>362
そんなようなことを考えていたです。
ただ、エラーにするんじゃなくて、たぶん単にあきらめて一時ファイル消して次に行くかんじで。
(新スレの時はもうちょっといい加減じゃないほうがいいかもですが)

>>363
> のようになると「1111111111.dat レス数インクリメント」は反映されなく
> なってしまいますね.

そですね。
いわゆる「不可視スレ」ができちゃうのも、同じ原因だとにらんでいるです。
news4vip morningcoffee newsplus とかで起きやすいことも、それを裏付けているかんじで。

> これならいっそのこと,一時ファイル名は固定にして
> O_EXCL 付きで sysopen() して,失敗したら subject.txt の更新処理自体
> スキップするようにしてしまってもいいかも知れません.

これ、直感的にはよさげな気がしますが、
いきなり全サーバに入れるのは、ちとどきどきするですね。
ex11 ex14 anime ぐらいで、ちょっと試したいなと。

あと固定にするとしても、新スレの時とレスの時では、
一時ファイル名として別のを用意したほうがいいような肝するです。

なんてことを、だらだらと。
2005/11/30(水) 13:14:38ID:SZP7bktD0
追い越しのことだけは忘れないでくださいネ
366root▲ ★
垢版 |
NGNG
>>363
> ちなみに,bbsd ではファイルロックより軽い mutex で排他制御してます.

CPANしてみると、Win32::Mutex というのしかなさげですね。ううむ。
2005/11/30(水) 13:42:21ID:SZP7bktD0
流れとしては

1) あんま排他とか考えない太古代 (2001)
2) 排他しまくりで壊れない中生代 (2002-)
3) 排他なんてやってる余裕なし、壊れてもok の戦国時代 (2004-)

となっています。
わざわざ、排他は全部はずしたのだー
2005/11/30(水) 13:44:55ID:SZP7bktD0
簡単に言えば排他等を組み込んでコスト(お金)を払うのもひとつの戦術ではあるけど、
それによって負荷増大、キャパシティ減少になったとき
それをやめて現状復帰が容易なようなコーディングを切に希望
369root▲ ★
垢版 |
NGNG
>>367
はい、知っているです。
bbs.cgiにばっちり、コメントで残っているですね。

3) は、live8 とともに私もリアルタイムで経験したです。
で、そろそろ世代交替を狙っているということすね。

雪だるまのほうは、こうなったのかな。

4) コストの低い排他制御で、スマートにこなす現代(2005-)

従来バージョンのほうは、2006年かなぁと。
370root▲ ★
垢版 |
NGNG
>>368 には、とても同意するです。

ようは「そんなに排他して(コストかけて)、いったい何を守るの?」っていうのを
忘れないようにしないといかんと。
371root▲ ★
垢版 |
NGNG
で、flockでやる方法は「いやーんばかーん」なわけで、
もうちょっと「はやいうまいやすい」方法は、ないもんかなと。
2005/11/30(水) 13:51:31ID:SZP7bktD0
あと 大きな流れとしては「雪だるま」に全部置き換え、
と思っているんで、旧世代の捨て去られる bbs.cg の面倒見ても
意味内科と、
373root▲ ★
垢版 |
NGNG
>>372
ふむ、ふむ。
2005/11/30(水) 23:16:00ID:BgKaphH50
過去ログ倉庫のやつはこっちかな
http://qb5.2ch.net/test/read.cgi/operate/1105909861/405
375root▲ ★
垢版 |
2005/11/30(水) 23:37:23ID:???0
>>374
「過去ログ倉庫はこちら」のところの話かしら。
2005/11/30(水) 23:53:00ID:yD2pFeo50
baseでtarget指定してるからね。
そこだけ_selfにでもするか。
2005/12/01(木) 00:48:07ID:AW478pq70
1.一時ファイルに新スレをどんどん追加
2.一時ファイルからsubject.txtを生成

…ダメかな?
378root▲ ★
垢版 |
NGNG
リネーム部分 改良案

#############################################################################
# ファイルのリネームを行う
# 入力: $src、$dst
# 戻り値: 0またはエラーメッセージ
#############################################################################
sub TryRename
{
my ($src, $dst) = @_;
my $status = undef;
my $count = 100;
my $debug = 0;

# ex11で実験することにする
# 他サーバには、うまくいったら入れよう
if($ENV{'SERVER_NAME'} =~ /ex11/)
{
$debug = 1;
}

# 100回、renameを試行してみる
for (1..$count)
{
rename($src, $dst) and return 0;
}
# だめだったらステータスを保存する
$status = $!;

# デバッグしている時は、ユーザの画面にその旨表示する
if($debug)
{
print "bbs.cgiデバッグ中。。。<br>\n";
print "renameに失敗しましたが、そのまま処理を続けます。<br>\n";
print "($src)($dst)($status)<br>\n";
print "<br>\n";
print "このメッセージをコピペして、運用情報板の以下のスレッドに報告していただけるとありがたいです。<br>\n";
print "<br>\n";
print "bbs.cgi再開発プロジェクト7<br>\n";
print "<a href=\"http://qb5.2ch.net/test/read.cgi/operate/1130918407/\">http://qb5.2ch.net/test/read.cgi/operate/1130918407/l50<;/a><br>\n";
print "<br>\n";
}
# デバッグしてない時は、ゴミファイルを消す
else
{
unlink($src);
}

return $status;
}
379root▲ ★
垢版 |
NGNG
これに対応したbbs.cgiを、ex11に入れてみよう。

で、1日動かしてみると。
380root▲ ★
垢版 |
NGNG
ex11に入れてみた。
狼のスレに、お知らせしてこよう。

これでまずは、現状把握と。
うまくいけば、おじさんが手で消している一時ファイル消去の頻度が、減るかも、かも。
381root▲ ★
垢版 |
2005/12/01(木) 02:58:07ID:???0
問題なさそうなので、一番ゴミファイルが残っているanimeサーバにも入れてみた。>>380

というわけで、おやすみなさい。
382root▲ ★
垢版 |
2005/12/01(木) 11:23:40ID:???0
中間報告
・animeサーバは、切り替えて以降500エラーはなしでした。
・ex11は、出ているようです。

メッセージが悪さしているかもしれないので、
ex11でも、画面にメッセージが出ないようにしてみた。
試験継続で。
383root▲ ★
垢版 |
2005/12/01(木) 11:24:35ID:???0
なお、rename試行回数を100回から1000回にしてみた。< ex11
384root▲ ★
垢版 |
2005/12/01(木) 13:00:18ID:???0
だらだらと観察中。

-rw-rw-rw- 1 ch2ex11 ch2 16384 Nov 30 18:54 237491133170255.tmps
-rw-rw-rw- 1 ch2ex11 ch2 32768 Nov 30 19:41 252251133408443.tmps
-rw-rw-rw- 1 ch2ex11 ch2 0 Nov 30 18:33 443801133404390.tmp

ううむ、きりのいい数字が。
このへんにヒントがあるのかもね。
385root▲ ★
垢版 |
2005/12/01(木) 14:08:05ID:???0
banana723.maido3.com から、アクセスがあるようです。
どこか、臭いかいでいる板があるのかも。

banana723.maido3.com のDNSキャッシュも、リスタートいただけますか。
他には、2ch内部からのアクセスはないようです。
386root▲ ★
垢版 |
2005/12/01(木) 14:08:21ID:???0
>>385
ありゃ、い(りゃ。
2005/12/01(木) 14:10:59ID:HU0C966k0
いらないってこと?
388root▲ ★
垢版 |
2005/12/01(木) 14:13:51ID:???0
>>387
いんどる = 誤爆する

です。
わかりにくくて、ごめんなさい。
389root▲ ★
垢版 |
2005/12/01(木) 14:16:26ID:???0
ということで、リスタート自体は必要になります。
よろしくお願いいたします。
2005/12/01(木) 14:16:52ID:HU0C966k0
ということは、リスタートが要るのね
2005/12/01(木) 17:55:08ID:L5aUvDTn0
すいません

前スレでも検討中だった2ch規約承諾問題ですが、まだ

> 消費者契約法上、確認を取ってクッキーを発行するのならば契約の成立の主張を主張するのならば分かるが、確認取る前の表示の段階でクッキーを発行しているんだぜ。
> パンフ送れば申し込まなくても契約成立みたいな感じ。
>
> 当然、俺はこの書き込みの著作権を主張するし、2chに2ch以外での著作権の複製権があるなんて俺は今でも認めていない。
>
> 匿名組合との契約書で、契約書を貰った段階で申し込みを止めたら契約は不成立だよな。
> 2chのクッキーの発行のタイミングがおかしいんだよ。確認画面を表示したら契約成立って考えだろ。
> そんな訳ないじゃん。
ttp://live19.2ch.net/test/read.cgi/stock/1131996799/501

こんなたわけた理屈を言っているコテハンがいますので、何とか対処のほどよろしくお願いします。
2005/12/01(木) 17:55:54ID:ETiz99/V0
いえいえ
どういたしまして。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況