青山です。

ようやく直接原因が特定できました。tempfile.rb を使用すると落ちます。そ
ういえば、つい先月、CGI ではないスクリプトでもやはり tempfile.rb を使
用すると落ちるというのにはまった事があります。その時に調べておくべきで
した。

という事で、ruby 本体の問題ですね。一応 cgi.rb 側での簡易対応パッチを
つけますが、さて、どうしたものでしょう。落ちた時の手順が思い出せない...

現在、確実に落とせるのは、apache 1.3.3 で、cgi.rb を使って
multipart_form のデータを受け取った場合です。

って、apache 1.3.9 では落ちないんですよね... これも難しい。まずは、
tempfile.rb, final.rb あたりを追うしかないでしょうか。


--- cgi.rb.org	Thu Jun 15 00:01:47 2000
+++ cgi.rb	Thu Jun 15 00:00:50 2000
@@ -759,11 +759,15 @@
         raise EOFError, "no content body"
       end
 
-      require "tempfile"
+      #require "tempfile"
 
       until -1 == content_length
         head = nil
-        body = Tempfile.new("CGI")
+        #body = Tempfile.new("CGI")
+        tempfile = "/tmp/CGI_tempfile_#{$$}_#{Time::now.usec.to_s}"
+        tempfiles = (tempfiles or []) + [tempfile]
+        at_exit{ tempfiles.each{|f| File::unlink(f) } }
+        body = File::open(tempfile, "w+")
         body.binmode
 
         until head and (/#{boundary}(?:#{EOL}|--)/n === buf)


-- 
青山 和光 Wakou Aoyama <wakou / fsinet.or.jp>