Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8293562

KeepAliveCache Blocks Threads while Closing Connections

XMLWordPrintable

    • b18
    • generic
    • generic
    • Verified

        ADDITIONAL SYSTEM INFORMATION :
        Linux : "Red Hat Enterprise Linux Server" "7.9 (Maipo)"
        Java : jdk-11.0.14


        A DESCRIPTION OF THE PROBLEM :
        Hello

        we faced issues with blocked threads on KeepAliveCache.get

        We have a front app which calls a backend app on the same server, sometimes we observe that the front app didn't work, blocked on the calls to the backend. The backend didn't seem receiving the requests…

        The local http call from the front App is done with Spring RestTemplate we observe simultaneous blocked threads on different parallelized servers at the same time…
        Without exceptions... We used Dynatrace and we can see the stack. I can send to you some screenshots. The app is stuck, impossible to use and after some minutes (15min) it comes back to live.


        KeepAliveCache.get
        Built-In JRE | sun.net.www.http

        HttpClient.New
        Built-In JRE | sun.net.www.http

        HttpClient.New
        Built-In JRE | sun.net.www.http

        HttpURLConnection.getNewHttpClient
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.plainConnect0
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.plainConnect
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.connect
        Built-In JRE | sun.net.www.protocol.http

        SimpleBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractClientHttpRequest.execute
        Built-In Spring | org.springframework.http.client

        InterceptingClientHttpRequest$InterceptingRequestExecution.execute
        Built-In Spring | org.springframework.http.client

        TracingClientHttpRequestInterceptor.intercept
        Built-In Spring | org.springframework.cloud.sleuth.instrument.web.mvc

        LazyTraceClientHttpRequestInterceptor.intercept
        Built-In Spring | org.springframework.cloud.sleuth.instrument.web.client

        InterceptingClientHttpRequest$InterceptingRequestExecution.execute
        Built-In Spring | org.springframework.http.client

        InterceptingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractClientHttpRequest.execute
        Built-In Spring | org.springframework.http.client

        RestTemplate.doExecute
        Built-In Spring | org.springframework.web.client

        RestTemplate.execute
        Built-In Spring | org.springframework.web.client

        RestTemplate.exchange
        Built-In Spring | org.springframework.web.client

        HealthCheckController.isGridUpAndRunning
        Java | com.bnpparibas.dsibddf.cas.web

        here some java parameters :
        /apps/JRE11/lastJDK/bin/java -server -Xms3g -Xmx3g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=10 -Dlogging.config=/……/log4j2.xml -jar /…./mywar.war



        KeepAliveCache.get
        Built-In JRE | sun.net.www.http

        HttpClient.New
        Built-In JRE | sun.net.www.http

        HttpClient.New
        Built-In JRE | sun.net.www.http

        HttpURLConnection.getNewHttpClient
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.plainConnect0
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.plainConnect
        Built-In JRE | sun.net.www.protocol.http

        HttpURLConnection.connect
        Built-In JRE | sun.net.www.protocol.http

        SimpleBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractClientHttpRequest.execute
        Built-In Spring | org.springframework.http.client

        InterceptingClientHttpRequest$InterceptingRequestExecution.execute
        Built-In Spring | org.springframework.http.client

        TracingClientHttpRequestInterceptor.intercept
        Built-In Spring | org.springframework.cloud.sleuth.instrument.web.mvc

        LazyTraceClientHttpRequestInterceptor.intercept
        Built-In Spring | org.springframework.cloud.sleuth.instrument.web.client

        InterceptingClientHttpRequest$InterceptingRequestExecution.execute
        Built-In Spring | org.springframework.http.client

        InterceptingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractBufferingClientHttpRequest.executeInternal
        Built-In Spring | org.springframework.http.client

        AbstractClientHttpRequest.execute
        Built-In Spring | org.springframework.http.client

        RestTemplate.doExecute
        Built-In Spring | org.springframework.web.client

        RestTemplate.execute
        Built-In Spring | org.springframework.web.client

        RestTemplate.exchange
        Built-In Spring | org.springframework.web.client

        HealthCheckController.isGridUpAndRunning
        Java | com.bnpparibas.dsibddf.cas.web

        here some java parameters :
        /apps/JRE11/lastJDK/bin/java -server -Xms3g -Xmx3g -XX:+AlwaysPreTouch -XX:+UseG1GC -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -XX:MaxGCPauseMillis=100 -XX:G1ReservePercent=10 -Dlogging.config=/……/log4j2.xml -jar /…./mywar.war


        FREQUENCY : occasionally


              djelinski Daniel Jelinski
              webbuggrp Webbug Group
              Votes:
              0 Vote for this issue
              Watchers:
              14 Start watching this issue

                Created:
                Updated:
                Resolved: