On 4/18/21 10:00 PM, Yann Ylavic wrote:
>
>> The last comment from Rüdiger seems to have been left un-answered.
>
> Ah yes, sorry Rüdiger, somehow I missed that one.
> First for 2.4.x it's true, if !ap_filter_should_yield() then
> ap_filter_output_pending() will always be DECLINED.
> But ap_filter_should_yield() and ap_filter_output_pending() in 2.4.x
> are just some helpers in proxy_util to keep trunk and 2.4.x code
> aligned, not the real util_filter functions.
>
> For trunk though, there is the ssl_io_filter_coalesce() case where
> !ap_filter_should_yield() does not mean that
> ap_filter_output_pending() has nothing to do. That's because
> ssl_io_filter_coalesce() does not play the
> ap_filter_{setaside,reinstate}_brigade() game for now, even though it
> potentially retains data.
> So in r1879416 I made a band aid such that ssl_io_filter_coalesce()
> releases its data when it's called from ap_filter_output_pending(),
Why should ap_filter_output_pending() call ssl_io_filter_coalesce?
As far as I see ssl_io_filter_coalesce does not get added to
the pending_output_filters ring and its private filter brigade would need
to be non empty to get called. Or is it called indirectly?
Regards
Rüdiger