PEAK XOOPS - コンテンツの更新ができなくなります in englishin japanese

コンテンツの更新ができなくなります

  • You cannot open a new topic into this forum
  • Guests cannot post into this forum
Previous post - Next post | Parent - Children.1 .2 .3 .4 .5 .6 .7 | Posted on 2008/6/29 16:32
ishizuka  二等兵   Posts: 7
はじめまして ishizukaです

 pico1.2を使用しているのですが、コンテンツの更新を行うと画面が真っ白になってしまい困っています。
 rootで作成したコンテンツをroot以外のユーザで更新をしていて、問題なく操作できていたのですが、コンテンツのソースがある一定サイズを超えると、root以外のユーザでの更新が出来なくなります。(「編集内容を登録」や「プレビュー」ボタンを押下すると真っ白い画面になる。)
 rootでは大きなサイズでも更新でき、root以外でも、サイズが小さい分には更新できますので、権限の問題ではなさそうなのですが、どの辺りを調べれば解決できそうか教えてください。
 ためしに1.6にアップデートしてみましたが、現象は変わりませんでした。
 rootかそれ以外かで挙動が変わるようなことがあるのでしょうか?

 よろしくお願いします。
Votes:3 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2008/7/1 12:19
GIJOE  先任軍曹   Posts: 4110
ishizukaさん、こんにちは。

Quote:

 pico1.2を使用しているのですが、コンテンツの更新を行うと画面が真っ白になってしまい困っています。
 rootで作成したコンテンツをroot以外のユーザで更新をしていて、問題なく操作できていたのですが、コンテンツのソースがある一定サイズを超えると、root以外のユーザでの更新が出来なくなります。(「編集内容を登録」や「プレビュー」ボタンを押下すると真っ白い画面になる。)
「一定サイズを超えると」というあたり、バグっぽい匂いがプンプンしますね
ただ、真っ白だけでは見当をつけられないので、何らかの方法でエラーメッセージを出していただけませんでしょうか。

まずはPHPデバッグモードをONにしてから、そのエラーを再現してみてください。
サーバにエラーログとして記録されていることもあります。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2008/7/1 21:21
ishizuka  二等兵   Posts: 7
GIJOEさん はじめまして

PHPデバッグモードにすると
Notice [PHP]: Undefined property: XoopsMultiMailerLocal::$need_encode in file D:\fisinfo\xoops\language\japanese\xoopsmailerlocal.php line 197
Notice [PHP]: Undefined property: XoopsMultiMailerLocal::$mail_overload in file D:\fisinfo\xoops\language\japanese\xoopsmailerlocal.php line 208

というNoticeがでています。ちなみにここの部分をコメントアウトして、Noticeがでないようにしても状況は変わりません。

contentmanager.phpの先頭にデバッグログを追加しても表示されないので、どこで処理がとまっているかもわからない状況です。

サーバーのエラーログはapacheのerrror.logのことでしょうか?こちらには特にエラーはでていません。
他に調べたほうがよいところがあれば教えてください。

よろしくお願いします。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2008/7/1 21:22
ishizuka  二等兵   Posts: 7
現象が再現するサイズは10kbyte前後です。
サーバの構成は、PHP5,apache2.2,mysql5.0となります。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2008/7/2 12:45
GIJOE  先任軍曹   Posts: 4110
う〜ん。不思議ですね。

現状で一番怪しいのは、memory_limitでしょうか。
何もメッセージがないのに真っ白、という症状ともマッチします。

条件がやや弱い気もしますが、管理者が投稿するより、一般ユーザの投稿の方が、イベント通知を行う分だけメモリを喰う、と考えれば矛盾しません。


もし、メモリーリミットをかえられるようならかえてみてください。

それでダメなら、ステップbyステップで潰していくしかないですね。
Votes:2 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2008/7/2 14:48
ishizuka  二等兵   Posts: 7
memory_limitは128Mになっていたので、十分足りてそうですが、念のため256Mにしてみましたが、現象変わりませんでした。

