Hello everyone. Before asking for help, let me state my configuration:

 

FreeBSD 4.9

Apache 1.3.29

Perl version 5.005_03

Mod_perl 1.29

 

Httpd.conf using:

 

PerlModule Apache::DBI

PerlModule Apache::Registry

PerlModule Apache::Resource

PerlSetEnv PERL_RLIMIT_CPU 60:90

PerlChildInitHandler Apache::Resource

 

<Files *.cgi>

SetHandler perl-script

PerlSendHeader On

PerlHandler Apache::Registry

</Files>

 

Were using index.cgi that calls all our modules.  We store the session ID in our db, and every subsequent http call uses that session ID to retrieve all the user’s data. This works fine when re-starting apache. After n amount of time (15 – 60 minutes, depending on the load), things start to go wrong. IE, data is not all there which gives errors, die statement, warnings. All sorts of bad stuff, but when hitting refresh it seems to work. Also I introduced Apache::Resource because a lot of process’ were hogging the cpu, so I am using a 60 second soft limit and 90 second hard limit. But they errors are so sporadic, its hard to diagnose. I could do a DBI->trace I suppose…

 

I suspect either there is a closure somewhere, or possibly when a child dies, the session ID terminates? We have a few dozen modules being used, and this is on a production box. Its also very hard to mimic the errors since they are so random. And I can’t really test this in single mode because of the load.

 

Can I use some module to make sure the session ID doesn’t terminate per child, or am I barking up the wrong tree here? Can someone steer me in the right direction or perhaps enlighten me on something I am missing/overlooked?

 

As of now, I disabled mod_perl, but things are very very slow J

 

I hope I made sense.

 

Thanks in advance.

 

Sagi

 

Reply via email to