You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by "Schuyler D. Erle" <sc...@tridity.org> on 2000/06/05 00:20:00 UTC

Subroutine redefined?

Greetings. I'm running Apache/1.3.12 with mod_perl/1.24 and mod_ssl/2.6.4 on a Debian system.
(I know mod_ssl and mod_perl on the same server is begging for trouble, but that's the way the
site was designed, well before I got there...) We recently recompiled the server with
mod_perl's EVERYTHING=1 to support some code I'm working on which uses stacked handlers.

We use Apache::DBI (via PerlModule) to cache connections to a MySQL database. For some reason,
when a PerlHandler runs that accesses the database (or perhaps on ChildInit), we get several
dozen warnings of the following type dumped to the log:

        Subroutine dump_results redefined at /usr/lib/perl5/5.005/i386-linux/DBI.pm line 1100,
        <FILE> chunk 13.

The warnings all seem to be coming from DBI.pm. It was also doing this with CGI.pm on server
load, but that's Gone Away, for reasons unclear. We get this errors with PerlFreshRestart
either On or Off. Obviously turning PerlWarn Off makes them stop, but it also makes code
testing difficult. Everything seems to run fine in spite of the warnings, but they make the
logs unreadable. 

Currently, the best solution I have is the following, shamelessly borrowed from slash:

        <Perl>
            $SIG{__WARN__} = sub { warn @_ unless $_[0] =~ /Subroutine [\w:]+ redefined/io };
        </Perl>

However, that's a band-aid, not a fix. I checked for multiple installations of DBI just in case
-- no luck. I have RTFM, twice. I searched through the list archives and have not found discussion of this particular problem. What I'd like to know is what's causing these warnings and how to make them stop (not just how to keep them from being dummped to the log). 

Information on our perl and apache installations follows. Any suggestions would be appreciated. Thanks.

SDE

-------

perl -V
-------
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=linux, osvers=2.2.15pre14, archname=i386-linux
    uname='linux them 2.2.15pre14 #2 smp mon mar 13 14:29:00 est 2000 i686 unknown '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O2 ', gccversion=2.95.2 20000313 (Debian GNU/Linux)
    cppflags='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include'
    ccflags ='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include'
    stdchar='char', d_stdstdio=undef, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    alignbytes=4, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lnsl -lndbm -lgdbm -ldbm -ldb -ldl -lm -lc -lposix -lcrypt
    libc=, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'


Characteristics of this binary (from libperl): 
  Built under linux
  Compiled at Apr 30 2000 12:08:38
  @INC:
    /usr/lib/perl5/5.005/i386-linux
    /usr/lib/perl5/5.005
    /usr/local/lib/site_perl/i386-linux
    /usr/local/lib/site_perl
    /usr/lib/perl5
    .

httpd -V
--------
Server version: Apache/1.3.12 (Unix)
Server built:   Jun  2 2000 22:20:19
Server's Module Magic Number: 19990320:7
Server compiled with....
 -D EAPI
 -D HAVE_MMAP
 -D HAVE_SHMGET
 -D USE_SHMGET_SCOREBOARD
 -D USE_MMAP_FILES
 -D USE_FCNTL_SERIALIZED_ACCEPT
 -D HTTPD_ROOT="/usr/local/apache"
 -D SUEXEC_BIN="/usr/local/apache/bin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/httpd.scoreboard"
 -D DEFAULT_LOCKFILE="logs/httpd.lock"
 -D DEFAULT_XFERLOG="logs/access_log"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"
 -D ACCESS_CONFIG_FILE="conf/access.conf"
 -D RESOURCE_CONFIG_FILE="conf/srm.conf"