Hello,
 
First time doing this so please bear with me.  I've built a RedHat 9.0/Apache2/ModPerl2/Perl5.8.0/MySQL4/SSL Linux box running almost perfect but with the problem below.  And Looking through very many emails written by and to Stas Bekman and others about this it appears to be a problem with the handling of return codes  in mod_perl.1.99.09 rev'd late last year.  I installed the April version of mod_perl.1.99.09 but I am still having the same problem. 
 
-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:
 
My CGI's running under ModPerl::Registry appear to execute as expected but each Web page also has on the bottom of it the error msg: 
 
"Ok The server encountered an internal error or misconfiguration and was unable to complete your request ......".   
 
In the httpd error_log is the following:
 
[Wed Aug 20 14:36:53 2003] [error] [client 127.0.0.1] Argument "" isn't numeric in subroutine entry at /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/RegistryCooker.pm line 155.
 
From RegistryCooker.pm:
 
sub default_handler {
    my $self = shift;

    $self->make_namespace;

    if ($self->should_compile) {
        my $rc = $self->can_compile;
        return $rc unless $rc == Apache::OK;
        $rc = $self->convert_script_to_compiled_handler;
        return $rc unless $rc == Apache::OK;
    }

    # handlers shouldn't set $r->status but return it, so we reset the
    # status after running it

    my $old_status = $self->{REQ}->status;
    my $rc = $self->run;
    my $new_status = $self->{REQ}->status($old_status);                 #-> Line 155
    return ($rc == Apache::OK && $old_status != $new_status)
        ? $new_status
        : $rc;
}
 
Here is an example script:
 
#!/usr/bin/perl -w
# view.cgi
use strict;
use DBI;
#use dHeader; # Any print statement here will show at top of page - loading issue
our @in;
our $in;
our $key;
our $val;
our @ky;
our @va;
our $i;
our @listing;
our $sql;
 
      local (*in) = @_ if @_;
      local ($i, $key, $val);
 
      if ( $ENV{'REQUEST_METHOD'} eq "GET" ) {
        $in = $ENV{'QUERY_STRING'};
      } elsif ($ENV{'REQUEST_METHOD'} eq "POST") {
        $in;
        read(STDIN,$in,$ENV{'CONTENT_LENGTH'});
      } else {
        $in;
            # Added for command line debugging
            # Supply name/value form data as a command line argument
            # Format: name1=value1\&name2=value2\&...
            # (need to escape & for shell)
            # Find the first argument that's not a switch (-)
            $in = ( grep( !/^-/, @ARGV )) [0];
            $in =~ s/\\&/&/g;
      }
 
      @in = split(/&/,$in);
print "Content-type: text/html\n\n";
print "<html> <head>";
print "<title> COLLECTIBLES Project - Frame Document Type </title>";
print "<link rel=\"stylesheet\" href="">print "</head>";
print "<body leftmargin=\"0\" bottommargin=\"0\" topmargin=\"0\" marginwidth=\"0\" marginheight=\"0\">";
print "<table width=\"760\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
print "  <tr>";
print "     <td height=\"12\" width=\"760\" bgcolor=\"#ffffff\">&nbsp;</td>";
print "  </tr>";
print "</table>";
print "<table width=\"760\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#000000\">";
print "  <tr>";
print " <td>";
print " <table><tr><td nowrap width=\"250\" valign=\"middle\">";
print " <font color=\"#FFFFFF\"><h1 >A Site</h1></font></td>";
print " <td>Picture Here</td>";
print " <td width=50>&nbsp;</td>";
print " <td valign=\"bottom\" align=\"right\">&nbsp;</td></tr>";
print "     </table>";
print "        </td></tr>";
print "    </table>";
print "<table width=\"760\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
print "  <tr>";
print "     <td height=\"12\" width=\"760\" bgcolor=\"#cccccc\">&nbsp;</td>";
print "  </tr>";
print "</table>";
print "";
print "<!-- # END BANNER -->";
# START OF TABLE - MENU AND MAIN CONTENT
print "<table width=\"100%\" valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
print "<tr><td>";
print "<!-- # MENU -->";
print "<table valign=\"top\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
#print "  <tr><td height=\"511\" width=\"150\" style=\"BACKGROUND-IMAGE: URL(images/PARTH-USE-left7.jpg)\"><i>";
print "  <tr><td valign=\"top\" align=\"center\" height=\"511\" width=\"150\" bgcolor=\"#cccccc\"><i>";
print "    <br>&nbsp;&nbsp;<a href="">print "    <br>&nbsp;&nbsp;<a href="">print "    <br>&nbsp;&nbsp;<a href="">print "    <br>&nbsp;&nbsp;<a href="">print "    </i></td></tr>";
print "</table>";
 
