Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-43745

Route update does not work correctly in a multiple EAP clusters environment

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • None
    • 4.14.z, 4.15.z, 4.16, 4.17, 4.18
    • Networking / router
    • Critical
    • None
    • Rejected
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      We have two EAP application server clusters and for each of them there is a service created. We have a route configured to the one of the services. When we update the route programmatically to lead to the second service/cluster the response shows it is still being attached to the same service.

      Steps to Reproduce:
      1. Create two separate clusters of the EAP servers
      2. Create one service for the first cluster (hsc1) and one for the second one (hsc2)
      3. Create a route for the first service (hsc1)
      4. Start both of the clusters and assure the replication works
      5. Send a request to the first cluster using the route URL - response should contain identification of the first cluster (hsc-1-xxx)

      [2024-08-29 11:30:44,544] INFO - [ForkJoinPool-1-worker-1] 1st request responseString hsc-1-2-0c872b89-ef3e-48c6-8163-372e447e013d 1 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      [2024-08-29 11:30:44,654] INFO - [ForkJoinPool-1-worker-1] 2nd request responseString hsc-1-2-0c872b89-ef3e-48c6-8163-372e447e013d 2 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      

      6. update the route programatically to redirect to the second service (hsc2)

      ...
      builder.editSpec().editTo().withName("hsc2").endTo().endSpec();
      ...
      

      7. Send the request again using the same route - in the response there is the same identification of the first cluster

      [2024-08-29 11:31:45,098] INFO - [ForkJoinPool-1-worker-1] responseString after route update hsc-1-2-0c872b89-ef3e-48c6-8163-372e447e013d 3 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      

      although the service was updated in the route yaml:

      ...
      kind: Service
          name: hsc2
      

      When creating a new route hsc2 for a service hsc2 and using it for the third request we can see the second cluster was targetted correctly with his own separate replication working

      [2024-08-29 13:43:13,679] INFO - [ForkJoinPool-1-worker-1] 1st request responseString hsc-1-2-00594ca9-f70c-45de-94b8-354a6e1fc293 1 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      [2024-08-29 13:43:13,790] INFO - [ForkJoinPool-1-worker-1] 2nd request responseString hsc-1-2-00594ca9-f70c-45de-94b8-354a6e1fc293 2 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      [2024-08-29 13:44:14,056] INFO - [ForkJoinPool-1-worker-1] responseString after second route for service hsc2 was used hsc-2-2-614582a9-3c71-4690-81d3-32a616ed8e54 1 with route hsc2-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      

      I also did a different attempt.
      I Stopped the test in debug mode after the two requests were executed

      [2024-08-30 14:23:43,101] INFO - [ForkJoinPool-1-worker-1] 1st request responseString hsc-1-1-489d4239-be4f-4d5e-9343-3211ae479d51 1 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      [2024-08-30 14:23:43,210] INFO - [ForkJoinPool-1-worker-1] 2nd request responseString hsc-1-1-489d4239-be4f-4d5e-9343-3211ae479d51 2 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      

      Then manually changed the route yaml to use the hsc2 service and send the request manually:

      curl http://hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com/Counter
      hsc-2-2-84fa1d7e-4045-4708-b89e-7d7f3cd48541 1
      

      responded correctly with the second service/cluster.

      Then resumed the test run in debug mode and sent the request programmatically

      [2024-08-30 14:24:59,509] INFO - [ForkJoinPool-1-worker-1] responseString after route update hsc-1-1-489d4239-be4f-4d5e-9343-3211ae479d51 3 with route hsc-cihak2.apps.cpqe037-cnid.eapqe.psi.redhat.com
      

      responded with the wrong first service/cluster.

      Actual results: Route directs to the same service and EAP cluster

      Expected results: After the update the route should direct to the second service and EAP cluster

      Additional info:
      This issue started to occur from OCP 4.16. Going through the 4.16 release notes and suggested route configuration didn't lead to any possible configuration chnages which should have been applied.

      The code of the MultipleClustersTest.twoClustersTest where was this issue discovered is available here.

      All the logs as well as services and route yamls are attached to the EAPQE jira.

              amcdermo@redhat.com Andrew McDermott
              dcihak@redhat.com Daniel Cihak
              Hongan Li Hongan Li
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

                Created:
                Updated: