On 12/12/2016 01:23 PM, Yann Ylavic wrote:
On Mon, Dec 12, 2016 at 10:07 PM, Jacob Champion <champio...@gmail.com> wrote:


What's the case where this catches recursion that the previous logic in
r1773861 did not handle? I'm trying to write a test that fails on r1773861
and succeeds on r1773865, but I haven't figured it out yet.

I think it's more r1773862 that fixes your test case.

To clarify: I can't reproduce any problems with r1773861 in the first place, even with ErrorDocument. I agree that r1773862 (and r1773865) work for me; I just don't know what makes them functionally different. In my attempted test cases, I can't find any case where the rr->pool used during the internal redirect differs from the original r->pool.

Can you send me a config snippet that reproduces the loop with ErrorDocument? I'm not arguing against your followup patches; I just want to make sure a correct test case gets into the suite. :D

In r1773861, the recursion wouldn't work with "ErrorDocument
/some/file" for example, because ap_die() may either call
ap_intern_redirects() which is caught by ap_is_initial_req(), or
ap_send_error_response() directly which is caught by pool userdata
"dying".

r1773865 allows to not depend on ap_die() internals, and also allows
to try ap_die() (once) for internal redirects that
ap_http_header_filter() did not generated itself...

Regards,
Yann.


Reply via email to