Is your feature request related to a problem? Please describe.
Currently, we are using the python client with urllib3 PoolManager.
However we have some servers that have timeout configured for connection idle since X seconds.
In some race conditions where request is sent at the exact same moment of server close the connection, our client is encountering the following error :
ConnectionResetError: [Errno 104] Connection reset by peer
As of today, the urllib3 library do not propose a keepalive_expiry property to force re-creation of HTTP connection when idle.
However the httpx library provide this natively.
Describe the solution you'd like
I saw that the httpx library have been added in v7.16.0 thanks to the work of @soapun ❤️ here :
#22021
It is really nice but it is implemented as a async only library.
We would like to be able to use this library through its sync client.
=> See difference between httpx.AsyncClient() and httpx.Client()
Describe alternatives you've considered
Currently we do not found any "clean" workaround.
The only way would be to trigger applicative retry on Errno 104 but it is a bit of useless overhead in our application.
Additional context
Our python client is targeting a local envoy proxy (sidecar) that have a idle client timeout of 1 hour to clean potential orphan HTTP connections.
Yours faithfully,
LCDP
Is your feature request related to a problem? Please describe.
Currently, we are using the python client with
urllib3 PoolManager.However we have some servers that have timeout configured for connection idle since X seconds.
In some race conditions where request is sent at the exact same moment of server close the connection, our client is encountering the following error :
ConnectionResetError: [Errno 104] Connection reset by peerAs of today, the
urllib3library do not propose akeepalive_expiryproperty to force re-creation of HTTP connection when idle.However the
httpxlibrary provide this natively.Describe the solution you'd like
I saw that the
httpxlibrary have been added in v7.16.0 thanks to the work of @soapun ❤️ here :#22021
It is really nice but it is implemented as a async only library.
We would like to be able to use this library through its sync client.
=> See difference between
httpx.AsyncClient()andhttpx.Client()Describe alternatives you've considered
Currently we do not found any "clean" workaround.
The only way would be to trigger applicative retry on
Errno 104but it is a bit of useless overhead in our application.Additional context
Our python client is targeting a local envoy proxy (sidecar) that have a idle client timeout of 1 hour to clean potential orphan HTTP connections.
Yours faithfully,
LCDP