■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 最新50

read.cgi再開発スレ Part2

358 :動け動けウゴウゴ2ちゃんねる :2005/09/03(土) 21:52:24 ID:D3fR5zU70
それははじめてきいた

359 :動け動けウゴウゴ2ちゃんねる :2005/09/05(月) 19:13:26 ID:PUL6KD6V0
http://qb5.2ch.net/test/read.cgi/operate/1104218992/11

360 :動け動けウゴウゴ2ちゃんねる :2005/09/14(水) 17:25:48 ID:M63OcNG70
同じ板に同時期に存在したスレで両方とも現存してるけど
鯖移動後の処理がちぐはぐだね
スレ番の桁が違うから?

http://academy3.2ch.net/test/read.cgi/min/997631757/l50
http://academy3.2ch.net/test/read.cgi/min/1008244473/l50

http://academy4.2ch.net/test/read.cgi/min/997631757/l50
http://academy4.2ch.net/test/read.cgi/min/1008244473/l50

361 :動け動けウゴウゴ2ちゃんねる :2005/09/14(水) 23:16:42 ID:/qN1JKJE0
いずれread.cgiが無くなるってのはどうですか
せんぶら普及andどっかでみたインスタント2chビューアーみたいなのを個人が作るとかで

362 :動け動けウゴウゴ2ちゃんねる :2005/09/15(木) 01:05:08 ID:55Gsa4Jd0
>>361
広告はどこに出せばいいの?
(2chの収入源を排除するの?)

363 :動け動けウゴウゴ2ちゃんねる :2005/09/30(金) 15:20:11 ID:Je0xBFbV0
広告はスレごと
広告つかないスレはdat

364 :動け動けウゴウゴ2ちゃんねる :2005/09/30(金) 22:59:47 ID:oiHocncr0
>>363
真面レスなんだが結構よくない?
ただread.cgiがかなり重くなるかな...?
もしくはスレ作成時にスレ毎に特定の広告を決めるようにしとけば、
(決めかたが難しいけど)スレの1行目(カウンタの次ぐらい)に
広告を出すことはできる...read.cgiも既存のままでいいし。。

365 :動け動けウゴウゴ2ちゃんねる :2005/10/01(土) 07:52:29 ID:qH3QZdfY0
Googleっぽく、関連がありそうなスレに関連がありそうな広告を出すのが
宣伝効果も高くていいような

ただ、今の現状ではアダルト広告ばかりになりそうな気もするけど

366 :動け動けウゴウゴ2ちゃんねる :2005/10/01(土) 17:56:19 ID:NrF85Gnc0
2ちゃんねるはアダルトは全面禁止
PINKちゃんねる行き

367 :あぼーん :あぼーん
あぼーん

368 : ◆TWARamEjuA :2005/10/02(日) 11:42:59 ID:OH//sBsm0 BE:3485748-###
すでにRock済み。
Traped BBX。

369 :動け動けウゴウゴ2ちゃんねる :2005/10/03(月) 03:21:47 ID:tJFbcg/40
単純にモジュールをlighttpdに移植するだけで結構速くなるみたいだけど、どうよ。
http://pc8.2ch.net/test/read.cgi/mysv/1114551645/949-

370 :動け動けウゴウゴ2ちゃんねる :2005/10/03(月) 20:32:02 ID:uKkteBhj0
■定期
datスレの頭にエラーメッセージがない

371 :動け動けウゴウゴ2ちゃんねる :2005/10/04(火) 16:46:11 ID:XWwb8xlD0

スレの頭に総レス数書いてあるとheadlineとかから開いた時便利
昔は700-とかがあったからどれくらい進んでるか目安に出来たけど

372 :動け動けウゴウゴ2ちゃんねる :2005/10/05(水) 22:13:57 ID:j/FDPjpp0
■定期
容量で埋まったスレのエラーメッセージがない
http://qb5.2ch.net/test/read.cgi/operate/1128074121/

373 :動け動けウゴウゴ2ちゃんねる :2005/10/05(水) 22:45:28 ID:Gn9B0wku0

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

