Hi All,

I have a problem and after a day of smashing my head against a wooded
desk, I thought it might be time to seek some advise.  My problem
involves Template Toolkit V 2.13 and mod_perl 1.99.13.

I'm moving some code to perl 5.8.3 compiled with ithreads.  I have a
mod_perl handler (Apache 2.0.48- worker mpm/ModPerl 1.99.13) which has a
default template directory and processes a bunch of these templates.  I
can write a perl script which will happily process my templates without
any problems from the shell.

The problem seems to arise when I do it through my handler.  In this
situation, I seem to get a segmentation fault in the child when I
process the template.  I've managed to track this down to one,
apparently
unsuspicious, line in Template::Process' interpolate_text method.  It's
in a while loop, which uses the condition:

=======================
   while ($text =~
           /
           ( (?: \\. | [^\$] ){1,3000} )
# escaped or non-'$' character [$1]
           |
           ( \$ (?:
# embedded variable [$2]
                (?: \{ ([^\}]*) \} )
# ${ ... }[$3]
                |
                ([\w\.]+)
# $word $4]
                  )
           )
         /gx) {


=======================

$text being the body of my file.  What I find interesting is both that
the regular expression seems straightforward enough, and also that when
I dump $text it appears to only contain a portion of the template which
it is supposed to represent.

The code seg faults and dosn't get past this point.  If I replace the
reg. exp. with /./, it obvious screws up elsewhere but there are no seg.
faults.

Can someone please tell me how to resolve this.  I've cross-posted due
to this error only occuring under mod_perl.  I was hoping that either
someone may have experienced something similar with other handlers or
perhaps it is a known tt2 problem?  Further it is also important to note
that I've run the same code without any trouble using the pre-fork
apache model.

Anyhelp would be appreciated!  I'm pretty baffled at the moment.

Many thanks!

Raf




-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to