ふと思ったのですが、フォルダごとにHTMLメールを表示するか(ついでにリモートからデータを取ってきても良いかどうか)を指定できると便利かもしれませんね。
お気づきの方もいると思いますが、snak.orgはXREAでホストしています。バグトラックが不安定だという問題があって色々試しながら調べていたのですが、最近安定しているようなので何をやったのか書いておきます。ただ、これが原因であるかどうかはわからないです。そこでなぜそんな判断をしたかというあたりも含めて残しておきます。
現象としては以下のような問題が発生します。
そしてなぜか、以下のようにすると直ってしまいます(でも、しばらくすると再発します)。
この前Segmentation Faultでクラッシュするのが再現するようになったので、パケットをキャプチャしてみたところ、ブラウザ側から送られているリクエスト自体には問題がないようでした。そして、そのキャプチャしたリクエストを少しずつ加工しながら、telnetでサーバに送りつけて調べてみたところ、Cookieを削らなくても、一部の値を取り除いたり、キーの名前を変えたりするとエラーが発生しなくなることがあるというところまで分かりました。
つまり、原因としては以下の要因が考えられます。
しかし、スクリプトを一行書き換えると直るというあたりを見ると、サーバがリクエストを受け取ってからcgiに渡すまでの間に何かが起きているという線は薄そうです。逆にcgi.rbがおかしいということならば、前のサーバでも起きていてもおかしくないです。また、xreaとrubyでエラーが起きるというのはtDiary方面からも幾つか報告があがっているようですので、xrea固有の問題である可能性が高い気がします。
と考えると、xreaのruby自体がおかしいという線が一番有力です。そこで改めて考えてみると、サーバがRedHat 7.3で、rubyのパスは/usr/local/bin/rubyということは、rubyはRPMからではなくてサーバ上でコンパイルされた可能性が高いのではないかと考えられます。そして、RedHat 7.3のgccは安定版ではなく最適化関係などなどで色々なバグがあったgcc-2.96系です。そこで、gccのバグでよろしくないrubyが出来てしまったのではないかという推測をしてみました。
そこで、手近にあったRedHat 7.3にgcc-2.95.3を入れ(RPMはないのでソースからビルドします)、ruby-1.6.8をコンパイルしてみました。ついでに、ruby-postgresとruby-dbiもコンパイルしてみました。で、それをサーバのユーザディレクトリにインストールして、/usr/local/bin/rubyの代わりにそちらを使うようにしてみました。
入れ替えてから一週間弱経過しましたが、私のところではエラーが発生しなくなりました。まだ実績が少ないのでなんとも言えませんが、改善する可能性があるかも、程度のことは言えるのではないかと思います。
複数セッション対応は 0902版からでしょうか? いずれにしても試してみます. ありがとうございます.
そうです。今日のNightly Buildからですので、20030902からになります。
普段Courierをそれほど使っていないため、余りこなれていないと思いますので、おかしかったら教えてください。
xreaとrubyの件、情報ありがとうございました。個人的にすっきりしました。
xreaはこの件を把握しているのかなぁ。できればxreaで対処してもらいたいですね。
少しはお役に立てたようで良かったです。
Webで検索してみた限りでは、xrea側では認識していないのではないかと思います。
状況証拠しかなくこれが原因だと言い切れないので、もうしばらく様子を見て調子が良いようだったら、xreaの方に問い合わせてみようと思っています。