AutoLinkでエイリアスを書くとタイムアウトする

  • ページ: BugTrack
  • 投稿者: jitte
  • 優先順位: 低
  • 状態: 保留
  • カテゴリー: 本体バグ
  • 投稿日: 2004-11-01 (月) 23:53:56
  • バージョン: 1.4, 1.4.3(B-Wiki), 1.4.4

メッセージ

  • AutoLinkを有効にする(この例では8以下)
  • 「ぷきぷき」「ぷきぷきうぃきうぃき」 というページを作る。
  • 両ページの内容は
    #comment
    とする。
  • 片方のページでコメント欄に
    [[ぷきぷきうぃきうぃき>http://pukiwiki.example.org/]]
    と書く。
  • もう一方のページでコメント欄に
    [[ぷきぷきうぃきうぃき>http://pukiwiki.example.org/]]
    と書くと、タイムアウトしてしまう。保存はできている。

  • この問題って、内部検索に時間がかかりすぎてる場合にも(タイムアウトが)発生しやすいんですよね (^^; -- みこ 2004-11-02 (火) 07:36:54
  • おそらく lib/link.php の links_update関数の再帰の問題かとおもいます。*1 -- みこ 2004-11-02 (火) 07:39:24
  • links_update()関数が無限ループを起こしています。 $rel_file_existがTRUEに(.relファイルが存在)ならないとループを抜け出せないようですが、
    	// $pageが新規作成されたページで、AutoLinkの対象となり得る場合
    	if ($time && ! $rel_file_exist && $autolink
                         ~~~~~~~~~~~~~~~~~
    参照がないときに.relファイルを作らない仕掛けになっています。
    diff -u -r1.3 link.php
    --- lib/link.php	21 Oct 2004 15:07:21 -0000	1.3
    +++ lib/link.php	2 Nov 2004 01:41:17 -0000
    @@ -73,12 +73,10 @@
     	// .rel:$pageが参照しているページの一覧
     	if ($time) {
     		// ページが存在している
    -		if (! empty($rel_new)) {
         			$fp = fopen($rel_file, 'w')
         				or die_message('cannot write ' . htmlspecialchars($rel_file));
     			fputs($fp, join("\t", $rel_new));
     			fclose($fp);
    -		}
     	}
     
     	// .ref:$_pageを参照しているページの一覧
    このように.relファイルを(空の場合も)必ず作るようにしておけば回避できると思います。 -- 2004-11-02 (火) 10:56:05

*1 この部分は、ソースコメントでも気になる文言がはいってますし (^^;

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-04-17 (日) 16:17:26
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.178 sec.

OSDN