[mp2] Test fails with undefined symbols on AIX [mod_perl 2.0.5/apache-2.2.22/perl-5.14.2]

Peter Heimann <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <[email protected]>
1. Problem Description:

 On AIX 5.3, with both mod_perl 2.0.5 and 2.0.6-rc2,
 "perl -e 'use Apache2::Request;'" fails because the loader cannot find
 runtime definitions for several symbols:
 "Symbol modperl_hash_tied_object was referenced from module
 /usr/local/perl/lib/site_perl/5.14.2/aix-thread-multi/auto/APR/Table/Table.so(),
 but a runtime definition of the symbol was not found."

 The problem is shown by the t/apr-ext/brigade.t, t/apr-ext/finfo.t,
 t/apr-ext/pool.t, t/apr-ext/table.t, t/apr-ext/threadmutex.t,
 and t/apr-ext/uri.t test cases as well:


	cd "src/modules/perl" && make
Target "all" is up to date.
	/usr/local/bin/perl -Iblib/arch -Iblib/lib  t/TEST -clean
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/bin/perl
/home/user/tmp/mod_perl-2.0.6-rc2/t/TEST -clean
	APACHE_TEST_GROUP= APACHE_TEST_HTTPD= APACHE_TEST_PORT=
APACHE_TEST_USER= APACHE_TEST_APXS=  /usr/local/bin/perl -Iblib/arch
-Iblib/lib  t/TEST -bugreport -verbose=1 apr-ext/brigade.t
apr-ext/finfo.t apr-ext/pool.t apr-ext/table.t apr-ext/threadmutex.t
apr-ext/uri.t
[warning] setting ulimit to allow core files
ulimit -c unlimited; /usr/local/bin/perl
/home/user/tmp/mod_perl-2.0.6-rc2/t/TEST -bugreport -verbose=1
'apr-ext/brigade.t' 'apr-ext/finfo.t' 'apr-ext/pool.t' 'apr-ext/table.t'
'apr-ext/threadmutex.t' 'apr-ext/uri.t'
/usr/local/apache/bin/httpd  -d /home/user/tmp/mod_perl-2.0.6-rc2/t -f
/home/user/tmp/mod_perl-2.0.6-rc2/t/conf/httpd.conf -D APACHE2 -D
PERL_USEITHREADS
using Apache/2.2.22 (prefork MPM)

