Uploaded image for project: 'HttpComponents HttpCore'
  1. HttpComponents HttpCore
  2. HTTPCORE-716

High CPU usage noticed for HTTPS GET requests with large payload

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 4.4.14, 4.4.15
    • 4.4.16
    • HttpCore NIO
    • None

    Description

      We are using 4.4.14 of HttpCore NIO. We are having an issue while sending an HTTPS GET request to the server with a large payload where the CPU usage seems to increase and stays on forever. We debugged and found out that after the HTTPS response is written back to the client, the server tries to close the connection. We found out that the condition [1] which gets executed in order to make the state closed becomes false forever and hence it keeps on trying to close. It was observed that inPlain.hasData() is always true.

      We have attached a sample POSTMAN request and a server in order to reproduce the issue.

      Appreciate your help on this issue.

      [1]-https://github.com/apache/httpcomponents-core/blob/rel/v4.4.14/httpcore-nio/src/main/java/org/apache/http/nio/reactor/ssl/SSLIOSession.java#L388

      Thanks,

      Sanoj

      Attachments

        1. HTTPCORE.postman_collection.json
          11 kB
          Sanoj Punchihewa
        2. HttpNIOTestServer.zip
          14 kB
          Sanoj Punchihewa
        3. HttpNIOTestServer.jar
          744 kB
          Sanoj Punchihewa
        4. testclient.jar
          86 kB
          Sanoj Punchihewa
        5. HttpNIOTestServer2.zip
          87 kB
          Sanoj Punchihewa
        6. testclient 2.zip
          98 kB
          Sanoj Punchihewa

        Issue Links

          Activity

            People

              Unassigned Unassigned
              sanojpunchihewa Sanoj Punchihewa
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: