On Thu, May 23, 2024, at 3:52 PM, William Manley wrote:
> On Thu, May 23, 2024, at 3:45 PM, Amaury Denoyelle wrote:
> > On Thu, May 23, 2024 at 02:47:15PM +0100, William Manley wrote:
> > > On Thu, May 23, 2024, at 2:08 PM, Amaury Denoyelle wrote:
> > > > On Thu, May 23, 2024 at 11:55:13AM +0100, William Manley wrote:
> > > > > On Thu, May 23, 2024, at 11:34 AM, William Manley wrote:
> > > > > > On Thu, May 23, 2024, at 10:08 AM, Amaury Denoyelle wrote:
> > > > > > > On Wed, May 22, 2024 at 04:58:44PM +0100, William Manley wrote:
> > > > > > > > On Wed, May 22, 2024, at 1:06 PM, Amaury Denoyelle wrote:
> > > > > > > > > FYI, I just merged a series of fix to improve reverse HTTP. 
> > > > > > > > > It is now
> > > > > > > > > possible to use PROXY protocol on preconnect stage. Also, you 
> > > > > > > > > have the
> > > > > > > > > availability to use PROXY v2 TLV to differentiate 
> > > > > > > > > connections. Note
> > > > > > > > > however that PROXY unique-id is not supported for now due to 
> > > > > > > > > internal
> > > > > > > > > API limitations.
> > > > > > > > > > If you can do not hesitate to test this and report us if 
> > > > > > > > > > it's sufficient
> > > > > > > > > for you.
> > > > > > > > I've just tried this out and there's something about these 
> > > > > > > > changes that are causing my tests to fail.
> > > > > > > > It seems to be triggered by "MEDIUM: rhttp: create session for 
> > > > > > > > active preconnect"
> > > > > > > > Tested versions:
> > > > > > > > eb89a7da33ae30da3ed61570aa1597987b59dff3 OK
> > > > > > > > ceebb09744df367ad84586a341d9336f84f72bce OK
> > > > > > > > 45b80aed70a597614e31b748328570785099dfec OK
> > > > > > > > 12c40c25a9520fe3365950184fe724a1f4e91d03 BAD
> > > > > > > > 60496e884e5220b9330a1d8b3a1218f7988c879a BAD
> > > > > > > > 4a968d9d274a24e5d00bd3c03dd22fe2563b13af BAD
> > > > > > > > I'll investigate further tomorrow.
> > > > > > > > > Hum can you describe what sort of tests you are running ?
> > > > > >
> > > > > > [...]
> > > > > >
> > > > > > I've attached the configs used during the test.  You'll notice that 
> > > > > > each block uses a different IP address from 127.0.0.*.  This makes 
> > > > > > the TCP flow graph in wireshark meaningful.  I've attached a packet 
> > > > > > capture of the test failing.  I'd also attach a packet capture from 
> > > > > > it succeeding, but it's a bit big.  I'll look into them and try to 
> > > > > > figure out where it's going wrong.
> > > > > I've compared the good trace and the bad trace and I think I can see 
> > > > > where this is going wrong.  My RHTTP block on the node looks like:
> > > > > # Requests from the portal to the node arrive at this frontend over 
> > > > > rhttp:
> > > > > listen flask_reverse_proxy
> > > > > mode http
> > > > > log global
> > > > > bind rhttp@rhttp_backend/srv
> > > > > # We dynamically route to the listening socket based on the hostname, 
> > > > > this
> > > > > # way we can add new domains without a node deploy:
> > > > > http-request capture req.hdr(X-Remote-IP) len 15
> > > > > http-request capture req.hdr(X-Remote-Port) len 5
> > > > > http-request set-dst hdr(X-Remote-IP)
> > > > > http-request set-dst-port hdr(X-Remote-Port)
> > > > > http-response add-header Vary X-Remote-IP,X-Remote-Port
> > > > > server srv 0.0.0.0:0 source 127.0.0.8
> > > > > It seems like with the active preconnect commit (12c40c25) it ignores 
> > > > > set-dst, so instead of connecting to the IP requested (in this case 
> > > > > 127.0.0.7) it attempts to connect to 127.0.0.8.
> > > > > Interesting. Could you please try the attached patch and tell me if 
> > > > > this
> > > > solves your issue ? Many thanks,
> > > It doesn't fix it.  It fails in the same way.
> > 
> > Thank you for your quick testing. I have manage to reproduce what I
> > think could be a similar issue. I have updated my patch, can you please
> > try the following new one ?
> 
> Yes, that fixes it.
> 
> Let me know whenever you want something tested, the way I've got it set up 
> it's pretty easy for me to do so.

I can also report that I no longer need to avoid `nbthread 1` in the config on 
the node.  Presumably thanks to ceebb09744df367ad84586a341d9336f84f72bce 
"rhttp: fix preconnect on single-thread".

Thanks

Will
---
William Manley
Stb-tester.com

Stb-tester.com Ltd is a company registered in England and Wales.
Registered number: 08800454. Registered office: 13B The Vale,
London, W3 7SH, United Kingdom (This is not a remittance address.)

Reply via email to