[過去ログ] read.cgi再開発スレ Part2 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
399
(2): 動け動けウゴウゴ2ちゃんねる 2005/10/31(月)23:37 ID:GkSrk5si0(1/2) AAS
e-mail欄が入ってても、本文が空白なら書き込まれないよ。
400: 動け動けウゴウゴ2ちゃんねる 2005/10/31(月)23:38 ID:GkSrk5si0(2/2) AAS
400ゲトついでに改善要望(定期)

■定期>>373
スレスト処理済のスレの書き込み欄が表示されてる→表示させないように
(以前は書き込み欄自体が消えていた)

■定期>>372
容量で埋まったスレのエラーメッセージがない
2chスレ:operate
401: 398 2005/10/31(月)23:40 ID:RsZMl2YO0(1/3) AAS
>>399
ほんとだ。じゃ、名前欄に名前が残ってたばあいは?
402: 398 2005/10/31(月)23:44 ID:RsZMl2YO0(2/3) AAS
>>396,399
どうやら本文が空欄だと書き込めないようですね。
スレ汚し失礼しました。
403: 398 2005/10/31(月)23:47 ID:RsZMl2YO0(3/3) AAS
あえて言うなら、コメントを途中まで書いて、
やっぱりやめようと「掲示板に戻る」を押そうとして
間違えて「書き込む」を押しちゃった場合は書き込まれてしまいますね。
レアケースですけど。
404: 動け動けウゴウゴ2ちゃんねる 2005/11/01(火)20:13 ID:0m10J6aL0(1) AAS
書き込み欄の下ならいいんじゃないの
405
(1): 動け動けウゴウゴ2ちゃんねる 2005/11/02(水)23:32 ID:O6fKTHL50(1) AAS
ここの管轄か知らんけど

外部リンク:qb5.2ch.net
過去ログ倉庫クリックした時にsubbackのほうの窓じゃなくてスレの窓のほうを書き換えるの
やめて
406: 動け動けウゴウゴ2ちゃんねる 2005/11/03(木)21:14 ID:Wb1alUud0(1) AAS
>405をクリックした時は新しく窓が開くからややこしい
407: 動け動けウゴウゴ2ちゃんねる 2005/11/04(金)21:53 ID:J5F0mAYz0(1) AAS
ここの管轄か知らんけど

外部リンク[txt]:news18.2ch.net
実際にはいるのは普通1001(かそれ以降)じゃないの
408: 動け動けウゴウゴ2ちゃんねる 2005/11/10(木)01:50 ID:F6KZqSyl0(1) AAS
なるほど
409: 動け動けウゴウゴ2ちゃんねる 2005/11/10(木)20:41 ID:alZcmxn20(1) AAS
まあ1000に到達すると発動するんだけどね
レスの形式をとってるから紛らわしい
リンクも張れるし
2chスレ:newsplus
410
(2): 動け動けウゴウゴ2ちゃんねる 2005/11/18(金)00:06 ID:vWUva2lG0(1) AAS
鯖移転時の旧スレはリダイレクトされなくていいんだっけ
2chスレ:dataroom
2chスレ:dataroom
411
(1): 動け動けウゴウゴ2ちゃんねる 2005/11/21(月)14:09 ID:MC3ZP+ou0(1) AAS
■ime.nu判定

2chのスレにbbspinkのスレを貼った時、以前はJumpページ
(ime.nu経由?)になったと思うんだけど、今は直で飛べるみたい。

2chスレ:saku2ch

BBSPINKは21禁の別サイトのはずなので、
間にJumpが挟まってた方がいいのでは。
412: 動け動けウゴウゴ2ちゃんねる 2005/11/21(月)15:02 ID:s3dzvoUu0(1) AAS
提携掲示板に細かいこと言うでない
413: 動け動けウゴウゴ2ちゃんねる 2005/11/23(水)01:27 ID:Iv3Mx+Qt0(1) AAS
それだったらむしろime.st行く前に
「ジャンプ先にアダルト広告(画像つき)があります ジャンプしますか?(y/n)」
が必要なんでは
414: root▲ ★ 2005/12/03(土)13:14 ID:???0 AAS
>>410
なおたとおもう。
(memoriesに収容したので、read.cgiバイナリをi386→amd64に変更(配布しなおし))
415
(1): root▲ ★ 2005/12/05(月)18:53 ID:???0 BE AAS
>>287 をやろうと思って、read.cgi のソースを眺め始めたりして。

今のread.cgiを見てみると、

if(!lookfor(ch2,r)) return 3001 ;

ってやって、まずdatがあるかどうか調べて、lookforの中で、

if(!apr_stat(&CountStat,ch2->zz_fName,APR_FINFO_MIN,r->pool)) /* found */
{
ch2->zz_filesize = CountStat.size ;
省11
416
(2): 動け動けウゴウゴ2ちゃんねる 2005/12/05(月)20:39 ID:vaenr0/k0(1) AAS
>>411
てか板トップから表示されてるスレの外部リンクは全部ime.st抜けてるよ
417
(1): ◆cZfSunOs.U 2005/12/05(月)21:38 ID:qOa8SuPx0(1/2) AAS
まず,Apache 2.0 → 2.2 移行に関して......おおかたの API は
ソースレベルの互換性は維持されているので,mod_cgidso やそれ用の
プログラム (read.cgi 等) はソースの手直しは不要だと思います.
ただ,バイナリレベルの互換性はないのでリコンパイルは必要です.

しかし,>>287 のは正攻法ではなくトリッキーな方法を用いているため,
2.2 対応には若干の手直しが必要となります(下記のソースでは
その点も含め対応し,2.0 / 2.2 両対応となっています).
省2
418
(1): ◆cZfSunOs.U 2005/12/05(月)21:39 ID:qOa8SuPx0(2/2) AAS
>>415 乙です.

>たぶん、HEADしてGETするとか、そういう感じなのかしら。

そのように2回サブリクエストを実行する形だと非効率になりそうなので,
雪だるま版では lookfor() で内容取得まで一緒にやってしまった方が良さそうな気もします.
その代わり,dat ファイルを読み込んでる部分をスキップすると.

----[この関数を定義しておく]------------------------------------------
#ifdef SNOWMAN
省44
419: root▲ ★ 2005/12/05(月)22:39 ID:???0 AAS
>>416
ほんとに?

>>417
了解です。

あとで、>>418 に挑戦してみるです。
420: root▲ ★ 2005/12/05(月)22:42 ID:???0 AAS
>>416
ちゃんと動いてるっぽいなぁ。

2ch板:operate2
外部リンク[html]:qb6.2ch.net

外部リンク:外部リンク:は、もともと ime.st にならない仕様(ime.st側でちゃんと動かないので)。
421
(2): root▲ ★ 2005/12/06(火)01:51 ID:???0 BE AAS
やってみました。

しかし、

Request exceeded the limit of 10 subrequest nesting levels
due to probable confguration error. Use 'LimitInternalRecursion'
to increase the limit if necessary. Use 'LogLevel debug'
to get a backtrace.

ううむ。
422
(2): root▲ ★ 2005/12/06(火)02:09 ID:???0 BE AAS
で、>>421 は出なくなって、今は、

[notice] child pid 67012 exit signal Segmentation fault (11)

うむむ。
423
(1): ◆cZfSunOs.U 2005/12/06(火)02:18 ID:iYd2v5pK0(1/11) AAS
>>421
>Request exceeded the limit of 10 subrequest nesting levels
>due to probable confguration error.

う〜む......サブリクエストが無限ループになってるんですかね......
proxy 関連の設定はどうなってますか?
424
(1): ◆cZfSunOs.U 2005/12/06(火)02:22 ID:iYd2v5pK0(2/11) AAS
あと気になる点は......

・ ch2->zz_filesize の型 (apr_size_t? apr_off_t?)
・ ch2->BigBuffer[ch2->zz_filesize] に '\0' を置く必要あり?
425
(1): root▲ ★ 2005/12/06(火)02:29 ID:???0 BE AAS
>>424
> apr_size_t zz_filesize ;

のようです。

で、apr_file_close(in) の後は、

p = ch2->BigBuffer ;
for(i=0;i<ch2->zz_filesize;i++,p++)
{
省6
426
(1): root▲ ★ 2005/12/06(火)02:31 ID:???0 BE AAS
>>423
> proxy 関連の設定はどうなってますか?

# livejupiter
ProxyPass /livejupiter/SETTING.TXT !
ProxyPass /livejupiter/ 2ch板:livejupiter
ProxyPassReverse /livejupiter/ 2ch板:livejupiter

です。
427
(1): ◆cZfSunOs.U 2005/12/06(火)02:44 ID:iYd2v5pK0(3/11) AAS
>>425 了解です.zz_filesize の型は良かったのですが,

>*p = '\0' ;

があるので apr_brigade_pflatten() のところはこうした方がよさそうです.

-        apr_brigade_pflatten(f.ctx, &ch2->BigBuffer, &ch2->zz_filesize, r->pool);
+        apr_off_t blen;
+        apr_brigade_length(f.ctx, 1, &blen);
+        ch2->zz_filesize = blen;
省3
428
(2): root▲ ★ 2005/12/06(火)02:57 ID:???0 BE AAS
ううむ、>>422 のようです。>>427

で、ch2->BigBuffer は、dso_main で最初に、

CH2READ ch2 ;

と言っていて、CH2READ は、構造体になっているです。
で、その中でこんなかんじでとっているです。
つまり、apr_pallocで取っているわけではないみたい。

char BigBuffer[SZ_BIGBUF] ;
429: root▲ ★ 2005/12/06(火)03:05 ID:???0 BE AAS
で、入れてみましたが、

・バーチャルホスト毎の access.log error.log は出ない
・一番親のログは >>422

のようです。
430
(1): ◆cZfSunOs.U 2005/12/06(火)03:07 ID:iYd2v5pK0(4/11) AAS
>>428 なるほど.とするとこんな感じですか......

        apr_off_t blen;
        apr_brigade_length(f.ctx, 1, &blen);
        if ((ch2->zz_filesize = blen) >= SZ_BIGBUF)
            return 何かのエラー番号;
        apr_brigade_flatten(f.ctx, ch2->BigBuffer, &ch2->zz_filesize);

# デカい構造体をスタックに確保するってのはちょっと不安があるわけですが,
省3
431: root▲ ★ 2005/12/06(火)03:08 ID:???0 BE AAS
現在のもの:

+#ifdef SNOWMAN
+static apr_status_t rdat_filter(ap_filter_t *f, apr_bucket_brigade *b)
+{
+ return ap_save_brigade(f, (apr_bucket_brigade **)&f->ctx, &b, f->r->pool);
+}
+#endif
省28
432
(1): root▲ ★ 2005/12/06(火)03:11 ID:???0 BE AAS
>>430
何かのエラー番号: datが大き杉
ってことですかね。

で、Apacheのcoreをとるには、、、。
433
(1): root▲ ★ 2005/12/06(火)03:12 ID:???0 BE AAS
if(ch2->zz_filesize > SZ_BIGMAX) return 3002 ;

だから、3002でいいのかな。
434: root▲ ★ 2005/12/06(火)03:14 ID:???0 BE AAS
ということで、今こうです。
結果は同じか。

で、core dumpとってみるです。

+#ifdef SNOWMAN
+ int rv;
+#if defined(AP_SERVER_MINORVERSION_NUMBER) && AP_SERVER_MINORVERSION_NUMBER >= 2
+ ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL, NULL, 0, 0};
省24
435
(1): ◆cZfSunOs.U 2005/12/06(火)03:16 ID:iYd2v5pK0(5/11) AAS
>>432
CoreDumpDirectory /tmp
とかで(httpd プロセスが書き込み可能なディレクトリを指定).

>>433 というか,lookfor() はエラー時 0 を返すので,とりあえずその部分では

-            return 何かのエラー番号;
+            return 0;

にしないとしょうがないですか......
436: root▲ ★ 2005/12/06(火)03:18 ID:???0 BE AAS
>>435
設定してみた。

で、
if(!lookfor(ch2,r)) return 3001 ;

なので、return 0ですか。
437: root▲ ★ 2005/12/06(火)03:26 ID:???0 BE AAS
ううむ、core dumpしないみたいです。
[Mon Dec 05 10:25:09 2005] [notice] child pid 74701 exit signal Segmentation fault (11)

# XXX
CoreDumpDirectory /tmp

を、httpd.conf に書いたのですが。
438: ◆cZfSunOs.U 2005/12/06(火)03:35 ID:iYd2v5pK0(6/11) AAS
う〜む,なぜだろう......となると......
外部リンク[cgi]:www.freebsd.org
は使えるんでしょうか......?
439: root▲ ★ 2005/12/06(火)03:42 ID:???0 BE AAS
truss はできますが、Solarisほど強力じゃないのか。

外部リンク[html]:httpd.apache.org

これですか。
440: ◆cZfSunOs.U 2005/12/06(火)03:47 ID:iYd2v5pK0(7/11) AAS
そうか.....httpd が最初に root で立ち上がってると OS のデフォルトでは
core 吐かないようになってるのかな......とすると,とりあえず直接 User
ディレクティブで指定してるユーザで立ち上げてみるとか......
441
(2): root▲ ★ 2005/12/06(火)03:57 ID:???0 BE AAS
302 みたいです。<= rdat->status
442
(1): root▲ ★ 2005/12/06(火)03:58 ID:???0 BE AAS
すんません。かんちがいだった。>>441
443
(1): root▲ ★ 2005/12/06(火)03:59 ID:???0 BE AAS
200 だなぁ。ちゃんと。
444
(1): root▲ ★ 2005/12/06(火)04:04 ID:???0 BE AAS
core dumpしてるの、ここじゃないですね。
もっとあとみたい。
445
(1): root▲ ★ 2005/12/06(火)04:09 ID:???0 BE AAS
ap_rprintf(r, "%s\n", ch2->BigBuffer);

ってやっても、なんかちゃんと出ないみたい。
446: ◆cZfSunOs.U 2005/12/06(火)04:20 ID:iYd2v5pK0(8/11) AAS
>>441-445 乙です.こちらのローカル環境ではOkなんですが,う〜む......
447: root▲ ★ 2005/12/06(火)04:22 ID:???0 BE AAS
-funsigned-char しているせいかなぁ、、、。
448: root▲ ★ 2005/12/06(火)04:24 ID:???0 BE AAS
strlen(ch2->BigBuffer) が、3らしい。ううむ。
449
(2): ◆cZfSunOs.U 2005/12/06(火)04:33 ID:iYd2v5pK0(9/11) AAS
う〜む......原因もつかめないとすると......サブリクエスト方式をやめて
ソケットで localhost に取りに行く方式にした方がいいんですかねぇ.
read.cgi 1呼び出しごとに2プロセス消費することになっちゃいますが......
450: root▲ ★ 2005/12/06(火)04:38 ID:???0 BE AAS
>>449
ちと、キャッシュ関連やめてみるです。
451: root▲ ★ 2005/12/06(火)04:40 ID:???0 BE AAS
同じだった。

BigBufferの最初の4バイトが、どのdatを読んでも 1f 8b 8 0 になるです。

>>449
それも、なんかしゃくですね。ううむ。
452: root▲ ★ 2005/12/06(火)04:44 ID:???0 BE AAS
バッファを大域変数でとってみたけど、同じだった。

apr_brigade_flatten のところが、ちゃんと動いていない??
453: ◆cZfSunOs.U 2005/12/06(火)04:47 ID:iYd2v5pK0(10/11) AAS
ch2->zz_filesize はどうですか......?
454: root▲ ★ 2005/12/06(火)04:51 ID:???0 BE AAS
2chスレ:livejupiter
を読んで、

ap_rprintf(r, "%d\n", ch2->zz_filesize);

ってやったら、832 って出たです。
実際には、1428バイトあるですね。
455
(3): 動け動けウゴウゴ2ちゃんねる 2005/12/06(火)04:54 ID:JNumL22n0(1/2) AAS
1f 8b 8 0はgzipか
456
(1): root▲ ★ 2005/12/06(火)04:54 ID:???0 BE AAS
>>455
おーーー。
457
(1): root▲ ★ 2005/12/06(火)04:55 ID:???0 BE AAS
ってことは、、、。
ここは1Gbps内部接続だし、圧縮はなくてもいいような気もするです。
458
(1): root▲ ★ 2005/12/06(火)04:57 ID:???0 BE AAS
どうすんのがいいのかな。

live22のhttpdでgzipしないようにする? のも、いまいちだなぁ。
サブリクエスト(って言うんでしたっけ)の時に、no gzip にできないのかしら。
459: root▲ ★ 2005/12/06(火)05:03 ID:???0 BE AAS
ううむ、
こりゃ、live22側のhttpdをごにょごにょするほうがよさげですね。

SetEnvIfか何か使うか。
460: root▲ ★ 2005/12/06(火)05:06 ID:???0 BE AAS
live22のhttpdでmod_defleteをはずしてみたら、できたー。

2chスレ:livejupiter
461: root▲ ★ 2005/12/06(火)05:06 ID:???0 BE AAS
ってことは、

・フロントエンドからのリクエストだったら、gzipかからないようにする

で、いけるのか。

やろう、やろう。
462: root▲ ★ 2005/12/06(火)05:10 ID:???0 BE AAS
うーむ、、、。諸事情によりmod_rpaf使っているからなぁ。
REMOTE_ADDRではできないのか。

どうすべ。
463: root▲ ★ 2005/12/06(火)05:11 ID:???0 BE AAS
とりあえず、後で考えることにして、
mod_deflateはずしておこう。 @ live22

で、read.cgiを入れてみるか。
464
(1): 動け動けウゴウゴ2ちゃんねる 2005/12/06(火)05:19 ID:boYqBZIZ0(1) AAS
355 ▲ ◆cZfSunOs.U sage 2005/12/06(火) 05:04:33
なぜか read.cgi スレで「連続投稿ですか?10回」とか出てしまうんで一時避難でこちらへ......

>>455-458 むむ......ってことは......

apr_table_set(r->subprocess_env, "no-gzip", "");

を ap_run_sub_req() の前に実行かな......

356 ▲ ◆cZfSunOs.U sage 2005/12/06(火) 05:13:01
apr_table_unset(r->headers_in, "Accept-Encoding");
省6
465: root▲ ★ 2005/12/06(火)05:23 ID:???0 BE AAS
>>464
これの 357 のやつで、live22の設定をgzipありにしても動いたー。

すばらしいです。これでread.cgiもフロントにできる。
466: root▲ ★ 2005/12/06(火)05:26 ID:???0 BE AAS
まだ #ifdef しているけど、フロント動作版 read.cgi を live22x[123] に入れた。
これで、大会前の準備はほぼすべて整いました。

深夜までつきあっていただいた SunOS さん、
それから神様 >>455 さん、ありがとう、ありがとう。
467
(1): 動け動けウゴウゴ2ちゃんねる 2005/12/06(火)06:13 ID:JNumL22n0(2/2) AAS
rdat(rnew)のヘッダいじるとrにも反映される予感。
2.0と2.2でちょっと違うけど、
rnew->headers_in = r->headers_in;
こんな風になってる。
envはコピーのようだけど。
rnew->subprocess_env = apr_table_copy(rnew->pool, r->subprocess_env);
468
(1): ◆cZfSunOs.U 2005/12/06(火)08:22 ID:tmMnLjck0(1) AAS
>>467 おぉ......となると,こうすべきですね.

# "no-gzip" は多分なしで平気ですね.

rdat->headers_in = apr_table_copy(rdat->pool, rdat->headers_in);
apr_table_unset(rdat->headers_in, "Accept-Encoding");
469: root▲ ★ 2005/12/06(火)11:23 ID:???0 AAS
>>468
組み込みます。

で、昨日の会話でわかったのは、
Apache 2.2系と2.0系のread.cgiでは、バイナリレベルでの互換性がなくなるってことすね。
いずれ2.2化する時には、注意しないと。
470: root▲ ★ 2005/12/06(火)11:29 ID:???0 AAS
live22x[123] に、read.cgi の広告を配布するようにした。
471
(2): ◆cZfSunOs.U 2005/12/06(火)22:37 ID:iYd2v5pK0(11/11) AAS
緊急の問題ではないですが,ここ(スタックにデカい配列・構造体を確保)が
やはりちょっと気がかりではあります.

>>428
>CH2READ ch2 ;
>char BigBuffer[SZ_BIGBUF] ;

現状では一応問題なしのようですが,もし今後マルチスレッド MPM を使用するとなると......
メイン以外のスレッドに割り当てられるデフォルトのスタックサイズはメインのより小さいです.
省6
472
(1): root▲ ★ 2005/12/07(水)00:13 ID:???0 AAS
>>471
気になりますか。

ぼちぼち、apr_palloc にしてみますか。
ちなみにそれで確保したやつって、なんか解放とかしなくていいのかしら。
473
(1): ◆cZfSunOs.U 2005/12/07(水)00:25 ID:jJ+aJrde0(1/2) AAS
>>472 malloc() だと明示的な解放が必要ですが,apr_palloc() ではプールの寿命が尽きた時点で自動解放されます.
例えばリクエストプール (r->pool) で確保すれば,リクエスト処理が完了した時点で自動解放されます.
474: root▲ ★ 2005/12/07(水)00:34 ID:???0 BE AAS
>>473
了解です。安心していいってことですね。
475
(1): root▲ ★ 2005/12/07(水)12:27 ID:???0 BE AAS
【きりたんぽ】雪だるま作戦に思いを馳せながら雑談するスレッド Part28
2chスレ:nanmin

739 名前: ◆MUMUMUhnYI [sage] 投稿日:2005/12/07(水) 12:05:52 ?###
過去ログにいったやつが、うまく出ないみたい。< フロント版read.cgi

だめな例: 基本的にdat落ちしたやつ全部
2chスレ:dancesite

あとで、みてみるということで。
省5
476
(1): ◆cZfSunOs.U 2005/12/07(水)13:01 ID:CyXQfn3E0(1/2) AAS
>>475 乙です.
----------------------------------------------------------------------
以前 worker MPM を試してみたら SIGBUS になってしまったことがありましたが,
2chスレ:nanmin
これは >>471 の要因でスタック領域からはみ出てしまってたのかも知れませんね.
477
(1): root▲ ★ 2005/12/07(水)14:59 ID:???0 AAS
>>476
なるほど、ありえますね。

# worker MPMはSpeedyCGIがそのままでは動かないかもという話も。
478
(1): ◆cZfSunOs.U 2005/12/07(水)15:48 ID:CyXQfn3E0(2/2) AAS
>>477 そのあたりはこういうことで.
# これを受けての worker MPM 挑戦だったわけで......

2chスレ:nanmin
>そういえば...... 今 SpeedyCGI は speedy プロセス呼び出しの形で使ってますか?
>mod_speedycgi だとマルチスレッド非対応ですが,speedy プロセス呼び出しなら無関係なんで
>マルチスレッド化も可能ではあるんですが......
479: root▲ ★ 2005/12/07(水)17:05 ID:???0 BE AAS
>>478
そっか、そうでしたね。
ってことは、再チャレンジすることもありうるのか。
1-
あと 522 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s