Thanks but the trick doesn't seem to help.

First the instruction seems wrong. With it, the resulting perl executable does 
not even have useithreads defined.

Then I try

CFLAGS='-m64 -mtune=nocona' ./Configure -Dinstallusrbinperl -Dusethreads 
-Duseithreads -Dprefix=/usr -des -A ccflags="-fPIC -m64 -mtune=nocona "

Now I get a perl with useithread and -mtune=nocona (versus -mtune=generic)

# perl -V
Summary of my perl5 (revision 5 version 16 subversion 1) configuration:
   
  Platform:
    osname=linux, osvers=2.6.32-131.12.1.el6.x86_64, 
archname=x86_64-linux-thread-multi
    uname='linux alcatraz6 2.6.32-131.12.1.el6.x86_64 #1 smp wed sep 21 
08:12:51 pdt 2011 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dinstallusrbinperl -Dusethreads -Duseithreads -Dprefix=/usr 
-des -A ccflags=-fPIC -m64 -mtune=nocona '
    hint=previous, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fPIC -fno-strict-aliasing 
-pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -fPIC -m64 -mtune=nocona',

Then I install the perl build, build mod_perl and install. Verify I'm using the 
new versions in apache. But still the script produces segfault consistently.

Did people ever get threads to work in mod_perl/apache/redhat enterprise linux 
6? May someone send the "perl -V" output. This basic feature should work out of 
box on any environment.


From: rsharm...@sapient.com
To: hackingb...@hotmail.com; modperl@perl.apache.org
Subject: RE: mod_perl always segfault on thread creation
Date: Tue, 21 Aug 2012 06:41:09 +0000









Hi,
 
You could try some options for configuring Perl given here:
http://perl.apache.org/docs/2.0/user/install/install.pod.orig
 
specially:
% CFLAGS='-m64 -mtune=nocona' ./Configure -des -A ccflags=-fPIC
 
Before doing a make.
 
Thanks,
Rommel.

 
 


From: hack bear [mailto:hackingb...@hotmail.com]


Sent: Tuesday, August 21, 2012 2:06 AM

To: modperl@perl.apache.org

Subject: mod_perl always segfault on thread creation


 

hi,



This is totally frustrating. My mod_perl script always causes segmentation 
fault when it tries to create a thread. I searched the Web and this forum, but 
there is still no definitive answers. My perl and mod_perl are of pretty recent 
versions and I check for
 the inclusion of useithreads config. I wrote a simple script to prove it:



use CGI;

use threads;

use Config;

use mod_perl;



our $LOGGER;

BEGIN {

    $LOGGER = Apache2::ServerUtil->server->log;

    $LOGGER->error("testhread starting (CGI version ".CGI->version.")");

}



my $q       = CGI->new;

my $check = defined $Config{useithreads};

$LOGGER->error("useithread? $check");

my $v = mod_perl->VERSION;

$LOGGER->error("version $v");



    my $thr = threads->create(sub { }); # comment out these two lines will work

    $thr->join(); # already crashed at the line above



$q->header(-status => '200 OK');



It produces logs



Aug 20 13:07:50 (4216) [error] testhread starting (CGI version 3.51)

Aug 20 13:07:50 (4216) [error] useithread? 1

Aug 20 13:07:50 (4216) [error] version 2.000004

Aug 20 13:07:51 (4159) [notice] child pid 4216 exit signal Segmentation fault 
(11)



Any way I can solve this?



Thanks!



(Perl -V)

Summary of my perl5 (revision 5 version 10 subversion 1) configuration:

   

  Platform:

    osname=linux, osvers=2.6.18-274.3.1.el5, archname=x86_64-linux-thread-multi

    uname='linux hs20-bc2-5.build.redhat.com 2.6.18-274.3.1.el5 #1 smp fri aug 
26 18:49:02 edt 2011 x86_64 x86_64 x86_64 gnulinux '

    config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic 
-DDEBUGGING=-g -Dversion=5.10.1 -Dmyhostname=localhost 
-Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat,
 Inc. -Dprefix=/usr -Dvendorprefix=/usr -Dsiteprefix=/usr/local 
-Dsitelib=/usr/local/share/perl5 -Dsitearch=/usr/local/lib64/perl5 
-Dprivlib=/usr/share/perl5 -Darchlib=/usr/lib64/perl5 
-Dvendorlib=/usr/share/perl5/vendor_perl 
-Dvendorarch=/usr/lib64/perl5/vendor_perl
 -Dinc_version_list=5.10.0 -Darchname=x86_64-linux-thread-multi 
-Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Duseshrplib -Dusethreads 
-Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm 
-Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio
 -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr 
-Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto 
-Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto 
-Ud_setservent_r_proto -Dscriptdir=/usr/bin'

    hint=recommended, useposix=true, d_sigaction=define

    useithreads=define, usemultiplicity=define

    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef

    use64bitint=define, use64bitall=define, uselongdouble=undef

    usemymalloc=n, bincompat5005=undef

  Compiler:

    cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe 
-fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64',

    optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic',

    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe 
-fstack-protector -I/usr/local/include'

    ccversion='', gccversion='4.4.5 20110214 (Red Hat 4.4.5-6)', gccosandvers=''

    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678

    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16

    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', 
lseeksize=8

    alignbytes=8, prototype=define

  Linker and Libraries:

    ld='gcc', ldflags =' -fstack-protector'

    libpth=/usr/local/lib64 /lib64 /usr/lib64

    libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc

    perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc

    libc=, so=so, useshrplib=true, libperl=libperl.so

    gnulibc_version='2.12'

  Dynamic Linking:

    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E 
-Wl,-rpath,/usr/lib64/perl5/CORE'

    cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall 
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
--param=ssp-buffer-size=4 -m64 -mtune=generic'

Characteristics of this binary (from libperl): 

  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV

                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_64_BIT_ALL

                        USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES

                        USE_PERLIO USE_REENTRANT_API

  Built under linux

  Compiled at Oct  4 2011 10:53:24

  @INC:

    /usr/local/lib64/perl5

    /usr/local/share/perl5

    /usr/lib64/perl5/vendor_perl

    /usr/share/perl5/vendor_perl

    /usr/lib64/perl5

    /usr/share/perl5

                                          

Reply via email to