I'm in need of some ideas!

I have a spinning mod_perl process.  I installed a

  $SIG{USR2} = \&Carp::confess;

handler and it pointed to this line:

   $cnt++ while $query->{query} =~ /(?:^|\s)[("]*\S$size\*/g;

which was suppose to count how many wildcards (words ending with '*') of a
given length were in the query.

So I changed it to this to see if that would help:

   while ( $query->{query} =~ /(?:^|\s)[("]*(\S+)\*/g ) {
       $wilds{ length $1 }++;
   }

But it still spins and kill -USR2 reports that new line.

On the production machine (Sun 5.6) I can spin the process any time I try a
request with a wild card "*".  Taking the httpd.conf and just changing the
port number I've been able to make it spin only once after many many
attempts.  I have not been able to make it happen on my development
machine, but it's running perl 5.6 instead of 5.00503.  Mod_perl 1.24 of
course.

Any idea on how to find out the reason for the spinning (if I can make it
happen again)?

I had a similar problem with a regexp spinning about a year ago running on
5.005_02 on this same machine that was fixed by upgrading to the currently
running 5.005_03.  
  see: http://x66.deja.com/viewthread.xp?AN=557820602




Bill Moseley
mailto:[EMAIL PROTECTED]

Reply via email to