2005年10月10日
不具合切り分けのためとりあえず非FastCGIバージョンに戻す。
FastCGIが原因なのか、MT3.2が原因なのか判らない不具合が噴出。
- 先にも書いた、XMLRPCでの投稿時に自動トラックバックが打たれない問題
- 他サイトからのトラックバックが受け付けられない
(TBを受け付けてくれない点では一緒なのだが、現象は「TBのHTTPリクエストはPOSTでおながいしまつ(POSTで打ってるっつうの!!)」「403 Throttled」とか毎回違って、意味不明) - 管理ツールでのプラグイン「利用/利用停止」の切り替えがうまくいかない
(何度利用停止にしてもうまくいかないと思えば、突然まとめて利用停止になってこんどは利用可にできなくなったりする)
なのでとりあえず一旦非FastCGIバージョンに戻して、問題の切り分けを図る。
うーん、せっかく再構築もXML-RPC投稿も早くなって喜んでたのに...。
最後のプラグイン切り替え問題は、元に戻して解決できた。
が、FastCGIの問題と言うよりは、これもMT側の中身の作り方のような気がする。
CGI::Fast経由でFastCGI使ってきて、経験的によく出会う問題に、CGI::Fastのループの中でCGI系のオブジェクトを一度でも使ってしまうと、以後再起動させるまでGET/POSTパラメータあたりが更新されなくなって挙動が不審になってしまう、という現象があるのですけど、それに近い振る舞いなので...。
どうしてループ内でCGIオブジェクトを作ると挙動不審になるのかまでは追えてないんだけど、例えばもし、CGIオブジェクトが内部で標準入力をもう一度読み込んでしまう事が問題なのだとしたら、MT::Appも内部で標準入力開いているので、同じ理由で不安定になるという事は考えられるかなと。
飽くまで推測。
後のはどっちが悪いのかよく判らない。
Ogawaさんとこでは、上のとか、トラックバックがらみの不具合出てないのかな?
等と書いて、さりげなくXMLRPCでの自動トラックバックテスト。
テスト結果:
やっぱりXML-RPC経由だと自動トラックバックされない。
投稿後、WebのUI上で再保存すると自動トラックバックされる。
3.2にするまではXML-RPC経由でも自動トラックバックされてたから、バグにせよ仕様変更にせよこれでMT側の問題確定。
Excerpt: 直してみたが、受け付けてくれるだろうか。
Weblog: ここギコ!
Tracked: 2005年10月12日 00:45
基本的にMT::Appオブジェクトから辿れるオブジェクトで、リクエストごとにmutableになるべきものは、init_requestの中で初期化するお約束です。
MT::App::CommentsやMT::App::Trackbackではこのあたり問題ないのですが、MT::App::CMSではやや不徹底な部分があり、多少の修正が必要になります。
XMLRPCServerでも同様のことに注意する必要があるのでしょうね。
コメントありがとうございます!!
> MT::App::CMSではやや不徹底な部分があり、多少の修正が必要
今見てみましたが、どこを修正すればいいのか...簡単には判りそうになさそうな感じです。
既に掴まれておられたら教えていただければ幸いです...。
(見ただけ、で、視てはいないのですが...甘えすぎ?)
XMLRPCは、自動トラックバックが動作しないのが問題なのですが、CGIバージョンでも同じ挙動なのでFastCGIは関係ないようです...。
Posted by: ねね at 2005年10月10日 16:38私のサイトへのトラックバック、なんかいろいろ難癖つけてははじかれて、手持ちの環境からはトラックバックが機能しているかどうかテストできません。
本エントリのみ、これに言及していようとなかろうと、1つだけ条件守ってくだされば自由にTB打ってくださって結構なので、どなたか打って下さいませんか...。
条件は、トラックバックに失敗したら、コメントでその旨残して下さる事です...可能ならばエラーメッセージ等も含め。
よろしくお願いします。
ubicast bloggerをインストールして確かめてみました。確かにうまくいきませんでした。で、ちょっとソースを見直してみました。すぐ分かりました。
MT3.2のXMLServer.pmおよびAtomServer.pmにtypoがあります。discover_tb_for_entryではなくてdiscover_tb_from_entryに書き換える必要があります。
ついでにubicast bloggerだと
<a href=
"url" ...>
みたいに変なところで改行が入ってしまうようで、このパターンにマッチするようにdiscover_tb_from_entryを書き換える必要があります。
ありがとうございます。
修正したところ、確かにXML-RPC経由でトラックバックが打てるようになりました。
MT3.2-Rlease2が出たようですが、この辺はまだ修正されていないようですね...。
レポート挙げた方がよさそうですね。
あと「トラックバックの送信は、HTTP POSTメソッドを使う必要があります。」エラーが出る理由も分かりました。
FastCGI環境では、$app->request_methodの戻り値がリクエストごとに更新されず、MT::Appオブジェクトが生成された直後のリクエストの値に固定されてしまうせいです。init_requestで初期化しておく必要があります。
http://as-is.net/blog/archives/001053.html
Posted by: (o) at 2005年10月15日 01:26![[ここギコ!]](http://kokogiko.net/logo.png)



・MovableType 3.2、MT::App::Trackback.pmの修正(Jak)
・MovableType 3.2、MT::App::Trackback.pmの修正(ambox.su)
・MovableType 3.2、MT::App::Trackback.pmの修正(ambox.su)
・わしズムを読んで「アイヌは民族じゃないよ だから先住民族ではあり得ない」というような奴には、「国連先住『部族』の権利に関する宣言だよ」で問題ない(kokogiko)
・わしズム内の一服の清涼剤「るいるいかむい」(kokogiko)
・大和民族の定義云々について(kokogiko)
・大和民族の定義云々について(kokogiko)
・「定義できない」とのたまうものを自説根拠の説明の中で延々と使う不誠実(笑)(kokogiko)
・わしズム内の一服の清涼剤「るいるいかむい」(むにゅう!)