io.netty.channel.unix.Errors$NativeEceptionIoException: readAddress failed: Connection reset by peer Request will be retried

Viewed 1279

I am using webClinet to consume OAuth2 secured services. When services takes time more than default timeout i get below error and request is retried.

io.netty.channel.unix.Errors$NativeEceptionIoException: readAddress failed: Connection reset by peer The connection observed an error, the request will be retried. This seem to be IO exception issue with netty.

How do I avoid retry in such scenario?

Here is my webclient configuration-

WebClient webclinet(OAuth2AuthorizedClientManager am){
    ExchangeStrategies ex = ExchangeStrategies
                                        .builder()
                                        .codec(c-> c.defaultCodecs().maxInMemorySize(-1)).build();
    ServletOAuth2AuthorizedClientExchangeFilterFunction oauth = 
                                    new ServletOAuth2AuthorizedClientExchangeFilterFunction(am);

    SslContext ssl = new JdkSslContext(SSLContext.getDefault(),true,ClientAuth.REQUIRE);

    ReactorClientHttpConnector clientHttpConnector = new ReactorClientHttpConnector(Http.create()
                                .secure(sslContextSpec-> sslContextSpec.sslContext(ssl)));
                                
    return WebClient.builder()
                .exchangeStrategies(ex)
                .clientConnector(clientHttpConnector)
                .filter(oauth)
                .build();


1 Answers

There is a property named sslContextSpec.sslContext(ssl).disableRetry(true) which can be used to disable retry functionality of it.

Related