Plone その後

Apache の背後に Zope を置いた場合に、SSL で POST するとうまく書き込めない問題ですが、どうも、Zope 2.8.5 単体でも起きる問題だということが分かりました。
Zope で DTML Document オブジェクトを起こしてファイル内容を編集するとき、

Error Type: AttributeError
Error Value: 'list' object has no attribute 'strip'

といって怒られてしまうのです。
構成ですが、Apache 2.0.55 + Zope 2.8.5 です。SSLApache にデコードさせています。
とほほ。ここでいう list って、いわゆる Python の list 型かなあ。確かに、list クラスには strip() メソッドは定義されていないような気が。トレースバックでも見てみるか…。

結論

再び、Apache から Zope に向かう(proxy redirect?)HTTP を覗いてみました。ここは SSL が解かれて平文になっているので tcpdump で覗ける訳です。
結論としては、ここの HTTP において、要求の本文(ヘッダと空行に続く部分)の先頭箇所が化けたり破損したりしていることが分かりました。これだけでは Apache 2.0.55 の問題かブラウザ(Firefox 1.5)の問題か分からないのですが、IE 6.0 でも同様のことが起きるので*1Apache 側(あるいは mod_ssl)に問題がある可能性が濃厚です。
ただ、これが Apache 一般の問題なのか、NetBSD 上での固有の問題なのかは分かりません。暗号化に関わるところなので、ちょっとデバッグするのが大変そう。時間があったら、Apache の別バージョンで試してみようかと思っています。あ、OpenSSL も関係してくるなあ。

後記(12/30)

pkgsrc の OpenSSL 0.9.7i と自分でビルドした Apache 2.0.55 を試してみましたが結果は同じでした。なんだか行き詰まってきましたが、明日は古い Apache のバージョンを試してみたいと思っています。

後記(01/01)

Apache 2.0.54 (pkgsrc ではなく、自分でビルドしたもの)では問題が再現しませんでした。どうも、ここの違いが臭そうです。

後記(01/02)

Apache 2.2.0 (自分でビルドしたもの)では、正しく動作しています。つまり、問題が再現していません。うーん。2.2.0 に移行するかなー。本来ならば、2.0.54 と 2.0.55 の差分を追っかけるべきなんだろうけど、ちょっと元気が出ません。

*1:ただし、FirefoxIE の同じ要求で現象が起きる訳ではなく、現象を見るにはそれぞれ異なった要求を送る必要があります。これは、要求フォーマットが異なるので仕方ないでしょう。