Stas Bekman wrote:
There are two things I'd suggest to try:
1) pass $r to CGI->new($r), in which case it won't rely on the global Apache->request. And you can switch then to 'PerlHandler modperl'.
2) use the IO trace to debug what's going on:
you need to rebuild mp with MP_TRACE=1 and then add to httpd.conf:
PerlTrace o
http://perl.apache.org/docs/2.0/user/config/config.html#C_PerlTrace_
compare the traces you get on the good and the bad machines.
kyle's post got me thinking. it would be interesting to see the output of this along with those traces. this is against CGI.pm 3.00. untested, but you get the idea :)
--- 5.8.1/CGI.pm 2003-09-25 09:44:01.000000000 -0400 +++ ~CGI.pm 2003-10-30 19:24:53.000000000 -0500 @@ -834,6 +834,13 @@ my($self, $fh, $buff, $len, $offset) = @_; local $^W=0; # prevent a warning return undef unless defined($fh); + if ($MOD_PERL) { + warn '*** reading POST data: ', caller; + warn '*** yikes! read from POST twice!' + if $self->r->notes('CGIPOSTREAD'); + + $self->r->notes(CGIPOSTREAD => 1); + } return read($fh, $$buff, $len, $offset); }