#author("2017-08-23T06:36:56+09:00;2005-04-17T16:17:26+09:00","","") *AutoLinkでエイリアスを書くとタイムアウトする [#v5d52167] -ページ: BugTrack -投稿者: [[jitte]] -優先順位: 低 -状態: CVS待ち -状態: 保留 -カテゴリー: 本体バグ -投稿日: 2004-11-01 (月) 23:53:56 -バージョン: 1.4, 1.4.3(B-Wiki), 1.4.4 **メッセージ [#n6a19c26] - AutoLinkを有効にする(この例では8以下) - 「ぷきぷき」「ぷきぷきうぃきうぃき」 というページを作る。 - 両ページの内容は #comment とする。 - 片方のページでコメント欄に [[ぷきぷきうぃきうぃき>http://pukiwiki.example.org/]] と書く。 - もう一方のページでコメント欄に [[ぷきぷきうぃきうぃき>http://pukiwiki.example.org/]] と書くと、タイムアウトしてしまう。保存はできている。 ---- -この問題って、内部検索に時間がかかりすぎてる場合にも(タイムアウトが)発生しやすいんですよね (^^; -- [[みこ]] &new{2004-11-02 (火) 07:36:54}; -おそらく lib/link.php の links_update関数の再帰の問題かとおもいます。((この部分は、ソースコメントでも気になる文言がはいってますし (^^;)) -- [[みこ]] &new{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ファイルを(空の場合も)必ず作るようにしておけば回避できると思います。 -- &new{2004-11-02 (火) 10:56:05}; //#comment