Please include the list on replies, so the archives are complete.

Quoting "John M. Dlugosz" <[EMAIL PROTECTED]>:

Adam Prime adam.prime-at-utoronto.ca |mod_perl mailing list| wrote:
For the Apache2::Request problem you're running:

   use Apache2::Request;
   $req = Apache2::Request->new($r);
   @foo = $req->param("foo");
   $bar = $req->args("bar");

and getting a segfault on new?

If I reduce it down to the first two lines only, I get the segfault.
If I reduce it to the first line only, I don't.


Are you running this as a handler, or through one of the CGI emulation layers (ModPerl::PerlRun, or ModPerl::Registry for example). you do

ModPerl::Registry.

In my apache2.conf file:

        PerlModule ModPerl::Registry

        <Location "/modperl/">
            SetHandler perl-script
            PerlHandler ModPerl::Registry
            Options +ExecCGI
            PerlSendHeader On
            Allow from all
        </Location>

Hmm, is there a way to find out whether these settings are applying to
the directory I think it is?  /modperl/ should be applied to each
DocumentRoot, right?


correct.

also have

my $r = shift;

somewhere above that (and ideally use strict; as well) right?

No, just what it shows in the example.

This is your problem.  Apparently if you call Apache2::Request->new
with an undefined object, it segfaults.

i ran this:

use Apache2::Request;
my $req = Apache2::Request->new($r);
print qq[Content-type: text/html\n\n];
print q[hi];

through registry, and saw

[Sat Jul 12 22:58:58 2008] [notice] child pid 5703 exit signal
Segmentation fault (11)

If you change that to

use Apache2::Request;
my $r = shift;
my $req = Apache2::Request->new($r);
print qq[Content-type: text/html\n\n];
print q[hi];

it should work.  Unfortunately, it looks like the documentation for
ModPerl::Registry is kind of lacking on perl.apache.org, but what is
there is at
http://perl.apache.org/docs/2.0/api/ModPerl/Registry.html

Adam




Reply via email to