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

xnio missed client request

    XMLWordPrintable

Details

    • Bug
    • Resolution: Obsolete
    • Major
    • None
    • None
    • Core
    • None
    • Hide

      We are replacing tomcat connector with undertow/xnio in a spring-boot setting, for servlet 3.0 based container. During load performance test, observed a possible issue that some request are not dispatched from xnio, the failure count is very small (~ 0.01%), but highly re-producable.

      (server-side JDK 1.8u60, client-side 1.7u45)
      This is observed for both EPollSelectorImpl and PollSelectorImpl.

      Setting:

      Jmeter client (keep-alive traffic) send to undertow spring-boot based server, traffic is on just 1 client thread, it is a blocking client, so in-coming requests to undertow are sequential. Request sent as soon as previous response is received (as fast as possible).

      (1) verified that it is not due to network packet, we used tcpdump to trace the missed request that client-side sent the request, and server “ack” from os stand point. But the response is never sent from the server-side when failed. See below images show when a request is successful vs. unsuccessful, comparing.
      (2) matching application logging for the same time-stamp successful vs. unsuccessful case as well.

      (successful)

      (unsuccessful)

      Note that if I use concurrent jmeter client, same behavior is also observed, the ratio did not worsen, actually, it might be slightly better than just single test client.

      Show
      We are replacing tomcat connector with undertow/xnio in a spring-boot setting, for servlet 3.0 based container. During load performance test, observed a possible issue that some request are not dispatched from xnio, the failure count is very small (~ 0.01%), but highly re-producable. (server-side JDK 1.8u60, client-side 1.7u45) This is observed for both EPollSelectorImpl and PollSelectorImpl. Setting: Jmeter client (keep-alive traffic) send to undertow spring-boot based server, traffic is on just 1 client thread, it is a blocking client, so in-coming requests to undertow are sequential. Request sent as soon as previous response is received (as fast as possible). (1) verified that it is not due to network packet, we used tcpdump to trace the missed request that client-side sent the request, and server “ack” from os stand point. But the response is never sent from the server-side when failed. See below images show when a request is successful vs. unsuccessful, comparing. (2) matching application logging for the same time-stamp successful vs. unsuccessful case as well. (successful) (unsuccessful) Note that if I use concurrent jmeter client, same behavior is also observed, the ratio did not worsen, actually, it might be slightly better than just single test client.

    Description

      We are replacing tomcat connector with undertow/xnio in a spring-boot setting, for servlet 3.0 based container. During load performance test, observed a possible issue that some request are not dispatched from xnio, the count is very small (~ 0.01%), but highly repeatable.

      Attachments

        1. failed.png
          failed.png
          127 kB
        2. failed.png
          failed.png
          142 kB
        3. success.png
          success.png
          192 kB

        Activity

          People

            sdouglas1@redhat.com Stuart Douglas
            qbradley Qian Bradley (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: