Uploaded image for project: 'Knative Serving'
  1. Knative Serving
  2. SRVKS-641

Two revisions with the same generation are sometimes created for a single ksvc/configuration

XMLWordPrintable

    • False
    • False
    • Undefined
    • Serverless Sprint 191

      We have a test that very sporadically fails due to an unexpected extra revision existing.

      I could reproduce the problem once with a stripped-down test that only creates a ksvc, waits for its readiness, deletes, and repeats.

      Reproduced on 4.6.0-0.nightly-2020-10-03-051134, with current prod builds of Serverless 1.10

      oc get ksvc receiver-41 -o yaml

      apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        annotations:
          serving.knative.dev/creator: kube:admin
          serving.knative.dev/lastModifier: kube:admin
        creationTimestamp: "2020-10-07T17:41:51Z"
        generation: 1
        labels:
          serving.knative.dev/visibility: cluster-local
        managedFields:
        - apiVersion: serving.knative.dev/v1
          fieldsType: FieldsV1
          fieldsV1:
            f:metadata:
              f:labels:
                .: {}
                f:serving.knative.dev/visibility: {}
            f:spec:
              .: {}
              f:template:
                .: {}
                f:metadata:
                  .: {}
                  f:annotations:
                    .: {}
                    f:autoscaling.knative.dev/maxScale: {}
                    f:autoscaling.knative.dev/minScale: {}
                    f:autoscaling.knative.dev/targetBurstCapacity: {}
                  f:creationTimestamp: {}
                f:spec:
                  .: {}
                  f:containers: {}
          manager: eventing.test
          operation: Update
          time: "2020-10-07T17:41:51Z"
        - apiVersion: serving.knative.dev/v1
          fieldsType: FieldsV1
          fieldsV1:
            f:status:
              .: {}
              f:address:
                .: {}
                f:url: {}
              f:conditions: {}
              f:latestCreatedRevisionName: {}
              f:latestReadyRevisionName: {}
              f:observedGeneration: {}
              f:traffic: {}
              f:url: {}
          manager: controller
          operation: Update
          time: "2020-10-07T17:42:03Z"
        name: receiver-41
        namespace: myproject
        resourceVersion: "618874"
        selfLink: /apis/serving.knative.dev/v1/namespaces/myproject/services/receiver-41
        uid: 55a8be48-01c7-4679-885d-8d83969b6cd5
      spec:
        template:
          metadata:
            annotations:
              autoscaling.knative.dev/maxScale: "1"
              autoscaling.knative.dev/minScale: "1"
              autoscaling.knative.dev/targetBurstCapacity: "0"
            creationTimestamp: null
          spec:
            containerConcurrency: 0
            containers:
            - env:
              - name: POD_NAME
                value: receiver-41
              - name: POD_NAMESPACE
                value: myproject
              image: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver
              imagePullPolicy: IfNotPresent
              name: user-container
              readinessProbe:
                successThreshold: 1
                tcpSocket:
                  port: 0
              resources: {}
            timeoutSeconds: 300
        traffic:
        - latestRevision: true
          percent: 100
      status:
        address:
          url: http://receiver-41.myproject.svc.cluster.local
        conditions:
        - lastTransitionTime: "2020-10-07T17:42:03Z"
          status: "True"
          type: ConfigurationsReady
        - lastTransitionTime: "2020-10-07T17:42:03Z"
          status: "True"
          type: Ready
        - lastTransitionTime: "2020-10-07T17:42:03Z"
          status: "True"
          type: RoutesReady
        latestCreatedRevisionName: receiver-41-kkdnz
        latestReadyRevisionName: receiver-41-kkdnz
        observedGeneration: 1
        traffic:
        - latestRevision: true
          percent: 100
          revisionName: receiver-41-kkdnz
        url: http://receiver-41.myproject.svc.cluster.local
      
      $ oc get revisions
      NAME                CONFIG NAME   K8S SERVICE NAME    GENERATION   READY   REASON
      receiver-41-kkdnz   receiver-41   receiver-41-kkdnz   1            True    
      receiver-41-kqzc9   receiver-41   receiver-41-kqzc9   1            True   
      
      $ oc get revisions -o yaml
      apiVersion: v1
      items:
      - apiVersion: serving.knative.dev/v1
        kind: Revision
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: "1"
            autoscaling.knative.dev/minScale: "1"
            autoscaling.knative.dev/targetBurstCapacity: "0"
            serving.knative.dev/creator: kube:admin
            serving.knative.dev/lastPinned: "1602092523"
          creationTimestamp: "2020-10-07T17:41:52Z"
          generateName: receiver-41-
          generation: 1
          labels:
            serving.knative.dev/configuration: receiver-41
            serving.knative.dev/configurationGeneration: "1"
            serving.knative.dev/route: receiver-41
            serving.knative.dev/service: receiver-41
          managedFields:
          - apiVersion: serving.knative.dev/v1
            fieldsType: FieldsV1
            fieldsV1:
              f:metadata:
                f:annotations:
                  .: {}
                  f:autoscaling.knative.dev/maxScale: {}
                  f:autoscaling.knative.dev/minScale: {}
                  f:autoscaling.knative.dev/targetBurstCapacity: {}
                  f:serving.knative.dev/creator: {}
                  f:serving.knative.dev/lastPinned: {}
                f:generateName: {}
                f:labels:
                  .: {}
                  f:serving.knative.dev/configuration: {}
                  f:serving.knative.dev/configurationGeneration: {}
                  f:serving.knative.dev/route: {}
                  f:serving.knative.dev/service: {}
                f:ownerReferences:
                  .: {}
                  k:{"uid":"9d7692a2-a173-457c-8b36-553db58e604a"}:
                    .: {}
                    f:apiVersion: {}
                    f:blockOwnerDeletion: {}
                    f:controller: {}
                    f:kind: {}
                    f:name: {}
                    f:uid: {}
              f:spec:
                .: {}
                f:containerConcurrency: {}
                f:containers: {}
                f:timeoutSeconds: {}
              f:status:
                .: {}
                f:conditions: {}
                f:containerStatuses: {}
                f:imageDigest: {}
                f:logUrl: {}
                f:observedGeneration: {}
                f:serviceName: {}
            manager: controller
            operation: Update
            time: "2020-10-07T17:42:05Z"
          name: receiver-41-kkdnz
          namespace: myproject
          ownerReferences:
          - apiVersion: serving.knative.dev/v1
            blockOwnerDeletion: true
            controller: true
            kind: Configuration
            name: receiver-41
            uid: 9d7692a2-a173-457c-8b36-553db58e604a
          resourceVersion: "618918"
          selfLink: /apis/serving.knative.dev/v1/namespaces/myproject/revisions/receiver-41-kkdnz
          uid: 4bdef05f-61bf-4a4a-ad86-40b5e70f1b55
        spec:
          containerConcurrency: 0
          containers:
          - env:
            - name: POD_NAME
              value: receiver-41
            - name: POD_NAMESPACE
              value: myproject
            image: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver
            imagePullPolicy: IfNotPresent
            name: user-container
            readinessProbe:
              successThreshold: 1
              tcpSocket:
                port: 0
            resources: {}
          timeoutSeconds: 300
        status:
          conditions:
          - lastTransitionTime: "2020-10-07T17:42:05Z"
            severity: Info
            status: "True"
            type: Active
          - lastTransitionTime: "2020-10-07T17:42:03Z"
            status: "True"
            type: ContainerHealthy
          - lastTransitionTime: "2020-10-07T17:42:03Z"
            status: "True"
            type: Ready
          - lastTransitionTime: "2020-10-07T17:42:03Z"
            status: "True"
            type: ResourcesAvailable
          containerStatuses:
          - imageDigest: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver@sha256:ee429c62d60dc1c521ea882a940cdcc675fbb853beb139862e66d05ba6e12455
            name: user-container
          imageDigest: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver@sha256:ee429c62d60dc1c521ea882a940cdcc675fbb853beb139862e66d05ba6e12455
          logUrl: http://localhost:8001/api/v1/namespaces/knative-monitoring/services/kibana-logging/proxy/app/kibana#/discover?_a=(query:(match:(kubernetes.labels.knative-dev%2FrevisionUID:(query:'4bdef05f-61bf-4a4a-ad86-40b5e70f1b55',type:phrase))))
          observedGeneration: 1
          serviceName: receiver-41-kkdnz
      - apiVersion: serving.knative.dev/v1
        kind: Revision
        metadata:
          annotations:
            autoscaling.knative.dev/maxScale: "1"
            autoscaling.knative.dev/minScale: "1"
            autoscaling.knative.dev/targetBurstCapacity: "0"
            serving.knative.dev/creator: kube:admin
            serving.knative.dev/lastPinned: "1602092519"
          creationTimestamp: "2020-10-07T17:41:51Z"
          generateName: receiver-41-
          generation: 1
          labels:
            serving.knative.dev/configuration: receiver-41
            serving.knative.dev/configurationGeneration: "1"
            serving.knative.dev/service: receiver-41
          managedFields:
          - apiVersion: serving.knative.dev/v1
            fieldsType: FieldsV1
            fieldsV1:
              f:metadata:
                f:annotations:
                  .: {}
                  f:autoscaling.knative.dev/maxScale: {}
                  f:autoscaling.knative.dev/minScale: {}
                  f:autoscaling.knative.dev/targetBurstCapacity: {}
                  f:serving.knative.dev/creator: {}
                  f:serving.knative.dev/lastPinned: {}
                f:generateName: {}
                f:labels:
                  .: {}
                  f:serving.knative.dev/configuration: {}
                  f:serving.knative.dev/configurationGeneration: {}
                  f:serving.knative.dev/service: {}
                f:ownerReferences:
                  .: {}
                  k:{"uid":"9d7692a2-a173-457c-8b36-553db58e604a"}:
                    .: {}
                    f:apiVersion: {}
                    f:blockOwnerDeletion: {}
                    f:controller: {}
                    f:kind: {}
                    f:name: {}
                    f:uid: {}
              f:spec:
                .: {}
                f:containerConcurrency: {}
                f:containers: {}
                f:timeoutSeconds: {}
              f:status:
                .: {}
                f:conditions: {}
                f:containerStatuses: {}
                f:imageDigest: {}
                f:logUrl: {}
                f:observedGeneration: {}
                f:serviceName: {}
            manager: controller
            operation: Update
            time: "2020-10-07T17:43:00Z"
          name: receiver-41-kqzc9
          namespace: myproject
          ownerReferences:
          - apiVersion: serving.knative.dev/v1
            blockOwnerDeletion: true
            controller: true
            kind: Configuration
            name: receiver-41
            uid: 9d7692a2-a173-457c-8b36-553db58e604a
          resourceVersion: "620170"
          selfLink: /apis/serving.knative.dev/v1/namespaces/myproject/revisions/receiver-41-kqzc9
          uid: 3c12b9aa-cbbb-4a5f-9dd5-845d55e4feae
        spec:
          containerConcurrency: 0
          containers:
          - env:
            - name: POD_NAME
              value: receiver-41
            - name: POD_NAMESPACE
              value: myproject
            image: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver
            imagePullPolicy: IfNotPresent
            name: user-container
            readinessProbe:
              successThreshold: 1
              tcpSocket:
                port: 0
            resources: {}
          timeoutSeconds: 300
        status:
          conditions:
          - lastTransitionTime: "2020-10-07T17:43:00Z"
            message: The target is not receiving traffic.
            reason: NoTraffic
            severity: Info
            status: "False"
            type: Active
          - lastTransitionTime: "2020-10-07T17:41:59Z"
            status: "True"
            type: ContainerHealthy
          - lastTransitionTime: "2020-10-07T17:41:59Z"
            status: "True"
            type: Ready
          - lastTransitionTime: "2020-10-07T17:41:59Z"
            status: "True"
            type: ResourcesAvailable
          containerStatuses:
          - imageDigest: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver@sha256:ee429c62d60dc1c521ea882a940cdcc675fbb853beb139862e66d05ba6e12455
            name: user-container
          imageDigest: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver@sha256:ee429c62d60dc1c521ea882a940cdcc675fbb853beb139862e66d05ba6e12455
          logUrl: http://localhost:8001/api/v1/namespaces/knative-monitoring/services/kibana-logging/proxy/app/kibana#/discover?_a=(query:(match:(kubernetes.labels.knative-dev%2FrevisionUID:(query:'3c12b9aa-cbbb-4a5f-9dd5-845d55e4feae',type:phrase))))
          observedGeneration: 1
          serviceName: receiver-41-kqzc9
      kind: List
      metadata:
        resourceVersion: ""
        selfLink: ""
      
      $ oc get configuration -o yaml
      apiVersion: v1
      items:
      - apiVersion: serving.knative.dev/v1
        kind: Configuration
        metadata:
          annotations:
            serving.knative.dev/creator: kube:admin
            serving.knative.dev/lastModifier: kube:admin
          creationTimestamp: "2020-10-07T17:41:51Z"
          generation: 1
          labels:
            serving.knative.dev/route: receiver-41
            serving.knative.dev/service: receiver-41
            serving.knative.dev/visibility: cluster-local
          managedFields:
          - apiVersion: serving.knative.dev/v1
            fieldsType: FieldsV1
            fieldsV1:
              f:metadata:
                f:annotations:
                  .: {}
                  f:serving.knative.dev/creator: {}
                  f:serving.knative.dev/lastModifier: {}
                f:labels:
                  .: {}
                  f:serving.knative.dev/route: {}
                  f:serving.knative.dev/service: {}
                  f:serving.knative.dev/visibility: {}
                f:ownerReferences:
                  .: {}
                  k:{"uid":"55a8be48-01c7-4679-885d-8d83969b6cd5"}:
                    .: {}
                    f:apiVersion: {}
                    f:blockOwnerDeletion: {}
                    f:controller: {}
                    f:kind: {}
                    f:name: {}
                    f:uid: {}
              f:spec:
                .: {}
                f:template:
                  .: {}
                  f:metadata:
                    .: {}
                    f:annotations:
                      .: {}
                      f:autoscaling.knative.dev/maxScale: {}
                      f:autoscaling.knative.dev/minScale: {}
                      f:autoscaling.knative.dev/targetBurstCapacity: {}
                    f:creationTimestamp: {}
                  f:spec:
                    .: {}
                    f:containerConcurrency: {}
                    f:containers: {}
                    f:timeoutSeconds: {}
              f:status:
                .: {}
                f:conditions: {}
                f:latestCreatedRevisionName: {}
                f:latestReadyRevisionName: {}
                f:observedGeneration: {}
            manager: controller
            operation: Update
            time: "2020-10-07T17:42:03Z"
          name: receiver-41
          namespace: myproject
          ownerReferences:
          - apiVersion: serving.knative.dev/v1
            blockOwnerDeletion: true
            controller: true
            kind: Service
            name: receiver-41
            uid: 55a8be48-01c7-4679-885d-8d83969b6cd5
          resourceVersion: "618842"
          selfLink: /apis/serving.knative.dev/v1/namespaces/myproject/configurations/receiver-41
          uid: 9d7692a2-a173-457c-8b36-553db58e604a
        spec:
          template:
            metadata:
              annotations:
                autoscaling.knative.dev/maxScale: "1"
                autoscaling.knative.dev/minScale: "1"
                autoscaling.knative.dev/targetBurstCapacity: "0"
              creationTimestamp: null
            spec:
              containerConcurrency: 0
              containers:
              - env:
                - name: POD_NAME
                  value: receiver-41
                - name: POD_NAMESPACE
                  value: myproject
                image: image-registry.openshift-image-registry.svc:5000/ocf-qe-images/receiver
                imagePullPolicy: IfNotPresent
                name: user-container
                readinessProbe:
                  successThreshold: 1
                  tcpSocket:
                    port: 0
                resources: {}
              timeoutSeconds: 300
        status:
          conditions:
          - lastTransitionTime: "2020-10-07T17:42:03Z"
            status: "True"
            type: Ready
          latestCreatedRevisionName: receiver-41-kkdnz
          latestReadyRevisionName: receiver-41-kkdnz
          observedGeneration: 1
      kind: List
      metadata:
        resourceVersion: ""
        selfLink: ""
      

              markusthoemmes Markus Thömmes (Inactive)
              maschmid@redhat.com Marek Schmidt
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: