You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Stas Bekman <st...@stason.org> on 2003/11/07 00:52:57 UTC

[mp2] failing getppid test with 5.8.0

Scott gets the getppid test failing with mp2-cvs/5.8.0 but I can't reproduce 
it. I think this is because RH ships a fake 5.8.0. It says MAINT18379 which 
dates 27 Dec 2002 (5 months after 5.8.0 was released)
http://public.activestate.com/cgi-bin/perlbrowse?patch=18379
This problem shouldn't have happened since ppid caching was introduced in 5.8.1.

Scott, this patch will most likely make the error go away. Please confirm that 
it does.

Index: src/modules/perl/modperl_perl.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
retrieving revision 1.12
diff -u -r1.12 modperl_perl.h
--- src/modules/perl/modperl_perl.h     3 Nov 2003 23:31:19 -0000       1.12
+++ src/modules/perl/modperl_perl.h     6 Nov 2003 23:39:47 -0000
@@ -2,7 +2,7 @@
  #define MODPERL_PERL_H

  #if PERL_REVISION == 5 && \
-    (PERL_VERSION == 8 && PERL_SUBVERSION >= 1 || PERL_VERSION >= 9) && \
+    (PERL_VERSION == 8 && PERL_SUBVERSION >= 0 || PERL_VERSION >= 9) && \
      THREADS_HAVE_PIDS
  #define MP_MAINTAIN_PPID
  #endif


If you still get the failure please rebuild mod_perl with MP_TRACE=1 and then 
run the following:

rm t/logs/error_log
MOD_PERL_TRACE=g t/TEST -v perl/api

and post the output of:

grep modperl_perl_ids_get t/logs/error_log

Thanks!

================== Here is Scott's original report: ==========================

[sbeuker@krunk modperl-2.0]$ t/TEST -v perl/api
*** setting ulimit to allow core files
ulimit -c unlimited; t/TEST -v 'perl/api'
/usr/local/apache-2.0.48/bin/httpd -d /home/sbeuker/modperl-2.0/t -f
/home/sbeuker/modperl-2.0/t/conf/httpd.conf -DAPACHE2 -DPERL_USEITHREADS
using Apache/2.0.48 (prefork MPM)
[...]
perl/api....1..2
# Running under perl version 5.008 for linux
# Current time local: Thu Nov  6 17:09:30 2003
# Current time GMT:   Fri Nov  7 00:09:30 2003
# Using Test.pm version 1.23
# ppid 1
not ok 1
# pid 5339
ok 2
FAILED test 1
         Failed 1/2 tests, 50.00% okay
Failed Test Stat Wstat Total Fail  Failed  List of Failed
----------------------------------------------------------------------------
---
perl/api.t                 2    1  50.00%  1
*** server krunk.soc.shaw.ca:8529 shutdown
!!! error running tests (please examine t/logs/error_log)






*** mod_perl version 1.9911

*** using lib/Apache/BuildConfig.pm
*** Makefile.PL options:
   MP_APXS        => /usr/local/apache-2.0.48/bin/apxs
   MP_COMPAT_1X   => 1
   MP_GENERATE_XS => 1
   MP_LIBNAME     => mod_perl
   MP_USE_DSO     => 1
   MP_USE_STATIC  => 1


*** /usr/local/apache-2.0.48/bin/httpd -V
Server version: Apache/2.0.48
Server built:   Oct 29 2003 16:38:11
Server's Module Magic Number: 20020903:4
Architecture:   32-bit
Server compiled with....
  -D APACHE_MPM_DIR="server/mpm/prefork"
  -D APR_HAS_SENDFILE
  -D APR_HAS_MMAP
  -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
  -D APR_USE_PROC_PTHREAD_SERIALIZE
  -D APR_USE_PTHREAD_SERIALIZE
  -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
  -D APR_HAS_OTHER_CHILD
  -D AP_HAVE_RELIABLE_PIPED_LOGS
  -D HTTPD_ROOT="/usr/local/apache-2.0.48"
  -D SUEXEC_BIN="/usr/local/apache-2.0.48/bin/suexec"
  -D DEFAULT_PIDLOG="logs/httpd.pid"
  -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
  -D DEFAULT_LOCKFILE="logs/accept.lock"
  -D DEFAULT_ERRORLOG="logs/error_log"
  -D AP_TYPES_CONFIG_FILE="conf/mime.types"
  -D SERVER_CONFIG_FILE="conf/httpd.conf"


*** /usr/bin/perl -V
Summary of my perl5 (revision 5.0 version 8 subversion 0) configuration:
   Platform:
     osname=linux, osvers=2.4.21-1.1931.2.382.entsmp,
archname=i386-linux-thread-multi
     uname='linux str'
     config_args='-des -Doptimize=-O2 -g -pipe -march=i386 -mcpu=i686
-Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat,
Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux
-Dvendorprefix=/usr -Dsiteprefix=/usr -Dotherlibdirs=/usr/lib/perl5/5.8.0
-Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly
-Dpager=/usr/bin/less -isr'
     hint=recommended, useposix=true, d_sigaction=define
     usethreads=define use5005threads=undef'
  useithreads=define usemultiplicity=
     useperlio= d_sfio=undef uselargefiles=define usesocks=undef
     use64bitint=undef use64bitall=un uselongdouble=
     usemymalloc=, bincompat5005=undef
   Compiler:
     cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