374 :動け動けウゴウゴ2ちゃんねる :2005/10/06(木) 20:16:06 ID:nF77rr6t0
なんか知らん間に結構後退してたんだな

375 :動け動けウゴウゴ2ちゃんねる :2005/10/16(日) 11:20:32 ID:iwmJ6+x00
◆定期>>373
http://qb5.2ch.net/test/read.cgi/operate/1128411782/l50

376 :◆cZfSunOs.U :2005/10/21(金) 06:55:39 ID:fdLPk2o+0
http://qb5.2ch.net/test/read.cgi/operate/1129726127/79-80n
これは LANG=ja_JP.SJIS で -c オプションを有効にした際の bbsd による
html 生成では対応してますが,read.cgi でも同様の対応をすればいいのかな.
まぁ少々面倒ではありますが.

377 :動け動けウゴウゴ2ちゃんねる :2005/10/21(金) 14:35:58 ID:uwlfMPx50
ドttp://
ドttps://
てtp://

ドttp://
ドttps://
てtp://

378 :動け動けウゴウゴ2ちゃんねる :2005/10/21(金) 14:39:47 ID:uwlfMPx50
デtp://

デtp://

379 :動け動けウゴウゴ2ちゃんねる :2005/10/21(金) 14:49:28 ID:uwlfMPx50
◆定期>>373
http://qb5.2ch.net/test/read.cgi/operate/1129786949/l50

380 :動け動けウゴウゴ2ちゃんねる :2005/10/21(金) 14:56:55 ID:uwlfMPx50
◆定期http:///
http://qb5.2ch.net/test/read.cgi/operate/1104218992/184
エラーメッセージのやつは全部これっぽい

381 :root▲ ★ :2005/10/29(土) 21:59:15 ID:???0 BE:5837388-###
read.cgi ver 05.0.1.2 2005/10/29

#ifdef notdef
ap_rprintf(r," <a href=\"http://info.2ch.net/test/tb.cgi?__mode=list&tb_id=%s\">関連ページ</a>\n",url) ;
#endif

382 :ひろゆき@どうやら管理人 ★ :2005/10/29(土) 22:23:10 ID:???0 BE:101928-###
http://qb5.2ch.net/test/read.cgi/operate/1130482779/64n
ぺたぺた。

383 :ひろゆき@どうやら管理人 ★ :2005/10/29(土) 22:23:24 ID:???0 BE:158055-###
おぉ、、もう反映してる。。。

384 :root▲ ★ :2005/10/29(土) 22:24:26 ID:???0 BE:6566898-###
>>383
もしまだ変わってないサーバがあったら、知らせてくださいです。

385 :◆SANUKI/VII :2005/10/29(土) 22:33:16 ID:VXcDQXHVP BE:8154263-###
beは?

386 :root▲ ★ :2005/10/29(土) 22:34:00 ID:???0 BE:1277827-###
>>385
それは、管理人に直していただくということで。

387 :◆SANUKI/VII :2005/10/29(土) 22:35:02 ID:VXcDQXHVP BE:32616689-###
結局、ぴろぴろにお仕事が増えました♪


388 :root▲ ★ :2005/10/30(日) 01:27:52 ID:???0 BE:5107878-###
read.cgi ver 05.0.1.3 2005/10/30

http://aa5.2ch.net/test/read.cgi/nanmin/1130341652/81 に対応。

389 :動け動けウゴウゴ2ちゃんねる :2005/10/30(日) 02:12:56 ID:ROeuiZZN0
>>388
乙〜

390 :◆SANUKI/VII :2005/10/30(日) 07:56:57 ID:2i3w9BOKP BE:5436443-###
>>388
ありがとうございましたー。


391 :動け動けウゴウゴ2ちゃんねる :2005/10/30(日) 23:47:45 ID:uq8qE1Yc0
│ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ

392 :〈(`・ω・`)〉φ@実+代表 :2005/10/30(日) 23:48:22 ID:uq8qE1Yc0
│ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ │ ≡  ('('('('A` )
│≡ 〜( ( ( ( 〜) 
│ ≡  ノノノノ ノ

393 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 01:12:10 ID:Cbpa+rBp0
├─┤  ├─┤  │  ↑↑↑↑
│  ├─┤  ├─┤  ││││
│  │  │  ├─┤  ││││
│  ├─┤  ├─┤  ││││
├─┤  ├─┤  └─┘│││
│  ├─┤  └────┘││
│  │  └───────┘│
↓  └──────────┘
 ∩∧ ∧ おらっしゃあぁぁ!!!
 ヽ( ゚Д゚)
   \⊂\
    O-、 )〜
      ∪

394 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 22:56:14 ID:/WvKyMya0
スレッド表示の下部、
「掲示板に戻る」のリンクと「書き込む」ボタンの位置が近すぎて、
間違えて押しそうになります。
「書き込む」ボタンを違う場所に移動した方が良いのではないでしょうか?

395 :394 :2005/10/31(月) 22:59:20 ID:/WvKyMya0
FireFoxだと特に近いです。
時々、コメントのない書き込みを見かけますが、
これが原因じゃないでしょうか。

396 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 23:12:20 ID:LrKcs97b0
空欄じゃ書き込めないよ

397 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 23:23:33 ID:D/fUXAtt0
>395
空欄のコメントにも、意味がある場合もある。
一番典型的なのは、メール欄で会話するスレかな。

もちろん、ただのスレ潰しの場合もあるが。

398 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 23:32:56 ID:/WvKyMya0
>>396,397
FireFoxだと、E-mail欄の「sage」が記憶されているので
コメントが空欄でも、
間違って「書き込む」を押すと書き込まれてしまいます。

399 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 23:37:29 ID:GkSrk5si0
e-mail欄が入ってても、本文が空白なら書き込まれないよ。

400 :動け動けウゴウゴ2ちゃんねる :2005/10/31(月) 23:38:45 ID:GkSrk5si0
400ゲトついでに改善要望(定期)

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

■定期>>372
容量で埋まったスレのエラーメッセージがない
http://qb5.2ch.net/test/read.cgi/operate/1128074121/


401 :398 :2005/10/31(月) 23:40:10 ID:RsZMl2YO0
>>399
ほんとだ。じゃ、名前欄に名前が残ってたばあいは?

402 :398 :2005/10/31(月) 23:44:26 ID:RsZMl2YO0
>>396,399
どうやら本文が空欄だと書き込めないようですね。
スレ汚し失礼しました。

403 :398 :2005/10/31(月) 23:47:32 ID:RsZMl2YO0
あえて言うなら、コメントを途中まで書いて、
やっぱりやめようと「掲示板に戻る」を押そうとして
間違えて「書き込む」を押しちゃった場合は書き込まれてしまいますね。
レアケースですけど。

404 :動け動けウゴウゴ2ちゃんねる :2005/11/01(火) 20:13:26 ID:0m10J6aL0
書き込み欄の下ならいいんじゃないの

405 :動け動けウゴウゴ2ちゃんねる :2005/11/02(水) 23:32:23 ID:O6fKTHL50
ここの管轄か知らんけど

http://qb5.2ch.net/operate/kako/
過去ログ倉庫クリックした時にsubbackのほうの窓じゃなくてスレの窓のほうを書き換えるの
やめて

406 :動け動けウゴウゴ2ちゃんねる :2005/11/03(木) 21:14:25 ID:Wb1alUud0
>405をクリックした時は新しく窓が開くからややこしい

407 :動け動けウゴウゴ2ちゃんねる :2005/11/04(金) 21:53:29 ID:J5F0mAYz0
ここの管轄か知らんけど

http://news18.2ch.net/mnewsplus/1000.txt
実際にはいるのは普通1001(かそれ以降)じゃないの

408 :動け動けウゴウゴ2ちゃんねる :2005/11/10(木) 01:50:06 ID:F6KZqSyl0
なるほど

409 :動け動けウゴウゴ2ちゃんねる :2005/11/10(木) 20:41:12 ID:alZcmxn20
まあ1000に到達すると発動するんだけどね
レスの形式をとってるから紛らわしい
リンクも張れるし
http://news19.2ch.net/test/read.cgi/newsplus/1131413427/1001

410 :動け動けウゴウゴ2ちゃんねる :2005/11/18(金) 00:06:29 ID:vWUva2lG0
鯖移転時の旧スレはリダイレクトされなくていいんだっけ
http://that3.2ch.net/test/read.cgi/dataroom/1104683767/
http://that4.2ch.net/test/read.cgi/dataroom/1104683767/

411 :動け動けウゴウゴ2ちゃんねる :2005/11/21(月) 14:09:27 ID:MC3ZP+ou0
■ime.nu判定

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

http://qb5.2ch.net/test/read.cgi/saku2ch/1131265364/793

BBSPINKは21禁の別サイトのはずなので、
間にJumpが挟まってた方がいいのでは。

412 :動け動けウゴウゴ2ちゃんねる :2005/11/21(月) 15:02:28 ID:s3dzvoUu0
提携掲示板に細かいこと言うでない

413 :動け動けウゴウゴ2ちゃんねる :2005/11/23(水) 01:27:43 ID:Iv3Mx+Qt0
それだったらむしろime.st行く前に
「ジャンプ先にアダルト広告(画像つき)があります ジャンプしますか?(y/n)」
が必要なんでは

414 :root▲ ★ :2005/12/03(土) 13:14:52 ID:???0
>>410
なおたとおもう。
(memoriesに収容したので、read.cgiバイナリをi386→amd64に変更(配布しなおし))

415 :root▲ ★ :2005/12/05(月) 18:53:11 ID:???0 BE:1459744-###
>>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 ;
ch2->zz_mtime = CountStat.mtime ;
ch2->where = W_LIVE ;
return 1 ;
}

ってやって、datのサイズとmtimeを読んで、その次に、

if(apr_file_open(&in,ch2->zz_fName,APR_READ,APR_OS_DEFAULT,r->pool)) {return 3011;}

apr_file_read(in, ch2->BigBuffer, &ch2->zz_filesize);
apr_file_close(in) ;

とやって、datをバッファに読み込んでいると。

ここに >>287 相当品を組み込めばよさげなわけですが、さて、どうすればいいのかと。

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

416 :動け動けウゴウゴ2ちゃんねる :2005/12/05(月) 20:39:29 ID:vaenr0/k0
>>411
てか板トップから表示されてるスレの外部リンクは全部ime.st抜けてるよ

417 :◆cZfSunOs.U :2005/12/05(月) 21:38:31 ID:qOa8SuPx0
まず,Apache 2.0 → 2.2 移行に関して......おおかたの API は
ソースレベルの互換性は維持されているので,mod_cgidso やそれ用の
プログラム (read.cgi 等) はソースの手直しは不要だと思います.
ただ,バイナリレベルの互換性はないのでリコンパイルは必要です.

しかし,>>287 のは正攻法ではなくトリッキーな方法を用いているため,
2.2 対応には若干の手直しが必要となります(下記のソースでは
その点も含め対応し,2.0 / 2.2 両対応となっています).
まぁこれは,正攻法でやろうとすると別途フィルタモジュールを
作らなければならなくなるので......

418 :◆cZfSunOs.U :2005/12/05(月) 21:39:21 ID:qOa8SuPx0
>>415 乙です.

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

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

----[この関数を定義しておく]------------------------------------------
#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
----[lookfor() の中]--------------------------------------------------
#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};
#else
    ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
#endif
    ap_filter_t f = {&frec, NULL, NULL, r, r->connection};
    char *uri = apr_pstrcat(r->pool, "/", ch2->zz_bbs, "/dat/", ch2->zz_key, ".dat", NULL);
    request_rec *rdat = ap_sub_req_lookup_uri(uri, r, &f);

    if (!(rv = rdat->status == HTTP_OK ? ap_run_sub_req(rdat) : rdat->status)) {
        apr_brigade_pflatten(f.ctx, &ch2->BigBuffer, &ch2->zz_filesize, r->pool);
        apr_brigade_destroy(f.ctx);
        ch2->zz_mtime = rdat->mtime ? rdat->mtime
            : apr_date_parse_http(apr_table_get(rdat->headers_out, "Last-Modified"));
    }
    ap_destroy_sub_req(rdat);

    if (!rv) {
        ch2->where = W_LIVE;
        return 1;
    }
#else
    if(!apr_stat(&CountStat,ch2->zz_fName,APR_FINFO_MIN,r->pool)) /* found */
    {
        ch2->zz_filesize = CountStat.size ;
        ch2->zz_mtime = CountStat.mtime ;
        ch2->where = W_LIVE ;
        return 1 ;
    }
#endif
----[BigBuffer アロケート / dat 読み込みの部分はスキップ]-------------
#ifndef SNOWMAN
    ch2->BigBuffer = apr_palloc(r->pool, ch2->zz_filesize); /* ←多分こんな形で BigBuffer 領域を確保してますよね? */
    if (apr_file_open(&in,ch2->zz_fName,APR_READ,APR_OS_DEFAULT,r->pool)) {return 3011;}
    apr_file_read(in, ch2->BigBuffer, &ch2->zz_filesize);
    apr_file_close(in) ;
#endif
----------------------------------------------------------------------

419 :root▲ ★ :2005/12/05(月) 22:39:57 ID:???0
>>416
ほんとに?

>>417
了解です。

あとで、>>418 に挑戦してみるです。

420 :root▲ ★ :2005/12/05(月) 22:42:24 ID:???0
>>416
ちゃんと動いてるっぽいなぁ。

http://qb6.2ch.net/operate2/
http://qb6.2ch.net/operate2/html/1133790046.html

https:// と ftp:// は、もともと ime.st にならない仕様(ime.st側でちゃんと動かないので)。

421 :root▲ ★ :2005/12/06(火) 01:51:22 ID:???0 BE:6567089-###
やってみました。

しかし、

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 :root▲ ★ :2005/12/06(火) 02:09:04 ID:???0 BE:730324-###
で、>>421 は出なくなって、今は、

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

うむむ。

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

う〜む......サブリクエストが無限ループになってるんですかね......
proxy 関連の設定はどうなってますか?


424 :◆cZfSunOs.U :2005/12/06(火) 02:22:45 ID:iYd2v5pK0
あと気になる点は......

・ ch2->zz_filesize の型 (apr_size_t? apr_off_t?)
・ ch2->BigBuffer[ch2->zz_filesize] に '\0' を置く必要あり?

425 :root▲ ★ :2005/12/06(火) 02:29:52 ID:???0 BE:2463539-###
>>424
> apr_size_t zz_filesize ;

のようです。

で、apr_file_close(in) の後は、

p = ch2->BigBuffer ;
for(i=0;i<ch2->zz_filesize;i++,p++)
{
if(*p == '\0') *p = '*' ;
}
*p = '\0' ;

p = ch2->BigBuffer ;
ch2->lineNum = 0 ;

と、やっている模様。

426 :root▲ ★ :2005/12/06(火) 02:31:04 ID:???0 BE:2189164-###
>>423
> proxy 関連の設定はどうなってますか?

# livejupiter
ProxyPass /livejupiter/SETTING.TXT !
ProxyPass /livejupiter/ http://live22x.2ch.net/livejupiter/
ProxyPassReverse /livejupiter/ http://live22x.2ch.net/livejupiter/

です。

427 :◆cZfSunOs.U :2005/12/06(火) 02:44:03 ID:iYd2v5pK0
>>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;
+        ch2->BigBuffer = apr_palloc(r->pool, ch2->zz_filesize + 1);
+        apr_brigade_flatten(f.ctx, ch2->BigBuffer, &ch2->zz_filesize);


>>426 了解です.特に問題はなさそうですね.何が起こってるのかトレースできればいいんですが......

428 :root▲ ★ :2005/12/06(火) 02:57:19 ID:???0 BE:729942-###
ううむ、>>422 のようです。>>427

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

CH2READ ch2 ;

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

char BigBuffer[SZ_BIGBUF] ;

429 :root▲ ★ :2005/12/06(火) 03:05:30 ID:???0 BE:4925096-###
で、入れてみましたが、

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

のようです。

430 :◆cZfSunOs.U :2005/12/06(火) 03:07:50 ID:iYd2v5pK0
>>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);

# デカい構造体をスタックに確保するってのはちょっと不安があるわけですが,
# 今までそれで動いてたのなら今回の問題とは無関係だろうということで......

で......死んだ時の core のバックトレースを取るとか,truss でトレースするとか
できますでしょうか......?

431 :root▲ ★ :2005/12/06(火) 03:08:15 ID:???0 BE:4925096-###
現在のもの:

+#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

+#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};
+#else
+ ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
+#endif
+ ap_filter_t f = {&frec, NULL, NULL, r, r->connection};
+ char *uri = apr_pstrcat(r->pool, "/", ch2->zz_ita, "/dat/", ch2->zz_key, ".dat", NULL);
+ request_rec *rdat = ap_sub_req_lookup_uri(uri, r, &f);
+
+ if (!(rv = rdat->status == HTTP_OK ? ap_run_sub_req(rdat) : rdat->status)) {
+ apr_off_t blen;
+ apr_brigade_length(f.ctx, 1, &blen);
+ ch2->zz_filesize = blen;
+ apr_brigade_flatten(f.ctx, ch2->BigBuffer, &ch2->zz_filesize);
+ apr_brigade_destroy(f.ctx);
+ ch2->zz_mtime = rdat->mtime ? rdat->mtime
+ : apr_date_parse_http(apr_table_get(rdat->headers_out, "Last-Modified"));
+ }
+ ap_destroy_sub_req(rdat);
+
+ if (!rv) {
+ ch2->where = W_LIVE;
+ return 1;
+ }
+#else
(続く)

432 :root▲ ★ :2005/12/06(火) 03:11:20 ID:???0 BE:1094562-###
>>430
何かのエラー番号: datが大き杉
ってことですかね。

で、Apacheのcoreをとるには、、、。

433 :root▲ ★ :2005/12/06(火) 03:12:33 ID:???0 BE:4378368-###
if(ch2->zz_filesize > SZ_BIGMAX) return 3002 ;

だから、3002でいいのかな。

434 :root▲ ★ :2005/12/06(火) 03:14:30 ID:???0 BE:730324-###
ということで、今こうです。
結果は同じか。

で、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};
+#else
+ ap_filter_rec_t frec = {"READDAT", {rdat_filter}, NULL, AP_FTYPE_RESOURCE, NULL};
+#endif
+ ap_filter_t f = {&frec, NULL, NULL, r, r->connection};
+ char *uri = apr_pstrcat(r->pool, "/", ch2->zz_ita, "/dat/", ch2->zz_key, ".dat", NULL);
+ request_rec *rdat = ap_sub_req_lookup_uri(uri, r, &f);
+
+ if (!(rv = rdat->status == HTTP_OK ? ap_run_sub_req(rdat) : rdat->status)) {
+ apr_off_t blen;
+ apr_brigade_length(f.ctx, 1, &blen);
+ if ((ch2->zz_filesize = blen) >= SZ_BIGBUF)
+ return 3002;
+ apr_brigade_flatten(f.ctx, ch2->BigBuffer, &ch2->zz_filesize);
+ apr_brigade_destroy(f.ctx);
+ ch2->zz_mtime = rdat->mtime ? rdat->mtime
+ : apr_date_parse_http(apr_table_get(rdat->headers_out, "Last-Modified"));
+ }
+ ap_destroy_sub_req(rdat);
+
+ if (!rv) {
+ ch2->where = W_LIVE;
+ return 1;
+ }
+#else

435 :◆cZfSunOs.U :2005/12/06(火) 03:16:17 ID:iYd2v5pK0
>>432
CoreDumpDirectory /tmp
とかで(httpd プロセスが書き込み可能なディレクトリを指定).

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

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

にしないとしょうがないですか......

436 :root▲ ★ :2005/12/06(火) 03:18:33 ID:???0 BE:547632-###
>>435
設定してみた。

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

なので、return 0ですか。

437 :root▲ ★ :2005/12/06(火) 03:26:08 ID:???0 BE:2189546-###
ううむ、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:45 ID:iYd2v5pK0
う〜む,なぜだろう......となると......
http://www.freebsd.org/cgi/man.cgi?query=truss
は使えるんでしょうか......?

439 :root▲ ★ :2005/12/06(火) 03:42:26 ID:???0 BE:1368353-###
truss はできますが、Solarisほど強力じゃないのか。

http://httpd.apache.org/dev/debugging.html

これですか。

440 :◆cZfSunOs.U :2005/12/06(火) 03:47:48 ID:iYd2v5pK0
そうか.....httpd が最初に root で立ち上がってると OS のデフォルトでは
core 吐かないようになってるのかな......とすると,とりあえず直接 User
ディレクティブで指定してるユーザで立ち上げてみるとか......

441 :root▲ ★ :2005/12/06(火) 03:57:33 ID:???0 BE:821333-###
302 みたいです。<= rdat->status

442 :root▲ ★ :2005/12/06(火) 03:58:42 ID:???0 BE:821333-###
すんません。かんちがいだった。>>441

443 :root▲ ★ :2005/12/06(火) 03:59:21 ID:???0 BE:3283294-###
200 だなぁ。ちゃんと。

444 :root▲ ★ :2005/12/06(火) 04:04:30 ID:???0 BE:2554447-###
core dumpしてるの、ここじゃないですね。
もっとあとみたい。

445 :root▲ ★ :2005/12/06(火) 04:09:12 ID:???0 BE:2919348-###
ap_rprintf(r, "%s\n", ch2->BigBuffer);

ってやっても、なんかちゃんと出ないみたい。

446 :◆cZfSunOs.U :2005/12/06(火) 04:20:04 ID:iYd2v5pK0
>>441-445 乙です.こちらのローカル環境ではOkなんですが,う〜む......

447 :root▲ ★ :2005/12/06(火) 04:22:22 ID:???0 BE:3192375-###
-funsigned-char しているせいかなぁ、、、。

448 :root▲ ★ :2005/12/06(火) 04:24:03 ID:???0 BE:1916137-###
strlen(ch2->BigBuffer) が、3らしい。ううむ。

449 :◆cZfSunOs.U :2005/12/06(火) 04:33:03 ID:iYd2v5pK0
う〜む......原因もつかめないとすると......サブリクエスト方式をやめて
ソケットで localhost に取りに行く方式にした方がいいんですかねぇ.
read.cgi 1呼び出しごとに2プロセス消費することになっちゃいますが......

450 :root▲ ★ :2005/12/06(火) 04:38:46 ID:???0 BE:1642436-###
>>449
ちと、キャッシュ関連やめてみるです。

451 :root▲ ★ :2005/12/06(火) 04:40:34 ID:???0 BE:1824645-###
同じだった。

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

>>449
それも、なんかしゃくですね。ううむ。

452 :root▲ ★ :2005/12/06(火) 04:44:36 ID:???0 BE:1094562-###
バッファを大域変数でとってみたけど、同じだった。

apr_brigade_flatten のところが、ちゃんと動いていない??

453 :◆cZfSunOs.U :2005/12/06(火) 04:47:52 ID:iYd2v5pK0
ch2->zz_filesize はどうですか......?

454 :root▲ ★ :2005/12/06(火) 04:51:19 ID:???0 BE:1368735-###
http://live22x1.2ch.net/test/read.cgi/livejupiter/9240000003/
を読んで、

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

ってやったら、832 って出たです。
実際には、1428バイトあるですね。

455 :動け動けウゴウゴ2ちゃんねる :2005/12/06(火) 04:54:01 ID:JNumL22n0
1f 8b 8 0はgzipか

456 :root▲ ★ :2005/12/06(火) 04:54:33 ID:???0 BE:2553874-###
>>455
おーーー。

457 :root▲ ★ :2005/12/06(火) 04:55:49 ID:???0 BE:2463539-###
ってことは、、、。
ここは1Gbps内部接続だし、圧縮はなくてもいいような気もするです。

284KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30