Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-6683

Worker join disturbs jvm route in JSESSIONID

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Critical
    • Resolution: Duplicate Issue
    • Affects Version/s: 7.0.0.GA, 7.1.0.DR6, 7.1.0.DR7, 7.1.0.DR8, 7.1.0.DR9
    • Fix Version/s: None
    • Component/s: Web (Undertow)
    • Labels:
      None

      Description

      Description
      There is an issue when new worker connects to the cluster.
      Jvmroute(name) of the worker that handles requests is at the end of JSESSIONID. (A--XRo-3cogqY4IfCGyjUgHplvNIhsh9AiyB7rLE.jboss-eap-7.1).
      Jvmroute should stay the same when the new worker connects as there is no particular reason to be changed, but is.
      Reproduce
      Reproducible: often
      Was able to reproduce it with EAP-7.0.0 and EAP-7.1.0.DR6, probably all EAP 7 are affected.
      Start balancer(Httpd or EAP7) with one EAP7 as worker with sticky session set to true.
      As you are sending requests via balancer to some app that is present on worker,
      start another EAP7 worker and observe if JSESSIONID ending changed.
      *There are 2 bad scenarios that happens *
      JvmRoute(Name) disappear, this with more workers can lead to session break as it could land on some random worker that don't know this session

      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 12:57:36 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 13
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1
      *   Trying 192.168.122.88...
      * Connected to 192.168.122.88 (192.168.122.88) port 2080 (#0)
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn.jboss-eap-7.1
      > 
      
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn.jboss-eap-7.1
      > 
      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 12:57:38 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      * Replaced cookie JSESSIONID="pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn" for domain 192.168.122.88, path /clusterbench, expire 0
      < Set-Cookie: JSESSIONID=pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn; path=/clusterbench
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 13
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1
      
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn
      > 
      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 12:57:38 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      * Replaced cookie JSESSIONID="pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn.jboss-eap-7.1-2" for domain 192.168.122.88, path /clusterbench, expire 0
      < Set-Cookie: JSESSIONID=pK99xzbEA5qxX9tXV1twOgX1e-P4Bex3CjGmWstn.jboss-eap-7.1-2; path=/clusterbench
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 13
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1
      

      JvmRoute is changed to another worker (new comer), that has problems with handling the request as he is not fully started, but as the session sticky force is set
      to true, balancer returns 503

      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=fQc66GvbljK8ma678AAeXCvtQbx3t3A-Ad0VoW1Y.jboss-eap-7.1
      > 
      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 13:15:27 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 13
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1* About to connect() to 192.168.122.88 port 2080 (#0)
      *   Trying 192.168.122.88...
      * Connected to 192.168.122.88 (192.168.122.88) port 2080 (#0)
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=fQc66GvbljK8ma678AAeXCvtQbx3t3A-Ad0VoW1Y.jboss-eap-7.1
      > 
      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 13:15:28 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      * Replaced cookie JSESSIONID="fQc66GvbljK8ma678AAeXCvtQbx3t3A-Ad0VoW1Y.jboss-eap-7.1-2" for domain 192.168.122.88, path /clusterbench, expire 0
      < Set-Cookie: JSESSIONID=fQc66GvbljK8ma678AAeXCvtQbx3t3A-Ad0VoW1Y.jboss-eap-7.1-2; path=/clusterbench
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 13
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1* About to connect() to 192.168.122.88 port 2080 (#0)
      *   Trying 192.168.122.88...
      * Connected to 192.168.122.88 (192.168.122.88) port 2080 (#0)
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=fQc66GvbljK8ma678AAeXCvtQbx3t3A-Ad0VoW1Y.jboss-eap-7.1-2
      > 
      < HTTP/1.1 503 Service Unavailable
      < Date: Thu, 27 Oct 2016 13:15:28 GMT
      < Server: Apache/2.4.23 (Red Hat)
      < Content-Length: 382
      < Connection: close
      < Content-Type: text/html; charset=iso-8859-1
      < 
      <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
      <html><head>
      <title>503 Service Unavailable</title>
      </head><body>
      <h1>Service Unavailable</h1>
      <p>The server is temporarily unable to service your
      request due to maintenance downtime or capacity
      problems. Please try again later.</p>
      <hr>
      <address>Apache/2.4.23 (Red Hat) Server at 192.168.122.88 Port 2080</address>
      </body></html>
      
      
      .... about sime time later when jboss-eap-7.1-2 worker is able to handle the request
      
      > GET /clusterbench/jvmroute HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: 192.168.122.88:2080
      > Accept: */*
      > Cookie: JSESSIONID=VA7BEKCbvFH9vV2MGeKexFbnB_woOMTmB6T2Wn6w.jboss-eap-7.1-2
      > 
      < HTTP/1.1 200 OK
      < Date: Thu, 27 Oct 2016 13:18:13 GMT
      < Server: JBoss-EAP/7
      < X-Powered-By: Undertow/1
      < Content-Type: text/plain;charset=UTF-8
      < Content-Length: 15
      < Connection: close
      < 
      * Closing connection 0
      jboss-eap-7.1-2* About to connect() to 192.168.122.88 port 2080 (#0)
      

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  rhusar Radoslav Husar
                  Reporter:
                  bsikora Bogdan Sikora
                  Tester:
                  Bogdan Sikora
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  5 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: