注釈に長い文章を入れるとエラーが発生†
- ページ: BugTrack
- 投稿者: eda
- 優先順位: 普通
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2003-08-01 (金) 11:02:51
- バージョン: 1.4rc3
メッセージ†
注釈にチルダやユーザー定義を複数入れると、サーバーエラー500が発生して、そのページが表示できなくなりました。
注釈に250文字程度の長い文章を入れると、サーバー内部エラー500が発生して、そのページが表示できなくなりました。
OSはWin2000 Serverで、IIS上で動かしていると発生しました。
同じWin2000でもApacheでは発生しないので、おそらくIISに依存するようなバグだと思われます。
- 文章で指摘するよりも、実際に、こういうページで操作したら、こうなりました。の方が、再現できて良いと思います。このような指摘だと、結果的に放置されることになってしまうので、詳細な情報をぜひ提示して下さい。 -- upk
- すみません、きちんと確認してみたところチルダなどではなく、二重カッコの中にある文章の長さが原因でした。全角で250文字程度の文章を注釈に入れると発生しました。IISだけで発生して、Apacheでは発生しませんでした。 -- eda
- IIS(5.0?)ならばどんなページでも発生します。適当なページを作って、本文あるなしに関わらず、長い文章の注釈を書くと「サーバー内部エラー500」が発生します。 -- eda
- 確かに落ちますね。IIS5.1 でも同じですね。でも更新の衝突では、問題ないので、整形時の処理が臭うというところかなぁ。-- upk
- make_link()内のpreg_replace_callback()が落ちているようです。テストスクリプトで試してみました。
<?php
error_reporting(E_ALL);
$str = '';
while (TRUE)
{
$str .= 'A';
print strlen($str)."\r";
flush();
preg_replace_callback('/\(\(((?:(?R)|(?!\)\)).)*)\)\)/','replace',"(($str))");
}
function replace($arr) { return ''; }
?>
- Win2K/PHP4.3.2(php.exe) : 2151文字あたりでStack Overflow(php4ts.dll)で落ちました。
WinXP+Apache1.0.28+php4.3.4では落ちませんでした。解決?始めからIIS5.1でって書いてありましたね(汗 -- Ratbeta