On Thu, Sep 24, 2015 at 5:51 PM, Eric Covener <[email protected]> wrote: > On Thu, Sep 24, 2015 at 11:45 AM, Yann Ylavic <[email protected]> wrote: >> >> How about: >> Index: modules/ssl/ssl_engine_io.c >> =================================================================== >> --- modules/ssl/ssl_engine_io.c (revision 1704850) >> +++ modules/ssl/ssl_engine_io.c (working copy) >> @@ -474,7 +474,8 @@ >> * output is buffered) so the performance impact of doing it >> * unconditionally should be minimal. >> */ >> - if (bio_filter_out_flush(inctx->bio_out) < 0) { >> + if (block == APR_BLOCK_READ && >> + bio_filter_out_flush(inctx->bio_out) < 0) { >> bio_filter_out_ctx_t *outctx = inctx->bio_out->ptr; >> inctx->rc = outctx->rc; >> return -1; >> ? > > I guess I understand your previous comment better, but wouldn't this > mean further delaying the flush, which makes it even farther away from > when the transaction was logged?
Yes, this is unrelated to the issue I guess (looks sensible, though). What I think is destroying the EOR before the flush is the first/leading remove_empty_buckets() in send_brigade_nonblocking(). Looking if we can get rid of it...
