On Wed, Apr 6, 2016 at 9:53 AM, Willy Tarreau <[email protected]> wrote: [...]
> So this means that in TCP mode we're aware of the abort earlier than in > HTTP mode. Thus we theorically have everything needed to decide not to > connect if possible. > /me nods, it appears so. > This one will result in truncated transfers when shutting down at the end > so we must not do it this way, but I see your point. I guess one reason > why TCP's abort is not caught is that we don't enter process_stream() once > the connection is established and we don't have any more analysers (which > is true in TCP). In HTTP we have several opportunities to get back there > and possibly to abort the connection early. > > I think that we'd need to add tests for PR_O_ABRT_CLOSE before deciding > to establish a connection, it's done in sess_update_stream_int(), for > state SI_ST_ASS. In certain states such as SI_ST_QUE (queue) or SI_ST_TAR > (turn-around, wait before retrying), the test is already performed, but > its missing here before the call to connect_server(). Do you want to try > this instead ? If it works, simply send a patch with a description > according to the CONTRIBUTING file and I'll happily merge it. > That sounds good, I'll try that. Thanks! Frederik