-DDEBUGGING -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm',
     optimize='',
     cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING
-fno-strict-aliasing -I/usr/local/include -I/usr/include/gdbm'
     ccversion='', gccversion='3.2.2 20030222 (Red Hat Linux 3.2.2-5)',
gccosandvers=''
gccversion='3.2.2 200302'
     intsize=r, longsize=r, ptrsize=5, doublesize=8, byteorder=1234
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
     ivtype='long'
k', ivsize=4'
ivtype='l, nvtype='double'
o_nonbl', nvsize=, Off_t='', lseeksize=8
     alignbytes=4, prototype=define
   Linker and Libraries:
     ld='gcc'
l', ldflags =' -L/u'
     libpth=/usr/local/lib /lib /usr/lib
     libs=-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil
     perllibs=
     libc=/lib/libc-2.3.2.so, so=so, useshrplib=true, libperl=libper
     gnulibc_version='2.3.2'
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so', d_dlsymun=undef, ccdlflags='-rdynamic
-Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE'
     cccdlflags='-fPIC'
ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5', lddlflags='s
Unicode/Normalize XS/A'


Characteristics of this binary (from libperl):
   Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
PERL_IMPLICIT_CONTEXT
   Locally applied patches:
         MAINT18379
   Built under linux
   Compiled at Aug 13 2003 11:47:58
   %ENV:
     PERL_LWP_USE_HTTP_10="1"
   @INC:
     /usr/lib/perl5/5.8.0/i386-linux-thread-multi
     /usr/lib/perl5/5.8.0
     /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi
     /usr/lib/perl5/site_perl/5.8.0
     /usr/lib/perl5/site_perl
     /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi
     /usr/lib/perl5/vendor_perl/5.8.0
     /usr/lib/perl5/vendor_perl
     /usr/lib/perl5/5.8.0/i386-linux-thread-multi
     /usr/lib/perl5/5.8.0
     .

__________________________________________________________________
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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [mp2] failing getppid test with 5.8.0

Posted by Stas Bekman <st...@stason.org>.
Rafael Garcia-Suarez wrote:
> Stas Bekman wrote:
> 
>>Scott gets the getppid test failing with mp2-cvs/5.8.0 but I can't reproduce 
>>it. I think this is because RH ships a fake 5.8.0. It says MAINT18379 which 
>>dates 27 Dec 2002 (5 months after 5.8.0 was released)
>>http://public.activestate.com/cgi-bin/perlbrowse?patch=18379
>>This problem shouldn't have happened since ppid caching was introduced in 5.8.1.
> 
> 
> At some point we can't support all broken perls vendors ship.

But this brings us an important precedence of why PATCH_LEVEL needs to be 
exposed. I've posted a reminder to p5p to get this define exposed. (Gisle has 
posted the code already(

>>Scott, this patch will most likely make the error go away. Please confirm that 
>>it does.
> 
> 
> However THREADS_HAVE_PIDS doesn't exist in 5.8.0 so the patch below is safe
> to be applied, I believe. (although PERL_SUBVERSION >= 0 is always true, so the #if
> can be further simplified to #if PERL_VERSION >= 8)

Thanks Rafael, I've simplified it even further ;)

#if PERL_REVISION == 5 && PERL_VERSION >= 8 && THREADS_HAVE_PIDS
#define MP_MAINTAIN_PPID
#endif


__________________________________________________________________
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


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [mp2] failing getppid test with 5.8.0

Posted by Rafael Garcia-Suarez <ra...@hexaflux.com>.
Stas Bekman wrote:
>
> Scott gets the getppid test failing with mp2-cvs/5.8.0 but I can't reproduce 
> it. I think this is because RH ships a fake 5.8.0. It says MAINT18379 which 
> dates 27 Dec 2002 (5 months after 5.8.0 was released)
> http://public.activestate.com/cgi-bin/perlbrowse?patch=18379
> This problem shouldn't have happened since ppid caching was introduced in 5.8.1.

At some point we can't support all broken perls vendors ship.

> Scott, this patch will most likely make the error go away. Please confirm that 
> it does.

However THREADS_HAVE_PIDS doesn't exist in 5.8.0 so the patch below is safe
to be applied, I believe. (although PERL_SUBVERSION >= 0 is always true, so the #if
can be further simplified to #if PERL_VERSION >= 8)

> Index: src/modules/perl/modperl_perl.h
> ===================================================================
> RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_perl.h,v
> retrieving revision 1.12
> diff -u -r1.12 modperl_perl.h
> --- src/modules/perl/modperl_perl.h     3 Nov 2003 23:31:19 -0000       1.12
> +++ src/modules/perl/modperl_perl.h     6 Nov 2003 23:39:47 -0000
> @@ -2,7 +2,7 @@
>   #define MODPERL_PERL_H
> 
>   #if PERL_REVISION == 5 && \
> -    (PERL_VERSION == 8 && PERL_SUBVERSION >= 1 || PERL_VERSION >= 9) && \
> +    (PERL_VERSION == 8 && PERL_SUBVERSION >= 0 || PERL_VERSION >= 9) && \
>       THREADS_HAVE_PIDS
>   #define MP_MAINTAIN_PPID
>   #endif

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org