Hi Willy,

Good to know it was fixed.
I will try to do some more testing as well.

btw: do you mind if I am trying to have the SOCKS4 support backported
to 1.9 and 1.8?

Thank you.

Regards,
Alexander Liu

On Mon, Jun 3, 2019 at 2:42 PM Willy Tarreau <[email protected]> wrote:
>
> On Mon, Jun 03, 2019 at 07:19:46AM +0200, Willy Tarreau wrote:
> > On Mon, Jun 03, 2019 at 01:40:28AM +0800, Alec Liu wrote:
> > > Hi Willy,
> > >
> > > Your configuration working for me too, but once I have the "mode tcp"
> > > changed to "mode http", it was failed.
> > > Can you give it a try by changing your testing configuration mode from
> > > "mode tcp" to "mode http"?
> >
> > OK I can now reproduce it this way. And I'm seeing the same problem
> > you have regarding epoll_ctl(DEL). I'm anticipating something ugly
> > in the lower layers now...
>
> So as I feared it, it was ugly, but not that much in the end. The problem
> stemmed from long ago due to handshake handlers partially dealing for their
> events and for others', leaving the connections in a pseudo-random polling
> state. And the reason it failed in HTTP mode was because mux-h1 immediately
> tries to recv() after a connect(), fails, then subscribes the connection to
> polling marking it not ready, then the handshake handlers use this not-ready
> mark to stop processing, and did not even enable polling for recv when
> leaving, which explains the EPOLL_CTL_DEL you've seen.
>
> I've fixed the connection issues and also have a working fix for mux-h1 that
> I'll ask Christopher confirmation before merging it.
>
> Now everything works for me, tcp/http, proxy v1/v2/none, with or without
> socks4, with or without checks.
>
> Cheers,
> Willy

Reply via email to