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

[DCM] health check should remain disable after scale replicas from 1 to 2

XMLWordPrintable

    • Moderate
    • None
    • Rejected
    • False
    • Hide

      None

      Show
      None

      Description of problem:

      After DCM was enabled, created a route with two backend servers, couldn't see the "check inter" in the route's backend configuration

      Version-Release number of selected component (if applicable):

          4.19.0-0.nightly-2025-01-30-091858

      How reproducible:

          100%

      Steps to Reproduce:

      1. Enable DCM
      % oc patch featuregates cluster -p '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' --type=merge
      featuregate.config.openshift.io/cluster patched
      
      2. created deployment with only one replicas, then create a route
      
      3. scale the deployment with replicas 2
      % oc  scale deployment web-server-dm  --replicas=2     
      
      4.
      % oc get all                       
      Warning: apps.openshift.io/v1 DeploymentConfig is deprecated in v4.14+, unavailable in v4.10000+
      NAME                                 READY   STATUS    RESTARTS   AGE
      pod/web-server-dm-59969f4964-77gq8   1/1     Running   0          25m
      pod/web-server-dm-59969f4964-g6ff5   1/1     Running   0          6h55m
      
      
      NAME                             TYPE           CLUSTER-IP      EXTERNAL-IP                            PORT(S)     AGE
      service/kubernetes               ClusterIP      172.30.0.1      <none>                                 443/TCP     8h
      service/openshift                ExternalName   <none>          kubernetes.default.svc.cluster.local   <none>      8h
      service/service-secure-webdm     ClusterIP      172.30.77.62    <none>                                 27443/TCP   7h19m
      service/service-unsecure         ClusterIP      172.30.28.179   <none>                                 27017/TCP   3h54m
      service/service-unsecure-webdm   ClusterIP      172.30.180.3    <none>                                 27017/TCP   7h19m
      
      
      NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
      deployment.apps/web-server-dm   2/2     2            2           7h19m
      
      
      NAME                                       DESIRED   CURRENT   READY   AGE
      replicaset.apps/web-server-dm-59969f4964   2         2         2       7h19m
      
      
      NAME                                              HOST/PORT                                                                        PATH   SERVICES                 PORT   TERMINATION   WILDCARD
      route.route.openshift.io/service-unsecure-webdm   service-unsecure-webdm-default.apps.shudi-g907.qe.gcp.devcluster.openshift.com          service-unsecure-webdm   http                 None
      
      
      5. check the route's backend configuration, no "check inter" configuration.
      backend be_http:default:service-unsecure-webdm
        mode http
        option redispatch
        option forwardfor
        balance random
      
      
        timeout check 5000ms
        http-request add-header X-Forwarded-Host %[req.hdr(host)]
        http-request add-header X-Forwarded-Port %[dst_port]
        http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
        http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
        cookie 90292e94d481662d590506e7220985e6 insert indirect nocache httponly dynamic
        server pod:web-server-dm-59969f4964-g6ff5:service-unsecure-webdm:http:10.131.0.9:8080 10.131.0.9:8080 cookie d6fe50e4567a03d5886a51e84ed922c3 weight 1
        dynamic-cookie-key 90292e94d481662d590506e7220985e6
        server-template _dynamic-pod- 1-1 172.4.0.4:8765 check disabled
      
      6. used debug commands to get some info
      6.1:
      % oc -n openshift-ingress exec router-default-6d54dfbff6-jxmpr -- /bin/sh -c "echo \"show servers state ${BACKEND}\" | socat stdio /var/lib/haproxy/run/haproxy.sock" | sed 1d | grep -v '^#' | cut -d ' ' -f2-6 | sed -e 's/0$/STOP/' -e 's/1$/STARTING/' -e 's/2$/UP/' -e 's/3$/SOFTSTOP/'
      be_http:default:service-unsecure-webdm 1 pod:web-server-dm-59969f4964-g6ff5:service-unsecure-webdm:http:10.131.0.9:8080 10.131.0.9 UP
      be_http:default:service-unsecure-webdm 2 _dynamic-pod-1 10.128.2.29 UP
      
      6.2:
      % oc -n openshift-ingress exec router-default-6d54dfbff6-jxmpr -- /bin/sh -c "echo \"show servers state ${BACKEND}\" | socat stdio /var/lib/haproxy/run/haproxy.sock" | sed 1d | grep -v '^#' | cut -d ' ' -f14 | sed -e 's/0$/CHECKDISABLED/' -e 's/1$/CHECKINPROGRESS/' -e 's/2$/CHECKCONFIGURED/' -e 's/4$/CHECKENABLED/' -e 's/6$/CHECKCONFENABLED/' -e 's/7$/CHECKCONFENABLEDPROGRESS/' -e 's/8$/CHECKPAUSED/' -e 's/10$/CHECKCONFPAUSED/' -e 's/14$/CHECKCONFENABLEPAUSED/'
      CHECKDISABLED
      CHECKCONFENABLED
      
      6.3:
      % oc -n openshift-ingress exec router-default-6d54dfbff6-jxmpr -- /bin/sh -c "echo \"show servers state ${BACKEND}\" | socat stdio /var/lib/haproxy/run/haproxy.sock"
      1
      # be_id be_name srv_id srv_name srv_addr srv_op_state srv_admin_state srv_uweight srv_iweight srv_time_since_last_change srv_check_status srv_check_result srv_check_health srv_check_state srv_agent_state bk_f_forced_id srv_f_forced_id srv_fqdn srv_port srvrecord srv_use_ssl srv_check_port srv_check_addr srv_agent_addr srv_agent_port
      9 be_http:default:service-unsecure-webdm 1 pod:web-server-dm-59969f4964-g6ff5:service-unsecure-webdm:http:10.131.0.9:8080 10.131.0.9 2 0 1 1 309 1 0 2 0 0 0 0 - 8080 - 0 0 - - 0
      9 be_http:default:service-unsecure-webdm 2 _dynamic-pod-1 10.128.2.29 2 4 1 1 36 6 3 4 6 0 0 0 - 8080 - 0 0 - - 0
      
      % 
      
      
      7. scale up the deployment with replicas 3
      %oc  scale deployment web-server-dm  --replicas=3
      
      8. check the route's backend configuration, "check inter" could be seen
      backend be_http:default:service-unsecure-webdm
        mode http
        option redispatch
        option forwardfor
        balance random
      
      
        timeout check 5000ms
        http-request add-header X-Forwarded-Host %[req.hdr(host)]
        http-request add-header X-Forwarded-Port %[dst_port]
        http-request add-header X-Forwarded-Proto http if !{ ssl_fc }
        http-request add-header X-Forwarded-Proto https if { ssl_fc }
        http-request add-header X-Forwarded-Proto-Version h2 if { ssl_fc_alpn -i h2 }
        http-request add-header Forwarded for=%[src];host=%[req.hdr(host)];proto=%[req.hdr(X-Forwarded-Proto)]
        cookie 90292e94d481662d590506e7220985e6 insert indirect nocache httponly dynamic
        server pod:web-server-dm-59969f4964-77gq8:service-unsecure-webdm:http:10.128.2.29:8080 10.128.2.29:8080 cookie 6927c5a2e02572beddbaefb6ab49519b weight 1 check inter 5000ms
        server pod:web-server-dm-59969f4964-6lw5f:service-unsecure-webdm:http:10.129.2.56:8080 10.129.2.56:8080 cookie 7ff54035c01d917d56fa1654196ffa22 weight 1 check inter 5000ms
        server pod:web-server-dm-59969f4964-g6ff5:service-unsecure-webdm:http:10.131.0.9:8080 10.131.0.9:8080 cookie d6fe50e4567a03d5886a51e84ed922c3 weight 1 check inter 5000ms
        dynamic-cookie-key 90292e94d481662d590506e7220985e6
        server-template _dynamic-pod- 1-1 172.4.0.4:8765 check disabled

      Actual results:

      no "check inter"

      Expected results:

      two "check inter", one for the static slot, the other for the dynamic slot

      Additional info:

          

              nid-team-bot NID Team Bot
              shudili@redhat.com Shudi Li
              Shudi Li Shudi Li
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: