#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

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.046 sec.

OSDN