I had some problems with http://lists.oav.net/wws/arc/caudium-general/2006-02/thrd1.html
on my darwin box and on some Debian Sarge machines. With the http://lists.oav.net/wws/arc/caudium-devel/2006-02/
, the problem has been hopefully fixed.
Sometimes these modules couldn't write the data on their output file descriptor and hung. The fix was to have a callback for writing the data once the file descriptor can accept them. There's a new option ins the Caudium configuration interface which limit the real time the CGI module should wait for this callback. It's labelled "Limits: Timeout when network buffer is full".
Detailed fix for incomplete CGI pages: http://cvsweb.caudiumforge.net/cgi-bin/cvsweb.cgi/caudium/server/modules/scripting/cgi.pike.diff?r1=1.60;r2=1.56;cvsroot=caudium;f=h
The fix is available on CVS head for now, up from 1.60 and is totally compatible with Caudium 1.4. It should be backported soon and be available on forthcoming Caudium 1.4.8.
What can you see in your debug log now?
- CGI:Wrapper::done() Some data from the buffer hasn't been sent, yet
This means the CGI module was unable to send its data. It's now waiting for a callback for writing them. That's just a warning, in most cases, the module will get the callback and data will be written.
- CGI:Wrapper::destroy() killed while there was still data in the buffer
The CGI module was waiting for a callback (see the previous warning), but the callback didn't happened before the "Timeout when network buffer is full" options. The request have been aborted, the page won't be totally sent to the client.
Check out http://caudium.net/server/docs/related/php4.rxml
for more informations.