Replacing the proxy service will allow TCA manager (TCA-M) to release the connections to the pool in case of failure.
2023-11-24 11:30:07.376 UTC [Connection Acceptor ':8500', , , TxId: ] ERROR c.p.m.c.t.http.HttpEndpointListener- java.net.SocketException: Broken pipe (Write failed) at java.base/java.net.SocketOutputStream.socketWrite0(Native Method) at java.base/java.net.SocketOutputStream.socketWrite(Unknown Source) at java.base/java.net.SocketOutputStream.write(Unknown Source) at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(Unknown Source) at java.base/sun.security.ssl.HandshakeOutStream.flush(Unknown Source) at java.base/sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer.onProduceCertificateVerify(Unknown Source) at java.base/sun.security.ssl.CertificateVerify$T13CertificateVerifyProducer.produce(Unknown Source) at java.base/sun.security.ssl.SSLHandshake.produce(Unknown Source) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(Unknown Source) at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(Unknown Source) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(Unknown Source) at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(Unknown Source) at java.base/sun.security.ssl.SSLHandshake.consume(Unknown Source) at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source) at java.base/sun.security.ssl.HandshakeContext.dispatch(Unknown Source) at java.base/sun.security.ssl.TransportContext.dispatch(Unknown Source) at java.base/sun.security.ssl.SSLTransport.decode(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.decode(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(Unknown Source) at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(Unknown Source) at com.predic8.membrane.core.transport.http.HttpEndpointListener.writeRateLimitReachedToSource(HttpEndpointListener.java:239) at com.predic8.membrane.core.transport.http.HttpEndpointListener.run(HttpEndpointListener.java:136) 2023-11-24 11:30:07.377 UTC [Connection Acceptor ':8500', , , TxId: ] WARN c.p.m.c.t.http.HttpEndpointListener- Concurrent connection limit reached for IP: /#.#.#.#
2.3, 3.0
Due to a bug on a 3rd party networking library, if a connection to Kubernetes is terminated due to a K8S overload / TCA-M max connection limit, the failed connections are not released back to the proxy's pool of available connection slots, causing the proxy to cease communications with the IP addresses associated with the failed connections.
Resolved in TCA 3.1.