waiting 120 seconds for server to start: .[Tue Apr 03 13:09:10 2012]
[info] 6 Apache2:: modules loaded
[Tue Apr 03 13:09:10 2012] [info] 0 APR:: modules loaded
[Tue Apr 03 13:09:10 2012] [info] base server + 29 vhosts ready to run tests
...
waiting 120 seconds for server to start: ok (waited 3 secs)
server localhost:8529 started
server localhost:8530 listening (filter_out_apache)
server localhost:8531 listening (perlsections)
server localhost:8532 listening (inherit)
server localhost:8533 listening (TestModperl::merge)
server localhost:8534 listening (TestModperl::perl_options)
server localhost:8535 listening (TestModperl::perl_options2)
server localhost:8536 listening (TestModperl::setupenv)
server localhost:8537 listening (TestModules::proxy)
server localhost:8538 listening (TestUser::rewrite)
server localhost:8539 listening (TestVhost::config)
server localhost:8540 listening (TestVhost::log)
server localhost:8541 listening (TestProtocol::echo_bbs)
server localhost:8542 listening (TestProtocol::echo_bbs2)
server localhost:8543 listening (TestProtocol::echo_block)
server localhost:8544 listening (TestProtocol::echo_filter)
server localhost:8545 listening (TestProtocol::echo_nonblock)
server localhost:8546 listening (TestProtocol::echo_timeout)
server localhost:8547 listening (TestProtocol::pseudo_http)
server localhost:8548 listening (TestPreConnection::note)
server localhost:8549 listening (TestHooks::hookrun)
server localhost:8550 listening (TestHooks::init)
server localhost:8551 listening (TestHooks::stacked_handlers2)
server localhost:8552 listening (TestHooks::startup)
server localhost:8553 listening (TestHooks::trans)
server localhost:8554 listening (TestFilter::both_str_con_add)
server localhost:8555 listening (TestFilter::in_bbs_inject_header)
server localhost:8556 listening (TestFilter::in_bbs_msg)
server localhost:8557 listening (TestFilter::in_str_msg)
server localhost:8558 listening (TestDirective::perlmodule)
server localhost:8559 listening (TestDirective::perlrequire)
server localhost:8560 listening (TestAPI::add_config)
server localhost:8561 listening (TestDirective::perlloadmodule3)
server localhost:8562 listening (TestDirective::perlloadmodule4)
server localhost:8563 listening (TestDirective::perlloadmodule5)
server localhost:8564 listening (TestDirective::perlloadmodule6)
server localhost:8565 listening (TestHooks::push_handlers_anon)
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Brigade/Brigade.so' for
module APR::Brigade: rtld: 0712-001 Symbol modperl_croak was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Brigade/Brigade.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/brigade.pm line 15.
Compilation failed in require at t/apr-ext/brigade.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/brigade.t line 7.
t/apr-ext/brigade.t ......
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Finfo/Finfo.so'
for module APR::Finfo: rtld: 0712-001 Symbol modperl_croak was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Finfo/Finfo.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/finfo.pm line 14.
Compilation failed in require at t/apr-ext/finfo.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/finfo.t line 7.
t/apr-ext/finfo.t ........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/pool.pm line 11.
Compilation failed in require at t/apr-ext/pool.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/pool.t line 7.
t/apr-ext/pool.t .........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/table.pm line 11.
Compilation failed in require at t/apr-ext/table.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/table.t line 7.
t/apr-ext/table.t ........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so'
for module APR::Table: rtld: 0712-001 Symbol modperl_hash_tied_object
was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tied_object_rv was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found.
rtld: 0712-001 Symbol modperl_hash_tie was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/Table/Table.so(),
but a runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/threadmutex.pm
line 40
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/threadmutex.pm line 40.
t/apr-ext/threadmutex.t ..
1..5
# Running under perl version 5.014002 for aix
# Current time local: Tue Apr  3 13:09:19 2012
# Current time GMT:   Tue Apr  3 11:09:19 2012
# Using Test.pm version 1.25_02
# Using Apache/Test.pm version 1.37
ok 1
# testing : lock == APR::Const::SUCCESS
# expected: 0
# received: 0
ok 2
# testing : unlock == APR::Const::SUCCESS
# expected: 0
# received: 0
ok 3
Dubious, test returned 8 (wstat 2048, 0x800)
Failed 2/5 subtests
Can't load
'/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/URI/URI.so' for
module APR::URI: rtld: 0712-001 Symbol modperl_uri_new was referenced
      from module
/home/user/tmp/mod_perl-2.0.6-rc2/blib/arch/auto/APR/URI/URI.so(), but a
runtime definition
      of the symbol was not found. at
/usr/local/perl/lib/5.14.2/aix-thread-multi/DynaLoader.pm line 190.
 at /home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11
Compilation failed in require at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11.
BEGIN failed--compilation aborted at
/home/user/tmp/mod_perl-2.0.6-rc2/t/lib/TestAPRlib/uri.pm line 11.
Compilation failed in require at t/apr-ext/uri.t line 7.
BEGIN failed--compilation aborted at t/apr-ext/uri.t line 7.
t/apr-ext/uri.t ..........
Dubious, test returned 8 (wstat 2048, 0x800)
No subtests run


Contents of error_log:

END in modperl_extra.pl, pid=901248
[Tue Apr 03 13:09:14 2012] [notice] Apache/2.2.22 (Unix) world
domination series/2.0 mod_perl/2.0.6-rc2 Perl/v5.14.2 configured --
resuming normal operations
[Tue Apr 03 13:09:14 2012] [info] Server built: Mar 29 2012 15:19:34
[Tue Apr 03 13:09:14 2012] [debug] prefork.c(1023): AcceptMutex: sysvsem
(default: sysvsem)
[Tue Apr 03 13:09:21 2012] [info] Child process pid=159934 is exiting
[Tue Apr 03 13:09:21 2012] [info] Child process pid=159934 is exiting -
server push
END in modperl_extra.pl, pid=159934
[Tue Apr 03 13:09:21 2012] [info] Child process pid=901256 is exiting
[Tue Apr 03 13:09:21 2012] [info] Child process pid=901256 is exiting -
server push
END in modperl_extra.pl, pid=901256
[Tue Apr 03 13:09:23 2012] [info] removed PID file
/home/user/tmp/mod_perl-2.0.6-rc2/t/logs/httpd.pid (pid=1011966)
[Tue Apr 03 13:09:23 2012] [notice] caught SIGTERM, shutting down
END in modperl_extra.pl, pid=1011966


