https://bz.apache.org/bugzilla/show_bug.cgi?id=69580

--- Comment #11 from Jeff W <[email protected]> ---
Created attachment 40006
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=40006&action=edit
mod_cache.c Make eos insertion during revalidation unconditional

I backed out our provisional change and tried this one. Only limited testing so
far, but it does seem to address the issue in our environment. So the patch
seems good.

However, reviewing the approach of the patch, and the nearby comment about
faulty handlers sometimes generating incomplete output streams, I am curious if
this patch is fixing the issue or hiding it.

Specifically, the flush that's getting generated on line 1529 of mod_cache.c
(in trunk) seems to be what causes this issue. 

The if branch being considered there is only about whether to refresh the
cache. It's not changing the response. And after the conditional, there are no
further brigade manipulations until the brigade is returned on line 1581. No
EOS ever gets inserted in that case.

That could be a faulty handler generating an incomplete output stream. Should
that flush maybe be converted to an eos?

If so, then the eos insert should probably move below the conditional rather
than be duplicated on both branches. (As shown in attached example patch.)

In any case, checking for a response body in the case of EOF-without-EOS and
letting it go if there's not one still seems like a very good and defensive
change.

Thanks for looking into this!

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to