Haprocy sends fin,ack to client when receives a rst, ack from server

Hello,

i have a problem, that probaply came up on version 1.5 and I already have seen 1-2 discussions here, but no solution :frowning:
We have an dot.net client/server application (the application uses the wcf dotnet framework) that creates an tcp connection. the wcf framework disconnects the tcp connection after an configurable time (nomally 10min) of inactivity with an “rst, ack”, This is not configurable.
haproxy sends an fin, ack to the client, but there is no option in the wcf framwork to get an exception for this, so nothing can be done on the application side that the session should be closed… instead data will be send and then ha proxy send a RST. This causes a high cpu load on the client side.

  • on Serverside only the timeout value can be changed [RST, ACK] is fixed
  • on client side the application gets no notfification for an [FIN, ACK] so no workaround can be written.

why will an [RST, ACK] rewritten to [FIN, ACK] on an plain TCP loadbalancing??

I using the latest stable HA-Proxy with this configuration:

defaults
	log	global
	mode	tcp
	option	tcplog
	#option	dontlognull
    timeout connect 28800000
    timeout client  28800000
    timeout server  28800000

frontend frntend
    bind 0.0.0.0:11011
    mode tcp
    use_backend bckend

backend bckend
    mode tcp
    balance roundrobin
    stick-table type ip size 10k expire 30m 
    stick on src
    server server1 10.10.116.227 check port 11011
    server server2 10.10.116.228 check port 11011
    server server3 10.10.116.229 check port 11011

Thanks a lot
Frank

PS
The application is not written by me and that are all information i have about the internal things :frowning: