Concurrent Clean : CGI : POSTしたときに、CGIの応答が完了しない
POSTで投げたときに、CGIの応答が完了しないで、タイムアウトするような動きをする。
場合によっては、ページが完全に描画されないこともある。
-
-
- -
-
telnetで確認してみると、どうも、チャンク通信で1つめのチャンクが終わった所で、後続のチャンクが送信されてこずにタイムアウトしてしまう模様。
チャンク通信にならなければ、正常に画面が表示される(が、POSTの場合は、ブラウザはまだ通信中のような挙動をしているが)。
-
-
- -
-
やはり、GETならば、チャンク通信になっても正しく動作しているようす。
POSTの場合は、標準入力からデータを読み込んでいるので、その処理が入ることがなにか影響を能えているのかもしれない。
ちょっとなやましい問題だなぁ。
-
-
- -
-
Cleanのファイル操作関連のソースは、Linuxについては、「ifileI03.s, ufileI02.c」にあるので、このソースを眺めてみる。
あと、「scon.c」にも関連する関数があった。
-
-
- -
-
apache2のエラーログを見たら
(104): ap_content_length_filter: apr_bucket_read() failed, referer: http://localhost:8090/edit/sha%2523rp/
という行があった。
-
-
- -
-
http://forge.novell.com/pipermail/apache-dev/2004-December/000196.html
同じ現象のようだ。 よくみたらちょっとだけ違う。
-
-
- -
-
http://www.mail-archive.com/apache-fp@lists.joshie.com/msg00467.html
こっちが近い。
-
-
- -
-
ためしに、標準入力を全く読まないようにしてみた所、現象は変化しなかった。
もしかして、入力を全て読んでいないで、残っているのがまずいのか?
-
-
- -
-
前に作ったCGIのテストプログラムで試してみたら、POSTの処理に問題はなさそうだった。
今作っているプログラムの書き方に問題があるのかな?