Aleksandr Guidrevitch wrote:

I need to see that backtrace in hope to get an idea of what's going on.


How to do that ?
I started httpd within gdb, then send it a sigint:

(gdb) run -X -f /home/ag/development/tauction/conf/httpd.conf
Starting program: /usr/local/apache-perl/bin/httpd -X -f /home/ag/development/test/conf/httpd.conf
(no debugging symbols found)...(no debugging symbols found)...[New Thread 1024 (LWP 18788)]

why do you send it any signal at all? You say that it segfaults on its own when timeout happens. Just start the program under gdb and then issue that request that triggers the segfault.


Also I came to the following solution:
sub handler {
   ...
   open(F, ">/tmp/test-$$") && close(F);
   $apr->param;
   unlink "/tmp/test-$$";
   ...
}

then another server scans each second /tmp dir for the /^test-(\d+)$/ files modified
more than 2 second ago, kill the appropriate process $1 and removes the appropriate file in /tmp.
It is ugly, I know... But at the moment I don't see any better solution

Hmm, I wonder if Apache::Request should be changed to let the user control the timeout, without the backtrace I can't tell where the problem is, but if it's due to perl, then setting it on the C level before it reads the data might be different. Since it works fine after 300 secs timeout, isn't it?


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


-- Reporting bugs: http://perl.apache.org/bugs/ Mail list info: http://perl.apache.org/maillist/modperl.html



Reply via email to