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.

Note to self for next time:

make -C haproxy/haproxy/      ARCH=amd64   V=1   DESTDIR=/dest   PREFIX=/usr   
IGNOREGIT=true   MANDIR=/usr/share/man   DOCDIR=/usr/share/doc/haproxy   
USE_PCRE2=1   USE_PCRE2_JIT=1   USE_OPENSSL=1   USE_SLZ=1   USE_LUA=1   
USE_PROMEX=1   LUA_LIB_NAME=lua5.3   EXTRA=admin/halog/halog   
TARGET=linux-glibc   USE_SYSTEMD=1   ADDLIB="-latomic"   -j12 && 
PYTHONPATH=$PWD/pythonpath PATH=$PWD/haproxy/haproxy/:$PATH pytest-3 
central-server/selftests/test_haproxy.py

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