FAQ
No one seems home on the apreq-dev list so I'm ccing mod_perl in the hope someone can help. Sorry if that annoys anyone.

I rebuilt everything using perl 5.20.0, Apache 2.2.27 will all the mods, mod_perl svn trunk.

When I use Apache2::Request, I get a server error, it fails with the message "Conflicting information," which seems to be related to the APREQ_ERROR_MISMATCH constant, but I don't know how to debug this.

When I comment out creating the Apache2::Request object from $r, my dummy test handler runs fine.

How would I try to debug this?

Mark

-----Original Message-----
From: Mark Hedges
Sent: Friday, June 20, 2014 5:51 PM
To: apreq-dev@httpd.apache.org
Cc: Mark Hedges
Subject: APREQ_ERROR_MISMATCH error, I think

Any clues for the clueless?

This is accompanied by a 500 internal server error.

The same handler works fine when I do not use Apache2::Request. It is just a test handler to print out a string.

Thanks.
-Mark

-----------------------
t/logs/error_log:
----
[Fri Jun 20 17:43:13.014222 2014] [mpm_event:notice] [pid 30042:tid 47602811847312] AH00489: Apache/2.4.9 (Unix) mod_apreq2-20090110/2.8.0 mod_perl/2.0.9dev Perl/v5.20.0 configured -- resuming normal operations
...
[Fri Jun 20 17:43:13.014745 2014] [mpm_event:debug] [pid 30043:tid 1088698688] event.c(1949): AH02471: start_threads: Using epoll
...
[Fri Jun 20 17:43:14.934954 2014] [authz_core:debug] [pid 30043:tid 1120168256] mod_authz_core.c(828): [client 127.0.0.1:60081] AH01628: authorization result: granted (no directives)
[Fri Jun 20 17:43:14.953412 2014] [perl:error] [pid 30043:tid 1120168256] [client 127.0.0.1:60081] Conflicting information


-------------------------
extra.last.conf.in:
---
PerlSetEnv NTF_TEST_DIR @ServerRoot@

#LoadModule allowmethods_module /ntfhome/local/libexec/httpd/mod_allowmethods.so

# where Apache2::Controller and the test application libs can be found
PerlSwitches -I@ServerRoot@/blib
PerlLoadModule Apache2::RequestRec
PerlLoadModule Apache2::RequestIO
PerlLoadModule Apache2::Log
PerlLoadModule Apache2::RequestUtil

<Perl>
     use NTF::Handler::NTR;
     $NTFHandlers::NTR = NTF::Handler::NTR->new();
</Perl>

# startup file handled by Apache::Test
# (add stuff to t/conf/modperl_extra.pl)

<LocationMatch '^/foo\b'>
     SetHandler modperl
     PerlResponseHandler $NTFHandlers::NTR->redirect
</LocationMatch>

-------------------------------
package NTF::Handler::NTR;

use strict;
use warnings FATAL => 'all';
use English '-no_match_vars';

use YAML::XS;
use Readonly;

Readonly::Hash my %APREQ_NEW_PARAMS => (
     POST_MAX => 1,
     MAX_BODY => 1,
     DISABLE_UPLOADS => 1,
);

use Apache2::Const -compile => qw(
     OK
     HTTP_OK
     REDIRECT
     HTTP_BAD_REQUEST
);

use Apache2::Log;
use Apache2::RequestIO;
# use Apache2::Request;

sub new { return bless {}, __PACKAGE__ }

sub redirect : method {
     my ($self, $r) = @_;

     # minor annoyance, have to do this every time
     $self->{r} = $r;
  # my $req = Apache2::Request->new($r, %APREQ_NEW_PARAMS);

     $r->content_type('text/plain');
     $self->{r}->print("KIRK\n");

     delete $self->{r};
     delete $self->{apreq};

     return Apache2::Const::OK;
}

