On Sun, 27 May 2007 13:14:25 +0200
Ruediger Pluem <[EMAIL PROTECTED]> wrote:

> It breaks once the request is cached and mod_cache tries to
> revalidate the stale cached entity.  I guess this was one of the
> reasons for r231167

Thanks - that looks like the background for it.


> +             * BTW: We circumvent the error processing stack anyway
> if the
> +             * CGI script set an explicit status code (whatever it
> is) and
> +             * the only possible values for ret here are:
> +             *
> +             * HTTP_NOT_MODIFIED          (set by
> ap_meets_conditions)
> +             * HTTP_PRECONDITION_FAILED   (set by
> ap_meets_conditions)
> +             * HTTP_INTERNAL_SERVER_ERROR (if something went wrong
> during the
> +             * processing of the response of the CGI script, e.g
> broken headers

This is the root of the issue.  This use of ap_meets_conditions breaks
modularity.  Maybe ap_meets_conditions inherently breaks modularity
and should be punted to ????  We had PR#38070 on a related issue.

> +             * or a crashed CGI process).
> +             */
> +            if (ret == HTTP_NOT_MODIFIED) {
> +                r->status = ret;
> +                return OK;
> +            }
> +
> +            return ret;

+1 as a practical fix.

For the wishlist: review whether we can do this more cleanly by making
ap_meets_conditions set r->status instead of returning a value (as in,
declare it void and see what breaks:-)


-- 
Nick Kew

Application Development with Apache - the Apache Modules Book
http://www.apachetutor.org/

Reply via email to