Uploaded image for project: 'OpenShift Virtualization'
  1. OpenShift Virtualization
  2. CNV-40009

Failure cleaning up temporary scratch space: openfdat /scratch/lost+found: permission denied

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Normal Normal
    • CNV v4.13.10
    • CNV v4.13.5
    • Storage Platform
    • None
    • Incidents & Support
    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • CNV v4.13.9.rhel9-58, CNV v4.12.11-19
    • Storage Core Sprint 252, Storage Core Sprint 258, Storage Core Sprint 259
    • Important
    • No

      Description of problem:

      Importing a VM from RHV using MTV fails with these kind of errors:
      
            error:
              phase: CopyDisks
              reasons:
              - 'Unable to process data: Failure cleaning up temporary scratch space: openfdat
                /scratch/lost+found: permission denied'
      
      
      The importer pod uses a scratch PVC in Filesystem mode.

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

      OCP 4.13.17
      Openshift Virtualization 4.13.5
      MTV 2.5.5
      Containerized Data Importer v1.56.1-12-g16ff45d2

      How reproducible:

      Reproduced only in customer environment.

      Steps to Reproduce:

      1. StorageClass and StorageProfile:
      
      --- apiVersion: cdi.kubevirt.io/v1beta1
      kind: StorageProfile
      metadata:
        creationTimestamp: "2024-04-03T10:42:24Z"
        generation: 3
        labels:
          app: containerized-data-importer
          app.kubernetes.io/component: storage
          app.kubernetes.io/managed-by: cdi-controller
          app.kubernetes.io/part-of: hyperconverged-cluster
          app.kubernetes.io/version: 4.13.5
          cdi.kubevirt.io: ""
        name: k8s-wok-iscsi-noreplica-halma
        ownerReferences:
        - apiVersion: cdi.kubevirt.io/v1beta1
          blockOwnerDeletion: true
          controller: true
          kind: CDI
          name: cdi-kubevirt-hyperconverged
          uid: e5578e77-68c0-4973-a87d-4c79d65d15fa
        resourceVersion: "209194592"
        uid: 4d2babc7-a762-4f58-a16c-1d57b6abbe7a
      spec:
        claimPropertySets:
        - accessModes:
          - ReadWriteMany
          volumeMode: Block
      status:
        claimPropertySets:
        - accessModes:
          - ReadWriteMany
          volumeMode: Block
        provisioner: csi.huawei.com
        storageClass: k8s-wok-iscsi-noreplica-halma
      
       2. PVC created for the importer scratch space is in filesystem mode:  oc describe pvc -n if-nvxsw mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
      Name:          mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
      Namespace:     if-nvxsw
      StorageClass:  k8s-wok-iscsi-noreplica-halma
      Status:        Bound
      Volume:        pvc-e0999a4d-8031-4bef-be05-908b659ae89c
      Labels:        app=containerized-data-importer
                     app.kubernetes.io/component=storage
                     app.kubernetes.io/managed-by=cdi-controller
                     app.kubernetes.io/part-of=hyperconverged-cluster
                     app.kubernetes.io/version=4.13.5
      Annotations:   pv.kubernetes.io/bind-completed: yes
                     pv.kubernetes.io/bound-by-controller: yes
                     volume.beta.kubernetes.io/storage-provisioner: csi.huawei.com
                     volume.kubernetes.io/storage-provisioner: csi.huawei.com
      Finalizers:    [kubernetes.io/pvc-protection]
      Capacity:      30Gi
      Access Modes:  RWO
      VolumeMode:    Filesystem
      Used By:       importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-10815197-bd5e-405f-b156-ea906b799596
                     importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
      Events:        <none> oc get pvc -n if-nvxsw mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch -o yaml
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        annotations:
          pv.kubernetes.io/bind-completed: "yes"
          pv.kubernetes.io/bound-by-controller: "yes"
          volume.beta.kubernetes.io/storage-provisioner: csi.huawei.com
          volume.kubernetes.io/storage-provisioner: csi.huawei.com
        creationTimestamp: "2024-04-05T09:12:32Z"
        finalizers:
        - kubernetes.io/pvc-protection
        labels:
          app: containerized-data-importer
          app.kubernetes.io/component: storage
          app.kubernetes.io/managed-by: cdi-controller
          app.kubernetes.io/part-of: hyperconverged-cluster
          app.kubernetes.io/version: 4.13.5
        name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
        namespace: if-nvxsw
        ownerReferences:
        - apiVersion: v1
          blockOwnerDeletion: true
          controller: true
          kind: Pod
          name: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
          uid: 6fa4278b-80a8-4fa6-9c4c-ff0f7821b71f
        resourceVersion: "210382846"
        uid: e0999a4d-8031-4bef-be05-908b659ae89c
      spec:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: "32212254720"
        storageClassName: k8s-wok-iscsi-noreplica-halma
        volumeMode: Filesystem
        volumeName: pvc-e0999a4d-8031-4bef-be05-908b659ae89c
      status:
        accessModes:
        - ReadWriteOnce
        capacity:
          storage: 30Gi
        phase: Bound  
      
      - State of the importer POD oc describe pod -n if-nvxsw importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
      Name:             importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
      Namespace:        if-nvxsw
      Priority:         0
      Service Account:  default
      Node:             skslc-k8s-wok-105.prod-01.k8s.lan/10.160.1.105
      Start Time:       Fri, 05 Apr 2024 11:12:33 +0200
      Labels:           app=containerized-data-importer
                        app.kubernetes.io/component=storage
                        app.kubernetes.io/managed-by=cdi-controller
                        app.kubernetes.io/part-of=hyperconverged-cluster
                        app.kubernetes.io/version=4.13.5
                        cdi.kubevirt.io=importer
                        prometheus.cdi.kubevirt.io=true
      Annotations:      cdi.kubevirt.io/storage.createdByController: yes
                        k8s.ovn.org/pod-networks:
                          {"default":{"ip_addresses":["172.16.24.59/23"],"mac_address":"0a:58:ac:10:18:3b","gateway_ips":["172.16.24.1"],"ip_address":"172.16.24.59/...
                        k8s.v1.cni.cncf.io/network-status:
                          [{
                              "name": "ovn-kubernetes",
                              "interface": "eth0",
                              "ips": [
                                  "172.16.24.59"
                              ],
                              "mac": "0a:58:ac:10:18:3b",
                              "default": true,
                              "dns": {}
                          }]
                        openshift.io/scc: privileged
                        seccomp.security.alpha.kubernetes.io/pod: runtime/default
                        sidecar.istio.io/inject: false
      Status:           Succeeded
      IP:               172.16.24.59
      IPs:
        IP:           172.16.24.59
      Controlled By:  PersistentVolumeClaim/mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
      Containers:
        importer:
          Container ID:  cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
          Image:         registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
          Image ID:      registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:64fa194703392dd4048a9f508f7872e04864000b8728773504a09661a14684cb
          Port:          8443/TCP
          Host Port:     0/TCP
          Args:
            -v=1
          State:          Terminated
            Reason:       Completed
            Message:      Import Complete
            Exit Code:    0
            Started:      Fri, 05 Apr 2024 11:12:46 +0200
            Finished:     Fri, 05 Apr 2024 11:15:38 +0200
          Ready:          False
          Restart Count:  0
          Limits:
            cpu:     750m
            memory:  600M
          Requests:
            cpu:     100m
            memory:  60M
          Environment:
            IMPORTER_SOURCE:               imageio
            IMPORTER_ENDPOINT:             https://rhev-hq.afbag.com/ovirt-engine/api
            IMPORTER_CONTENTTYPE:          kubevirt
            IMPORTER_IMAGE_SIZE:           32212254720
            OWNER_UID:                     b45118e9-3419-4c55-829c-7899cb0e27ca
            FILESYSTEM_OVERHEAD:           0
            INSECURE_TLS:                  false
            IMPORTER_DISK_ID:              232d53f3-6814-40ab-a60b-e57e156978e4
            IMPORTER_UUID:
            IMPORTER_READY_FILE:
            IMPORTER_DONE_FILE:
            IMPORTER_BACKING_FILE:
            IMPORTER_THUMBPRINT:
            http_proxy:
            https_proxy:
            no_proxy:
            IMPORTER_CURRENT_CHECKPOINT:   63073548-416d-4ed5-b54c-55f5a81c5b26
            IMPORTER_PREVIOUS_CHECKPOINT:
            IMPORTER_FINAL_CHECKPOINT:     false
            PREALLOCATION:                 false
            IMPORTER_ACCESS_KEY_ID:        <set to the key 'accessKeyId' in secret 'mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn'>  Optional: false
            IMPORTER_SECRET_KEY:           <set to the key 'secretKey' in secret 'mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn'>    Optional: false
            IMPORTER_CERT_DIR:             /certs
            IMPORTER_PROXY_CERT_DIR:       /proxycerts/
          Mounts:
            /certs from cdi-cert-vol (rw)
            /proxycerts/ from cdi-proxy-cert-vol (rw)
            /scratch from cdi-scratch-vol (rw)
            /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-w7wr8 (ro)
          Devices:
            /dev/cdi-block-volume from cdi-data-vol
      Conditions:
        Type              Status
        Initialized       True
        Ready             False
        ContainersReady   False
        PodScheduled      True
      Volumes:
        cdi-data-vol:
          Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
          ClaimName:  mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
          ReadOnly:   false
        cdi-scratch-vol:
          Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
          ClaimName:  mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
          ReadOnly:   false
        cdi-cert-vol:
          Type:      ConfigMap (a volume populated by a ConfigMap)
          Name:      mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-p959s
          Optional:  false
        cdi-proxy-cert-vol:
          Type:      ConfigMap (a volume populated by a ConfigMap)
          Name:      import-proxy-cm-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
          Optional:  false
        kube-api-access-w7wr8:
          Type:                    Projected (a volume that contains injected data from multiple sources)
          TokenExpirationSeconds:  3607
          ConfigMapName:           kube-root-ca.crt
          ConfigMapOptional:       <nil>
          DownwardAPI:             true
          ConfigMapName:           openshift-service-ca.crt
          ConfigMapOptional:       <nil>
      QoS Class:                   Burstable
      Node-Selectors:              <none>
      Tolerations:                 node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                                   node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                                   node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
      Events:                      <none>
      oc get pod -n if-nvxsw importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26 -o yaml
      apiVersion: v1
      kind: Pod
      metadata:
        annotations:
          cdi.kubevirt.io/storage.createdByController: "yes"
          k8s.ovn.org/pod-networks: '{"default":{"ip_addresses":["172.16.24.59/23"],"mac_address":"0a:58:ac:10:18:3b","gateway_ips":["172.16.24.1"],"ip_address":"172.16.24.59/23","gateway_ip":"172.16.24.1"}}'
          k8s.v1.cni.cncf.io/network-status: |-
            [{
                "name": "ovn-kubernetes",
                "interface": "eth0",
                "ips": [
                    "172.16.24.59"
                ],
                "mac": "0a:58:ac:10:18:3b",
                "default": true,
                "dns": {}
            }]
          openshift.io/scc: privileged
          seccomp.security.alpha.kubernetes.io/pod: runtime/default
          sidecar.istio.io/inject: "false"
        creationTimestamp: "2024-04-05T09:12:32Z"
        labels:
          app: containerized-data-importer
          app.kubernetes.io/component: storage
          app.kubernetes.io/managed-by: cdi-controller
          app.kubernetes.io/part-of: hyperconverged-cluster
          app.kubernetes.io/version: 4.13.5
          cdi.kubevirt.io: importer
          prometheus.cdi.kubevirt.io: "true"
        name: importer-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-checkpoint-63073548-416d-4ed5-b54c-55f5a81c5b26
        namespace: if-nvxsw
        ownerReferences:
        - apiVersion: v1
          blockOwnerDeletion: true
          controller: true
          kind: PersistentVolumeClaim
          name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
          uid: 5b80a799-60e1-4029-a149-e5e8a98fea14
        resourceVersion: "210386401"
        uid: 6fa4278b-80a8-4fa6-9c4c-ff0f7821b71f
      spec:
        containers:
        - args:
          - -v=1
          env:
          - name: IMPORTER_SOURCE
            value: imageio
          - name: IMPORTER_ENDPOINT
            value: https://rhev-hq.afbag.com/ovirt-engine/api
          - name: IMPORTER_CONTENTTYPE
            value: kubevirt
          - name: IMPORTER_IMAGE_SIZE
            value: "32212254720"
          - name: OWNER_UID
            value: b45118e9-3419-4c55-829c-7899cb0e27ca
          - name: FILESYSTEM_OVERHEAD
            value: "0"
          - name: INSECURE_TLS
            value: "false"
          - name: IMPORTER_DISK_ID
            value: 232d53f3-6814-40ab-a60b-e57e156978e4
          - name: IMPORTER_UUID
          - name: IMPORTER_READY_FILE
          - name: IMPORTER_DONE_FILE
          - name: IMPORTER_BACKING_FILE
          - name: IMPORTER_THUMBPRINT
          - name: http_proxy
          - name: https_proxy
          - name: no_proxy
          - name: IMPORTER_CURRENT_CHECKPOINT
            value: 63073548-416d-4ed5-b54c-55f5a81c5b26
          - name: IMPORTER_PREVIOUS_CHECKPOINT
          - name: IMPORTER_FINAL_CHECKPOINT
            value: "false"
          - name: PREALLOCATION
            value: "false"
          - name: IMPORTER_ACCESS_KEY_ID
            valueFrom:
              secretKeyRef:
                key: accessKeyId
                name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn
          - name: IMPORTER_SECRET_KEY
            valueFrom:
              secretKeyRef:
                key: secretKey
                name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-xxqqn
          - name: IMPORTER_CERT_DIR
            value: /certs
          - name: IMPORTER_PROXY_CERT_DIR
            value: /proxycerts/
          image: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
          imagePullPolicy: IfNotPresent
          name: importer
          ports:
          - containerPort: 8443
            name: metrics
            protocol: TCP
          resources:
            limits:
              cpu: 750m
              memory: 600M
            requests:
              cpu: 100m
              memory: 60M
          securityContext:
            allowPrivilegeEscalation: false
            capabilities:
              drop:
              - ALL
            runAsNonRoot: true
            runAsUser: 107
            seccompProfile:
              type: RuntimeDefault
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          volumeDevices:
          - devicePath: /dev/cdi-block-volume
            name: cdi-data-vol
          volumeMounts:
          - mountPath: /scratch
            name: cdi-scratch-vol
          - mountPath: /certs
            name: cdi-cert-vol
          - mountPath: /proxycerts/
            name: cdi-proxy-cert-vol
          - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
            name: kube-api-access-w7wr8
            readOnly: true
        dnsPolicy: ClusterFirst
        enableServiceLinks: true
        imagePullSecrets:
        - name: default-dockercfg-mcrnh
        nodeName: skslc-k8s-wok-105.prod-01.k8s.lan
        preemptionPolicy: PreemptLowerPriority
        priority: 0
        restartPolicy: OnFailure
        schedulerName: default-scheduler
        securityContext:
          fsGroup: 107
          seLinuxOptions:
            level: s0:c30,c25
          seccompProfile:
            type: RuntimeDefault
          supplementalGroups:
          - 1000920000
        serviceAccount: default
        serviceAccountName: default
        terminationGracePeriodSeconds: 30
        tolerations:
        - effect: NoExecute
          key: node.kubernetes.io/not-ready
          operator: Exists
          tolerationSeconds: 300
        - effect: NoExecute
          key: node.kubernetes.io/unreachable
          operator: Exists
          tolerationSeconds: 300
        - effect: NoSchedule
          key: node.kubernetes.io/memory-pressure
          operator: Exists
        volumes:
        - name: cdi-data-vol
          persistentVolumeClaim:
            claimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
        - name: cdi-scratch-vol
          persistentVolumeClaim:
            claimName: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh-scratch
        - configMap:
            defaultMode: 420
            name: mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-p959s
          name: cdi-cert-vol
        - configMap:
            defaultMode: 420
            name: import-proxy-cm-mbu-test-20240404-5b3e93a7-d079-4424-ba69-a405492e5405-txwvh
          name: cdi-proxy-cert-vol
        - name: kube-api-access-w7wr8
          projected:
            defaultMode: 420
            sources:
            - serviceAccountToken:
                expirationSeconds: 3607
                path: token
            - configMap:
                items:
                - key: ca.crt
                  path: ca.crt
                name: kube-root-ca.crt
            - downwardAPI:
                items:
                - fieldRef:
                    apiVersion: v1
                    fieldPath: metadata.namespace
                  path: namespace
            - configMap:
                items:
                - key: service-ca.crt
                  path: service-ca.crt
                name: openshift-service-ca.crt
      status:
        conditions:
        - lastProbeTime: null
          lastTransitionTime: "2024-04-05T09:12:33Z"
          reason: PodCompleted
          status: "True"
          type: Initialized
        - lastProbeTime: null
          lastTransitionTime: "2024-04-05T09:15:38Z"
          reason: PodCompleted
          status: "False"
          type: Ready
        - lastProbeTime: null
          lastTransitionTime: "2024-04-05T09:15:38Z"
          reason: PodCompleted
          status: "False"
          type: ContainersReady
        - lastProbeTime: null
          lastTransitionTime: "2024-04-05T09:12:33Z"
          status: "True"
          type: PodScheduled
        containerStatuses:
        - containerID: cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
          image: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:eb66bfabd67d153e1e5a9537b1fe9a94f8e7fc101ec10f86d70a76c0324da082
          imageID: registry.redhat.io/container-native-virtualization/virt-cdi-importer-rhel9@sha256:64fa194703392dd4048a9f508f7872e04864000b8728773504a09661a14684cb
          lastState: {}
          name: importer
          ready: false
          restartCount: 0
          started: false
          state:
            terminated:
              containerID: cri-o://f6d0579083646adba350c0ae7eef0121a99fd94947c6d2ad09be16bdc723107b
              exitCode: 0
              finishedAt: "2024-04-05T09:15:38Z"
              message: Import Complete
              reason: Completed
              startedAt: "2024-04-05T09:12:46Z"
        hostIP: 10.160.1.105
        phase: Succeeded
        podIP: 172.16.24.59
        podIPs:
        - ip: 172.16.24.59
        qosClass: Burstable
        startTime: "2024-04-05T09:12:33Z"
       

      Actual results:

      The import of the VM fails.

      Expected results:

      No error importing the disk.

      Additional info:

      I see this issue addressed by this PR:
      
      https://github.com/kubevirt/containerized-data-importer/pull/2676
      
      But I guess the fix is not included in 4.13. Can it be backported?

              rh-ee-egomez Edu Gómez Escandell (Inactive)
              rhn-support-jortialc Juan Orti
              Kevin Alon Goldblatt Kevin Alon Goldblatt
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Created:
                Updated:
                Resolved: