Uploaded image for project: 'Undertow'
  1. Undertow
  2. UNDERTOW-904

Accumulating zombi socket when HTTP/2 is enabled

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved (View Workflow)
    • Major
    • Resolution: Done
    • 1.4.0.Final, 1.4.6.Final
    • 2.0.0.Beta1, 1.4.7.Final
    • None
    • None
    • Hide
      • Enable HTTP/2
      • Do 100 simple GET requests with h2load and watch the output of lsof
      • Watch lsof again for still opened sockets (unfortunately, Ubuntu's lsof unable to identify it after the test, before they where TCP/IPv4 sockets)
      • Do 100 more request
      • After the you will see 100 new zombies and you can continue it until you reach the max. open files limit
      Show
      Enable HTTP/2 Do 100 simple GET requests with h2load and watch the output of lsof Watch lsof again for still opened sockets (unfortunately, Ubuntu's lsof unable to identify it after the test, before they where TCP/IPv4 sockets) Do 100 more request After the you will see 100 new zombies and you can continue it until you reach the max. open files limit

    Description

      When HTTP/2 is enabled and I run a load test with 100 concurrent users I see that there are 100 new TCP/IPv4 connections to the app server. When the test finished and the load tester exits these 100 connections turn into "something" that I don't understand what are they (see the attachments).

      The problem is that these "zombie" socket are never closed and they get accumulated to the point when the app server reaches the max. open files limit and unable to accept new connections.

      Note that if I disable HTTP/2, the problem disappears and the opened FDs are drop by 100 at the end of the test.

      Attachments:

      • http2-while-run.txt: lsof output under the load, you see the 100 TCP/IPv4 connections (note that there are already zombie socket because it was not the first run)
      • http2-after-run.txt: lsof after the test (you will see the new 100 connection turned into somewhat)
      • http1-while-run.txt: lsof output, normal 100 incoming connection
      • http1-after-run.txt: lsof output, the previous 100 connection is dropped as expected

      Attachments

        1. demo.tar.gz
          2 kB
        2. http1-after-run.txt
          149 kB
        3. http1-while-run.txt
          161 kB
        4. http2-after-run.txt
          196 kB
        5. http2-while-run.txt
          198 kB

        Activity

          People

            sdouglas1@redhat.com Stuart Douglas
            krisztian.kocsis_jira Krisztian Kocsis (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: