You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Bill Hess <bh...@techrg.com> on 2005/05/05 14:48:55 UTC

Having problems with simple threaded perl CGI in mod_perl 1.29 (Apache 1.3.33)

I am trying to write a simple threaded perl CGI script to run under 
Apache::Registry on mod_perl 1.29 and Apache 1.3.33.
The perl scipt only creates 2 or 3 threads and perform a join() on each 
one to wait for data each thread returns.  The script seems to work 
fine, returning all the data I expect and all the HTML is generated 
using CGI.pm, thus rendering a complete and accurate page in a web 
browser.  On the server I get errors in my Apache error_log:

[Thu May  5 01:01:03 2005] null: semi-panic: attempt to dup freed string.
[Thu May  5 01:01:03 2005] [error] Undefined subroutine &main:: called.\n
[Thu May  5 01:01:03 2005] null: semi-panic: attempt to dup freed string.
[Thu May  5 01:01:03 2005] [error] Undefined subroutine &main:: called.\n
[Thu May  5 01:01:04 2005] [notice] child pid 13166 exit signal 
Segmentation fault (11), possible coredump in /usr/local/dmx/www

Running on RH 9 Linux - Perl 5.8.6, Apache 1.3.33, and mod_perl 1.29 all 
built by myself from source (not using RPM's)

Any Ideas?  Thanks...

-- 

Bill Hess


Re: Having problems with simple threaded perl CGI in mod_perl 1.29 (Apache 1.3.33)

Posted by Stas Bekman <st...@stason.org>.
Bill Hess wrote:
> I am trying to write a simple threaded perl CGI script to run under 
> Apache::Registry on mod_perl 1.29 and Apache 1.3.33.
> The perl scipt only creates 2 or 3 threads and perform a join() on each 
> one to wait for data each thread returns.  The script seems to work 
> fine, returning all the data I expect and all the HTML is generated 
> using CGI.pm, thus rendering a complete and accurate page in a web 
> browser.  On the server I get errors in my Apache error_log:
> 
> [Thu May  5 01:01:03 2005] null: semi-panic: attempt to dup freed string.
> [Thu May  5 01:01:03 2005] [error] Undefined subroutine &main:: called.\n
> [Thu May  5 01:01:03 2005] null: semi-panic: attempt to dup freed string.
> [Thu May  5 01:01:03 2005] [error] Undefined subroutine &main:: called.\n
> [Thu May  5 01:01:04 2005] [notice] child pid 13166 exit signal 
> Segmentation fault (11), possible coredump in /usr/local/dmx/www
> 
> Running on RH 9 Linux - Perl 5.8.6, Apache 1.3.33, and mod_perl 1.29 all 
> built by myself from source (not using RPM's)
> 
> Any Ideas?  Thanks...

Certainly, Bill.

The short answer: mod_perl1 can't be used with perl ithreads.

The longer answer: I'm now working on making mp2 thread safe, you can try 
this branch:
https://svn.apache.org/repos/asf/perl/modperl/branches/clone-skip-unstable/

If you are interested I can explain why this is happening, and how we are 
going to fix it.

In any case, at the moment perl threads suck and I won't suggest to use 
them in production in the general case. It may work for you in certain 
cases. Try using the threads emulation with Liz's forks.pm from CPAN.

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