print "</td>";
# START MAIN DB CONTENT AREA
print "<!-- # MAIN -->";
print "<td valign=\"top\"><br><br><br><br>";
      #Start form
      print "<form action = "" method = 'post'>";
      print "<table border=\"1\">";
        print "<tr>";
        print "<th>Heading</th><th>User supplied Information</th>";
        print "</tr>";
 
      foreach $i (0 .. $#in) {
        # Convert plus's to spaces
        $in[$i] =~ s/\+/ /g;
 
        # Split into key and value.
        ($key, $val) = split(/=/,$in[$i],2); # splits on the first =.
        # Convert %XX from hex numbers to alphanumeric
        $key =~ s/%(..)/pack("c",hex($1))/ge;
        $val =~ s/%(..)/pack("c",hex($1))/ge;
 
        #Allow for user confirmation
        $key =~ s/Form//;
        @listing = ($key,$val);
        if ($key =~ /btnSubmit/){next;}
        print "<tr><td>$listing[0]</td>";
        print "<td>$listing[1]</td></tr>";
        #print "$listing[0]: $listing[1]<br>";
        print "<input type=hidden name=$key value='$val'>";
      }
        print "</table>";
      #Pass data forward on submit
      print "<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<input type=submit value='Submit'>";
print "</form>";
print "</td></tr>";
print "</table>";
# END OF TABLE - MENU AND MAIN CONTENT
print "</body>";
print "</html>";
 
------------------------------
 
This is from /perl-status:
 
Embedded Perl version v5.8.0 for Apache/2.0.46 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.46 OpenSSL/0.9.7a DAV/2 process 14674,
running since Wed Aug 20 13:32:42 2003
Package Version Modified File
APR::Const 0.01 Wed Apr 11 15:50:53 2001 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/APR/Const.pm
APR::Pool 0.01 Tue Jul 15 10:26:08 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/APR/Pool.pm
APR::Table 0.01 Tue Jul 15 10:36:08 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/APR/Table.pm
APR::XSLoader 0.00 Thu May 23 15:40:47 2002 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/APR/XSLoader.pm
Apache::Access 0.01 Tue Jul 15 10:36:54 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Access.pm
Apache::Connection 0.01 Tue Jul 15 10:26:07 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Connection.pm
Apache::Const 0.01 Wed Aug 28 19:28:44 2002 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Const.pm
Apache::Log 0.01 Tue Jul 15 10:38:05 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Log.pm
Apache::RequestIO 0.01 Tue Jul 15 10:26:08 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/RequestIO.pm
Apache::RequestRec 0.01 Tue Jul 15 10:38:38 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/RequestRec.pm
Apache::RequestUtil 0.01 Tue Jul 15 10:38:53 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/RequestUtil.pm
Apache::Response 0.01 Tue Jul 15 10:26:08 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Response.pm
Apache::Server 0.01 Tue Jul 15 10:26:07 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Server.pm
Apache::ServerUtil 0.01 Tue Jul 15 10:39:21 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/ServerUtil.pm
Apache::Session 1.54 Thu Oct 11 11:10:16 2001 /usr/lib/perl5/site_perl/5.8.0/Apache/Session.pm
Apache::Status 3.00 Thu Aug 14 09:15:11 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/Status.pm
Apache::XSLoader 0.00 Thu May 23 15:40:47 2002 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/XSLoader.pm
Apache2 0.00 Fri Apr 5 17:42:52 2002 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2.pm
AutoLoader 5.60 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/AutoLoader.pm
CGI 2.97 Tue Jun 17 16:31:02 2003 /usr/lib/perl5/5.8.0/CGI.pm
CGI::Cookie 1.24 Sun Apr 27 17:39:11 2003 /usr/lib/perl5/5.8.0/CGI/Cookie.pm
CGI::Util 1.3 Tue Apr 15 15:30:18 2003 /usr/lib/perl5/5.8.0/CGI/Util.pm
Carp 1.01 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/Carp.pm
Config 0.00 Tue Feb 18 19:50:59 2003 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/Config.pm
Cwd 2.06 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/Cwd.pm
DynaLoader 1.04 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/DynaLoader.pm
Exporter 5.567 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/Exporter.pm
File::Spec 0.83 Tue Feb 18 19:48:16 2003 /usr/lib/perl5/5.8.0/File/Spec.pm
File::Spec::Functions 1.2 Tue Feb 18 19:48:16 2003 /usr/lib/perl5/5.8.0/File/Spec/Functions.pm
File::Spec::Unix 1.4 Tue Feb 18 19:48:16 2003 /usr/lib/perl5/5.8.0/File/Spec/Unix.pm
ModPerl::Const 0.01 Tue Mar 18 18:51:59 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/Const.pm
ModPerl::Global 0.01 Wed Aug 20 09:05:57 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/Global.pm
ModPerl::Registry 1.99 Wed Aug 20 09:15:00 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/Registry.pm
ModPerl::RegistryCooker 1.99 Wed Aug 20 09:14:59 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/RegistryCooker.pm
ModPerl::Util 0.01 Wed Aug 20 11:25:14 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/ModPerl/Util.pm
Test::Cookie 0.00 Tue Aug 19 13:42:07 2003 /var/www/Test/Cookie.pm
XSLoader 0.01 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/XSLoader.pm
base 1.03 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/base.pm
constant 1.04 Tue Feb 18 19:48:13 2003 /usr/lib/perl5/5.8.0/constant.pm
lib 0.5564 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/i386-linux-thread-multi/lib.pm
mod_perl 1.9909 Fri Jan 10 20:17:58 2003 /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/mod_perl.pm
overload 1.00 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/overload.pm
strict 1.02 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/strict.pm
vars 1.01 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/vars.pm
warnings 1.00 Tue Feb 18 19:48:14 2003 /usr/lib/perl5/5.8.0/warnings.pm
warnings::register 1.00 Tue Feb 18 19:48:15 2003 /usr/lib/perl5/5.8.0/warnings/register.pm

