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

Reply via email to