PHP-OpenID XRDSの処理が途中で停止するサーバー

XREAのs317サーバだと、PHP-OpenIDのexamples/consumerプログラムにおいて、OPがXRDSだった場合に処理が途中で止まる。

try_auth.phpが真っ白で返ってきて焦った。

対策

s317サーバを使うのは止めましょう。同じXREA内でも他のサーバなら大丈夫みたい。

原因を特定できなかった

どこで止まるか?というのが一定してなくて困った。

さらにPHPがエラーメッセージを吐き出してくれないのにも困った。E_ALLでも無反応。ろうそくの火が消えるように、静か〜に止まる感じ(HTTPのレスポンスは空っぽで返ってくるくせに)。

挙動は大体いつもXRDSのXMLファイルのParse処理(DOMXPath Objectのqueryメソッドでxrd:Serviceを全て拾ってくる処理の辺り)でよく止まるという程度の状態であり、必ずここで止まるわけではなく、もっと先まで行くことも、ちょっと手前で止まることもあるのであった。

それなのに確実に失敗するという不思議。

レスポンスが返ってくるまで5秒もかかってないから、タイムアウトってわけじゃないだろうし、サーバが過負荷ってこともなさそうなんだけど…うーん判らん。

過信はいけないよ

これがサーバの環境(設定?あともしかしたら自分のアカウントだけかも?)の問題だと気が付くまでに1日かかった。

なんか悲しいのだけど、自分の処理能力を過信したのがいけなかったと思う。「俺様ならば原因特定と問題解決ができるはずだぜー!」っていう無用な頑張り。結果がでなければ価値がマイナス。

時間は有限だから区切っていかんとな。