Loading ...
Sorry, an error occurred while loading the content.
 

[mp2] $r->construct_url

Expand Messages
  • Beau E. Cox
    Hi - ... 1. Problem Description: I am having a really strange problem in mod_perl. The following simple test handler: #file:MyApache/HappyFunBall.pm #
    Message 1 of 3 , Jan 27, 2004
      Hi -

      -------------8<---------- Start Bug Report ------------8<----------
      1. Problem Description:

      I am having a really strange problem in mod_perl. The following
      simple test handler:

      #file:MyApache/HappyFunBall.pm
      # ---------------------
      package MyApache::HappyFunBall;
      use strict;
      use warnings;
      use Apache2 ();
      use Apache::RequestRec ();
      use Apache::Const -compile => qw( OK );

      sub handler
      {
      my $r = shift;
      $r->content_type( 'text/plain' );
      $r->print( $r->can( 'construct_url' ) ? 'CAN' : 'CAN NOT',
      " construct_url\n" );
      require APR::URI;
      $r->print( $r->can( 'construct_url' ) ? 'CAN' : 'CAN NOT',
      " construct_url\n" );
      APR::URI->import();
      $r->print( $r->can( 'construct_url' ) ? 'CAN' : 'CAN NOT',
      " construct_url\n" );
      my $curl = eval { $r->construct_url };
      if( $@ ) {
      $r->print( "construct_url failed:\n". $@ );
      return Apache::OK;
      }
      my $uri = APR::URI->parse ($r->pool, $curl);
      $r->print( "incoming uri => ", $uri->unparse, "\n" );
      $r->print( "scheme => ", $uri->scheme, "\n" );
      $r->print( "hostname => ", $uri->hostname, "\n" );
      $r->print( "path => ", $uri->path, "\n" );
      $r->print( "port => ", $uri->port, "\n" );
      return Apache::OK;
      }

      1;

      Is invoked via httpd.conf as per:

      PerlModule MyApache::HappyFunBall
      <Location /happyfunball>
      SetHandler modperl
      PerlResponseHandler MyApache::HappyFunBall
      PerlOptions +GlobalRequest
      </Location>

      On my production apache, it fails ( cannot find construct_url ).
      On my test apache (running on the _SAME_ maching, using
      the _SAME_ perl @INC array) ir works! The only difference
      I can see in the two servers are the Server and Document
      roots and the virtual hosts setup.

      2. Used Components and their Configuration:

      *** mod_perl version 1.9913

      *** using lib/Apache/BuildConfig.pm
      *** Makefile.PL options:
      MP_APXS => /usr/apache2/sbin/apxs
      MP_COMPAT_1X => 1
      MP_GENERATE_XS => 1
      MP_LIBNAME => mod_perl
      MP_USE_DSO => 1
      MP_USE_STATIC => 1


      *** /usr/apache2/sbin/httpd -V
      Server version: Apache/2.0.48
      Server built: Jan 26 2004 06:20:30
      Server's Module Magic Number: 20020903:4
      Architecture: 32-bit
      Server compiled with....
      -D APACHE_MPM_DIR="server/mpm/worker"
      -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/apache2"
      -D SUEXEC_BIN="/usr/apache2/bin/suexec"
      -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
      -D DEFAULT_ERRORLOG="logs/error_log"
      -D AP_TYPES_CONFIG_FILE="/etc/httpd/mime.types"
      -D SERVER_CONFIG_FILE="/etc/httpd/httpd.conf"


      *** /usr/bin/perl -V
      Summary of my perl5 (revision 5.0 version 8 subversion 2) configuration:
      Platform:
      osname=linux, osvers=2.4.24-pre1.lm, archname=i686-linux-thread-multi
      uname='linux cathy.beaucox.com 2.4.24-pre1.lm #1 thu dec 11 02:58:17 hst
      2003 i686 unknown unknown gnulinux '
      config_args='-Dprefix=/usr -d -e -Dusethreads'
      hint=recommended, useposix=true, d_sigaction=define
      usethreads=define use5005threads=undef 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', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
      -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
      -D_FILE_OFFSET_BITS=64',
      optimize='-O3',
      cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS
      -fno-strict-aliasing -I/usr/local/include'
      ccversion='', gccversion='3.3.2', gccosandvers=''
      intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
      d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
      ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t',
      lseeksize=8
      alignbytes=4, prototype=define
      Linker and Libraries:
      ld='cc', ldflags =' -L/usr/local/lib'
      libpth=/usr/local/lib /lib /usr/lib
      libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
      perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
      libc=/lib/libc-2.3.2.so, so=so, useshrplib=false, libperl=libperl.a
      gnulibc_version='2.3.2'
      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):
      Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES
      PERL_IMPLICIT_CONTEXT
      Built under linux
      Compiled at Dec 20 2003 03:01:43
      %ENV:
      PERL_LWP_USE_HTTP_10="1"
      @INC:
      /usr/lib/perl5/5.8.2/i686-linux-thread-multi
      /usr/lib/perl5/5.8.2
      /usr/lib/perl5/site_perl/5.8.2/i686-linux-thread-multi
      /usr/lib/perl5/site_perl/5.8.2
      /usr/lib/perl5/site_perl/5.8.1/i686-linux-thread-multi
      /usr/lib/perl5/site_perl/5.8.1
      /usr/lib/perl5/site_perl
      .

      *** Packages of interest status:

      Apache::Request: 2.02-dev
      CGI : 3.04
      LWP : 5.69
      mod_perl : 1.9913


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

      [CORE TRACE COMES HERE]

      This report was generated by t/REPORT on Wed Jan 28 02:40:48 2004 GMT.

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

      Note: Complete the rest of the details and post this bug report to
      dev <at> perl.apache.org. To subscribe to the list send an empty
      email to dev-subscribe@....

      Aloha => Beau;


      --
      Reporting bugs: http://perl.apache.org/bugs/
      Mail list info: http://perl.apache.org/maillist/modperl.html
      List etiquette: http://perl.apache.org/maillist/email-etiquette.html
    Your message has been successfully submitted and would be delivered to recipients shortly.