Movable Typeでエラー発生箇所を特定する方法
Movable Typeでエラー発生箇所を特定する方法です。
Movable Type 5.0xで作っていたプラグインをMT5.1に移植したところ、新たに作成したロールを使って権限を与えたユーザーがウェブページの再構築を行ったところ、以下のエラーが発生するようになりました(この問題は5.11で解消されたバグと同件と思われます)。
エラーの詳細はシステムログにも出ていなかったのですが、システム管理画面のデバグモード(通常時は0)を「2」にすることで詳細が表示されます。
このように表示されます。
デバグモードの数字は次のとおりです(公式ドキュメントのDebugModeより抜粋)。
- 1:デバッグメッセージを表示する
- 2:スタックトレースメッセージ
- 8:構築に 1/4 秒以上かかったテンプレートのレポート
- 128:アップレベルのリクエスト/レスポンス情報の標準エラーへの出力
今回はプラグイン開発時のエラーだったので、コア機能の不具合かプラグインの実装誤りかという判断が伴いますが、コア機能の不具合が確実な場合は、このように詳細情報を取得してからMTQのフォーラムやFogbugzに報告すると良いかもしれません。
- MovableTypeプラグインの独自CGIをNginxに対応させる方法
- Movable Type 5で「Got an error: Can't use 'defined(%hash)' (Maybe you should just omit the defined()?)」というエラーになる場合の対処
- 旧バージョンのMTでPerl5.26(Perl5.24以降)に対応する方法
- MT6.2のファイルアップロードで「Undefined subroutine &POSIX::strftime」になる問題の対処
- Movable Typeのファイルアップロードで「アップロードしたファイルは大きすぎます。」というエラーになる場合の対処
- Movable Typeのパスワード変更で「URLが不正です。」というエラーなる件についての対処
- Movable Typeで「Cannot find column 'blogs' for class 'MT::Blog'」となる場合の対処
- Movable TypeでMTPageNextタグが効かなくなる不具合について
- Movable Typeの復元で「Request-URI Too Large」になるときの対処
- サーバ故障と「Connection error: Too many connections」エラーおよびMySQLテーブル破損について
- IE9でMovable Typeを利用する方法
- MTIfタグにtagモディファイアを利用する場合の注意事項
- Movable Type 5のブログの設定で「Can't call method "label" on unblessed reference」が発生する問題について
- Movable Type 5.03へのアップグレードで再構築時に「Script Error」が発生する件について(つづき)
- XREA/CORESERVERでMovable TypeのCaptchaが表示されない不具合について
いつも困った時の yujiroさんで申し訳ないのですが、突然のエラーに泣いています。
設定を変更したとか、新しい何かを入れたという覚えはないのですが、コメントの際にいつものように受け付けてはくれず、エラーメッセージが表示されます。表示はされるのですが、コメントそのものは受け容れてくれています。
このままではコメントを書いて下さる方に申し訳ないので、私なりにジタバタしました。再構築してみると、カテゴリ別ブログ記事の部分に何かひっかかるものがあるようです。エラーメッセージは「Can't call method "id" on an undefined value 」というもので、「閉じる」と「戻る」の間の「テンプレートの編集」をクリックすると「カテゴリ別ブログ記事リスト」の編集画面になりますが、どこが悪いのかさっぱり分かりません。「カテゴリ別ブログ記事」テンプレートは(ご覧いただけるように)http://www.michiko-oota.com/mt/souko/cat-iihi.txt に「アップロードしてありますが、InternetExploreではきちんと表示されないようです。Google Chromeでしたら、ちゃんと表示されました。もしも何かお判りになりましたら、助けて下さい。
不具合は不具合を呼ぶ、と言うこともありそうで、普通にエントリーを書いても時々同じようなエラーが出るようになってしまいました。思い切って、バージョンアップに踏み切ろうかという気持ちもあります。バックアップがとれる内にバックアップを取り、バージョンアップが出来たらエラーから脱出出来るだろうか、というのは一つの賭けではあるのですが。
どう思われますか? ←そう聞かれても・・・と言われそうですが(^_^;。
>Michikoさん
こんばんは。
ご質問の件ですが当方では原因不明です。
ただ、「Can't call method "id" on an undefined value」はPerlの処理で発生するエラーで、テンプレートタグでID(ブログ記事IDとかカテゴリIDなど)を取得しようとするところでエラーになっているようです。
「カテゴリ別ブログ記事リスト」の中にはそのようなテンプレートタグは見当たらないので、「ブログ記事の概要」テンプレートモジュールのところでひっかかっているかもしれません。
可能であれば「カテゴリ別ブログ記事リスト」テンプレートの以下の部分を削除して保存し、テストコメントなど行ってみてください。
<$mt:Include module="ブログ記事の概要"$>
コメントが正常に行えるようであればその中のどこかに問題箇所があると思います(それが分かっても解決にならないかもしれませんが)。逆に状況が変わらないようであれば、他の部分に問題があるということになります。
それではよろしくお願い致します。
yujiroさん、ご多忙中にもかかわらず親身のアドバイスありがとうございました。
元はといえば、コメントを投稿した際にエラーが出て、いつもの「本文に戻る」画面が表示されなくなったのが、今回の一連のトラブルの始まりでした。
ところが、今朝、私のブログにコメントを書いてくださった方がいらしたので、私もそのコメントに返信したところ、何事もなかったように、いつもの正常な反応でコメントを受け付けてくれました。
それで試しにブログを再構築(すべて)したところ、こちらもすんなり再構築できました。何の対処もしていなかったのに。
カテゴリーアーカイブの再構築の辺りでエラーに阻まれることを覚悟してたのに、あっけなく通り過ぎてしまいました。
「あれはなんだったの?」状態です。せっかくアドバイスくださったのに、そのアドバイス通りを確かめてみるのも今は怖いので、このままそっとしておくことをお許しください。
もしかしたら、また同様のトラブルやエラーに見舞われる可能性も小さくはないと思っていますが、今のところは「直った」と思ってもいいのかなぁ・・・というのはあまりに能天気すぎますか?
お騒がせして申し訳ありませんでしたが、当面、様子をみてみたいと思います。ありがとうございました。
>Michikoさん
こんばんは。
ご連絡ありがとうございました。
とりあえず解消したようでなによりです。
ではでは!