Connection multiplexing fails if remote server has idle timeout equal to interval between http requests
search cancel

Connection multiplexing fails if remote server has idle timeout equal to interval between http requests

book

Article ID: 375047

calendar_today

Updated On:

Products

VMware Avi Load Balancer

Issue/Introduction

Connection multiplexing fails if remote server has idle timeout equal to interval between http requests.Using external monitoring system which is polled every 30 seconds and the connection would fail with a 503 error every now and then.

Cause

This occurs when the backend-server closes the connection due to an idle timeout .When the FIN/ACK is received from the server at the same time as the next request from the client is about to be forwarded AVI returns a 503 to the client.

Resolution

By Default upstream_connpool_conn_idle_tmo on Avi is set to 60 s or 1 Min however server timeout can be less that that.(For eg: 30sec)

Workaround is to reduce the upstream_connpool_conn_idle_tmo to be less than 30 sec. Reducing the pool’s conn_idle_tmo can have the connection closed by SE before server closes it due to server timeout. This way we can pick up a different connection from conn pool or just open a new one (if there is no open connect in conn pool for that server).

https://docs.vmware.com/en/VMware-Avi-Load-Balancer/30.2/Configuration-Guide/GUID-0C21D30E-17B3-4618-946D-F6DA3C518DD6.html

 

Additional Information

This is not a bug as frontend and backend connection are stiched to each other and we got a request at the same time when we are in the process of clearing the connection due to FIN from server side.