You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Rainer Jung <ra...@kippdata.de> on 2011/05/21 16:52:48 UTC

Why the filter test fails

The filter test t/modules/filter.t fails, because mod_case_filter must
be enabled using "CaseFilter On" in t/conf/extra.conf.in.

Unfortunately that directive is only per server. Since the module is
shipped with httpd (as experimental) the only quick fix is adding
another vhost in the test config for this test.

The other test where mod_case_filter is involved is t/apache/pr17629.t,
which does not fail, because it checks for the case filter to get
automatically removed, which is true because it wasn't enabled in the
first place :)

On the long term it makes sense to add per directory enablement to
mod_case_filter.

Regards,

Rainer


Re: Why the filter test (really) fails

Posted by Rainer Jung <ra...@kippdata.de>.
On 21.05.2011 21:41, Rainer Jung wrote:
> On 21.05.2011 16:52, Rainer Jung wrote:
> mod_filter does not get the response output headers, if the request is
> handled by a CGI. The headers are in err_headers_out, but not in
> headers_out. Thus any attempt to match via resp=... must fail. But
> that's what is tested in the failing test case.
> 
> If I reverse proxy the request and run the CGI on the origin server, the
> headers are there and the test succeeds.
> 
> Is this a known bug? Should I open an issue?

... and it is only a problem for 2.2.x. For 2.3 Joe enhanced the
expression parser in r1090234 to also look at err_headers_out. So for
trunk it works and it seems the problem was well know.

Rainer

Re: Why the filter test (really) fails

Posted by Rainer Jung <ra...@kippdata.de>.
On 21.05.2011 16:52, Rainer Jung wrote:
> The filter test t/modules/filter.t fails, because mod_case_filter must
> be enabled using "CaseFilter On" in t/conf/extra.conf.in.
> 
> Unfortunately that directive is only per server. Since the module is
> shipped with httpd (as experimental) the only quick fix is adding
> another vhost in the test config for this test.
> 
> The other test where mod_case_filter is involved is t/apache/pr17629.t,
> which does not fail, because it checks for the case filter to get
> automatically removed, which is true because it wasn't enabled in the
> first place :)
> 
> On the long term it makes sense to add per directory enablement to
> mod_case_filter.

Sorry, garbage.

Explanation attempt number 2, now based on added debug output:

mod_filter does not get the response output headers, if the request is
handled by a CGI. The headers are in err_headers_out, but not in
headers_out. Thus any attempt to match via resp=... must fail. But
that's what is tested in the failing test case.

If I reverse proxy the request and run the CGI on the origin server, the
headers are there and the test succeeds.

Is this a known bug? Should I open an issue?

Regards,

Rainer