2. Used Components and their Configuration:

*** mod_perl version 2.000006

*** using /home/user/tmp/mod_perl-2.0.6-rc2/lib/Apache2/BuildConfig.pm

*** Makefile.PL options:
  MP_APR_LIB     => aprext
  MP_APXS        => /usr/local/apache/bin/apxs
  MP_COMPAT_1X   => 1
  MP_GENERATE_XS => 1
  MP_LIBNAME     => mod_perl
  MP_USE_DSO     => 1


*** /usr/local/apache/bin/httpd -V
Server version: Apache/2.2.22 (Unix)
Server built:   Mar 29 2012 15:19:34
Server's Module Magic Number: 20051115:30
Server loaded:  APR 1.4.5, APR-Util 1.4.1
Compiled using: APR 1.4.5, APR-Util 1.4.1
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
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_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/usr/local/apache"
 -D SUEXEC_BIN="/usr/local/apache/bin/suexec"
 -D DEFAULT_PIDLOG="/var/httpd/logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/httpd/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/ldd /usr/local/apache/bin/httpd
/usr/local/apache/bin/httpd needs:
	 /usr/local/apache/lib/libaprutil-1.so
	 /usr/local/apache/lib/libapr-1.so
	 /usr/lib/libpthread.a(shr_xpg5.o)
	 /usr/lib/libc.a(shr.o)
	 /usr/lib/librtl.a(shr.o)
	 /usr/local/apache/lib/libexpat.a(libexpat.so.0)
	 /usr/lib/libiconv.a(shr4.o)
	 /usr/lib/libpthreads.a(shr_comm.o)
	 /unix
	 /usr/lib/libcrypt.a(shr.o)


*** (apr|apu)-config linking info

 -L/usr/local/apache/lib -laprutil-1     -lexpat -liconv
 -L/usr/local/apache/lib -lapr-1 -lpthread -Wl,-brtl



*** /usr/local/perl/bin/perl -V
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:

  Platform:
    osname=aix, osvers=5.3.0.0, archname=aix-thread-multi
    uname='aix host 3 5 00ce7e0f4c00 '
    config_args='-d -Dcc=cc_r -Duseshrplib -Dusethreads
-Dprefix=/usr/local/perl -Dcf_email=root'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=undef, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc_r -q32', ccflags ='-D_ALL_SOURCE -D_ANSI_C_SOURCE
-D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN
-DNEED_PTHREAD_INIT -q32 -D_LARGE_FILES -qlonglong',
    optimize='-O',
    cppflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1
-qnoansialias -DUSE_NATIVE_DLOPEN -DNEED_PTHREAD_INIT'
    ccversion='7.0.0.16', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='ld', ldflags =' -brtl -bdynamic -L/usr/local/lib -b32
-bmaxdata:0x80000000'
    libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
    libs=-lbind -lnsl -ldbm -ldl -lld -lm -lcrypt -lpthreads -lc
    perllibs=-lbind -lnsl -ldl -lld -lm -lcrypt -lpthreads -lc
    libc=/lib/libc.a, so=a, useshrplib=true, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_aix.xs, dlext=so, d_dlsymun=undef, ccdlflags='
-bE:/usr/local/perl/lib/5.14.2/aix-thread-multi/CORE/perl.exp'
    cccdlflags=' ', lddlflags='-bhalt:4 -G -bI:$(PERL_INC)/perl.exp
-bE:$(BASEEXT).exp -bnoentry -lpthreads -lc -lm -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_ITHREADS USE_LARGE_FILES
                        USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
  Built under aix
  Compiled at Mar 28 2012 12:52:40
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /usr/local/perl/lib/site_perl/5.14.2/aix-thread-multi
    /usr/local/perl/lib/site_perl/5.14.2
    /usr/local/perl/lib/5.14.2/aix-thread-multi
    /usr/local/perl/lib/5.14.2
    .

*** Packages of interest status:

Apache2            : -
Apache2::Request   : 2.13
CGI                : 3.52
ExtUtils::MakeMaker: 6.62
LWP                : 6.04
mod_perl           : -
mod_perl2          : 2.000006





-- 
Peter Heimann
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.