Search Discussions

  • Mark Hedges at Jun 23, 2014 at 11:04 pm
    D'oh sorry bad value for POST_MAX, please ignore. -Mark

    -----Original Message-----
    From: Mark Hedges
    Sent: Monday, June 23, 2014 4:02 PM
    To: apreq-dev@httpd.apache.org; mod_perl list
    Cc: Mark Hedges
    Subject: RE: APREQ_ERROR_MISMATCH error, I think

    No one seems home on the apreq-dev list so I'm ccing mod_perl in the hope someone can help. Sorry if that annoys anyone.

    I rebuilt everything using perl 5.20.0, Apache 2.2.27 will all the mods, mod_perl svn trunk.

    When I use Apache2::Request, I get a server error, it fails with the message "Conflicting information," which seems to be related to the APREQ_ERROR_MISMATCH constant, but I don't know how to debug this.

    When I comment out creating the Apache2::Request object from $r, my dummy test handler runs fine.

    How would I try to debug this?

    Mark

    -----Original Message-----
    From: Mark Hedges
    Sent: Friday, June 20, 2014 5:51 PM
    To: apreq-dev@httpd.apache.org
    Cc: Mark Hedges
    Subject: APREQ_ERROR_MISMATCH error, I think

    Any clues for the clueless?

    This is accompanied by a 500 internal server error.

    The same handler works fine when I do not use Apache2::Request. It is just a test handler to print out a string.

    Thanks.
    -Mark

    -----------------------
    t/logs/error_log:
    ----
    [Fri Jun 20 17:43:13.014222 2014] [mpm_event:notice] [pid 30042:tid 47602811847312] AH00489: Apache/2.4.9 (Unix) mod_apreq2-20090110/2.8.0 mod_perl/2.0.9dev Perl/v5.20.0 configured -- resuming normal operations
    ...
    [Fri Jun 20 17:43:13.014745 2014] [mpm_event:debug] [pid 30043:tid 1088698688] event.c(1949): AH02471: start_threads: Using epoll
    ...
    [Fri Jun 20 17:43:14.934954 2014] [authz_core:debug] [pid 30043:tid 1120168256] mod_authz_core.c(828): [client 127.0.0.1:60081] AH01628: authorization result: granted (no directives)
    [Fri Jun 20 17:43:14.953412 2014] [perl:error] [pid 30043:tid 1120168256] [client 127.0.0.1:60081] Conflicting information


    -------------------------
    extra.last.conf.in:
    ---
    PerlSetEnv NTF_TEST_DIR @ServerRoot@

    #LoadModule allowmethods_module /ntfhome/local/libexec/httpd/mod_allowmethods.so

    # where Apache2::Controller and the test application libs can be found
    PerlSwitches -I@ServerRoot@/blib
    PerlLoadModule Apache2::RequestRec
    PerlLoadModule Apache2::RequestIO
    PerlLoadModule Apache2::Log
    PerlLoadModule Apache2::RequestUtil

    <Perl>
         use NTF::Handler::NTR;
         $NTFHandlers::NTR = NTF::Handler::NTR->new();
    </Perl>

    # startup file handled by Apache::Test
    # (add stuff to t/conf/modperl_extra.pl)

    <LocationMatch '^/foo\b'>
         SetHandler modperl
         PerlResponseHandler $NTFHandlers::NTR->redirect
    </LocationMatch>

    -------------------------------
    package NTF::Handler::NTR;

    use strict;
    use warnings FATAL => 'all';
    use English '-no_match_vars';

    use YAML::XS;
    use Readonly;

    Readonly::Hash my %APREQ_NEW_PARAMS => (
         POST_MAX => 1,
         MAX_BODY => 1,
         DISABLE_UPLOADS => 1,
    );

    use Apache2::Const -compile => qw(
         OK
         HTTP_OK
         REDIRECT
         HTTP_BAD_REQUEST
    );

    use Apache2::Log;
    use Apache2::RequestIO;
    # use Apache2::Request;

    sub new { return bless {}, __PACKAGE__ }

    sub redirect : method {
         my ($self, $r) = @_;

         # minor annoyance, have to do this every time
         $self->{r} = $r;
      # my $req = Apache2::Request->new($r, %APREQ_NEW_PARAMS);

         $r->content_type('text/plain');
         $self->{r}->print("KIRK\n");

         delete $self->{r};
         delete $self->{apreq};

         return Apache2::Const::OK;
    }

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupmodperl @
categoriesmodperl, perl
postedJun 23, '14 at 11:02p
activeJun 23, '14 at 11:04p
posts2
users1
websiteperl.apache.org

1 user in discussion

Mark Hedges: 2 posts

People

Translate

site design / logo © 2018 Grokbase