@INC =
/var/www
/var/www/sec/perl
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2
/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/local/httpd/prefork/
/usr/local/httpd/prefork/lib/perl

----------------------------------------------------
 

2. Used Components and their Configuration:

 

*** using /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi/Apache2/Apache/BuildConfig.pm

*** Makefile.PL options:

  MP_AP_PREFIX    => /usr/local/httpd/prefork

  MP_COMPAT_1X    => 1

  MP_GENERATE_XS  => 1

  MP_INST_APACHE2 => 1

  MP_LIBNAME      => mod_perl

  MP_USE_DSO      => 1

  MP_USE_STATIC   => 1

*** /usr/local/httpd/prefork/bin/httpd -V

Server version: Apache/2.0.46

Server built:   Jul 15 2003 10:04:36

Server's Module Magic Number: 20020903:3

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_SYSVSEM_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/httpd/prefork"

 -D SUEXEC_BIN="/usr/local/httpd/prefork/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.20-2.48smp, archname=i386-linux-thread-multi

    uname='linux str'

    config_args='-des -Doptimize=-O2 -march=i386 -mcpu=i686 -g -Dmyhostname=localhost [EMAIL PROTECTED] -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 20030213 (Red Hat Linux 8.0 3.2.2-1)', gccosandvers=''

gccversion='3.2.2 200302'

    intsize=e, longsize= , ptrsize=p, doublesize=8, byteorder=1234

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

    ivtype='long'

k', ivsize=4'

ivtype='long'

known_ext, nvtype='double'

o_nonbl', nvsize=, Off_t='', lseeksize=8

    alignbytes=4, prototype=define

  Linker and Libraries:

    ld='gcc'

l', ldflags =' -L/usr/local/lib'

ldf'

    libpth=/usr/local/lib /lib /usr/lib

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

    perllibs=

    libc=/lib/libc-2.3.1.so, so=so, useshrplib=true, libperl=libper

    gnulibc_version='2.3.1'

  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 Feb 18 2003 22:19:53

  %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

   .

------------------------------------------------------

And the t/REPORT:

[EMAIL PROTECTED] t]# more REPORT

#!/usr/bin/perl

# WARNING: this file is generated, do not edit

# 01: Apache-Test/lib/Apache/TestConfig.pm:734

# 02: Apache-Test/lib/Apache/TestConfig.pm:791

# 03: Apache-Test/lib/Apache/TestReport.pm:29

# 04: Makefile.PL:182

# 05: Makefile.PL:55

 use strict;

use warnings FATAL => 'all';

 use FindBin;

use lib map "$FindBin::Bin/$_",

        qw(../Apache-Test/lib ../lib ../../lib);

 use Apache::TestReportPerl;

Apache::TestReportPerl->new(@ARGV)->run;

[EMAIL PROTECTED] t]# perl -MApache2 -MApache::TestReportPerl \

> -le 'Apache::TestReportPerl->new->run'

---------------------------------------------------- 

3. This is the core dump trace: (if you get a core dump):

  [CORE TRACE COMES HERE]

#-> There is no core dump file 

This report was generated by -e on Wed Aug 20 20:50:24 2003 GMT.

 -------------8<---------- End Bug Report --------------8<----------

 

Thanks,

Adolph Torres

[EMAIL PROTECTED]

Reply via email to