とりあえずログをだして現象発生時点を確認したいと思います。
contentmanager.php
の呼び出し前にどういった処理が行われているか(どこのソースをあたればいいか)大雑把でかまいませんので、教えてもらえないでしょうか。
Votes:3 Average:3.33
Previous post - Next post | Parent - No child | Posted on 2008/7/3 13:30
GIJOE  先任軍曹   Posts: 4110
Quote:

ishizuka wrotes:
memory_limitは128Mになっていたので、十分足りてそうですが、念のため256Mにしてみましたが、現象変わりませんでした。
確かに128Mで足りないってことは考えづらいですね。

Quote:
とりあえずログをだして現象発生時点を確認したいと思います。
contentmanager.php
の呼び出し前にどういった処理が行われているか(どこのソースをあたればいいか)大雑把でかまいませんので、教えてもらえないでしょうか。
確認なんですが、コンテンツの「更新」ですよね?
そして、その一般ユーザがコンテンツを変更する際には、承認が必要ですよね?
さらに、その変更申請まではされていない状態ですよね?

であれば、main/contentmanager.php の64行目から87行目に、適宜breakポイントを入れて、どこまで到達しているかを見てください。

memory_limit でないのに、エラーもなしに真っ白ってことは、リダイレクト処理とかがうまくいかなくて、最後のexitだけが効いている、なんて可能性はあります。

リダイレクトだけの問題でないかも確認した方が良いでしょう。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2008/7/3 14:23
ishizuka  二等兵   Posts: 7
アドバイスありがとうございます。
現象がでるのは「更新」と「プレビュー」の両方です。
プレビューでも出ているので、DBアクセスではない箇所とは思っています。

まずは到達箇所の確認をしてみます。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2008/7/5 6:51
GIJOE  先任軍曹   Posts: 4110
Quote:

現象がでるのは「更新」と「プレビュー」の両方です。
プレビューでも真っ白になるんですか?
それは結構貴重な情報ですね。

であればwrapsモードにおけるリダイレクトで引っかかっている、という可能性もあります。
wrapsモードはどうなってますか?

いずれにせよ、プレビューであれば、到達地点のチェックは大分簡単のはずです。
それが判ったら教えてください。
Votes:1 Average:10.00
Previous post - Next post | Parent - Children.1 | Posted on 2008/7/6 15:58
ishizuka  二等兵   Posts: 7
wrapsモードはどちらにしても同じ現象です。
到達地点ですが、htmlのindex.phpがrequireしているmainfile.phpがさらにrequireしているinclude/common.phpの最後の行の
$xoopsController->executeCommon();
の前までは到達していて、この行の処理の中で止まっているところまでわかりました。
executeCommonはLegacy_Controllerのメソッドで、ここの最後の行
$this->_processPostFilter();
で止まっているようです。
Votes:1 Average:10.00
Previous post - Next post | Parent - No child | Posted on 2008/7/6 18:01
GIJOE  先任軍曹   Posts: 4110
Quote:

executeCommonはLegacy_Controllerのメソッドで、ここの最後の行
$this->_processPostFilter();
で止まっているようです。
ああ、それなら何らかのpreloadが原因でしょう。
xpWikiを入れてるなら、HypCommonとかありがちです。

Protectorの可能性もありますが、止まっている箇所を見る限りでは、postFilter関連でしょうね。
Votes:4 Average:5.00
Previous post - Next post | Parent - No child | Posted on 2008/7/6 18:29
ishizuka  二等兵   Posts: 7
ご指摘の通り、HypCommonのチェックで引っかかっていました!!
リンク集的なページだったので、サイズが増えることでリンクが増えてPOST SPAMの閾値を超えたようです。
picoとは全然関係ありませんでしたね。。お騒がせしてしまい、申し訳ありません。

大変助かりました。ありがとうございます。
Votes:2 Average:10.00

  Advanced search


Login
Username or e-mail:

Password:

Remember Me

Lost Password?

Register now!