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

LVMS: not clear DV error message when DV requested size is too small

XMLWordPrintable

    • Quality / Stability / Reliability
    • 3
    • False
    • Hide

      None

      Show
      None
    • False
    • CNV v4.19.0.rhel9-107
    • CNV Storage 269
    • None

      Description of problem:

      Created a DV with LVMS, asked 16Mi storage (which is too small), error message is not clear

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

      4.18

      How reproducible:

      Always

      Steps to Reproduce:

      1. Create a DV:
      
      apiVersion: cdi.kubevirt.io/v1beta1
      kind: DataVolume
      metadata:
        name: dv-lvms
        annotations:
          cdi.kubevirt.io/storage.bind.immediate.requested: 'true'
      spec:
        contentType: kubevirt
        source:
          registry:
            url: "docker://quay.io/openshift-cnv/qe-cnv-tests-fedora:40"
        storage:
          resources:
            requests:
              storage: 16Mi
          storageClassName: lvms-vg1
      
      
      2. DV import restarts
      
      $ oc get dv 
      NAME      PHASE              PROGRESS   RESTARTS   AGE
      dv-lvms   ImportInProgress   N/A        6          10m
      
      $ oc get pvc
      NAME                                                 STATUS    VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
      dv-lvms                                              Pending                                                                        lvms-vg1       <unset>                 11m
      prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84           Bound     pvc-9c75372d-503a-47d2-80a0-a6c5cd6abaf5   16Mi       RWO            lvms-vg1       <unset>                 11m
      prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84-scratch   Bound     pvc-848e5064-0c2a-4c0e-ab0b-b3f8958755a6   300Mi      RWO            lvms-vg1       <unset>                 11m
      
      $ oc get pv | grep default
      pvc-848e5064-0c2a-4c0e-ab0b-b3f8958755a6   300Mi      RWO            Delete           Bound      default/prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84-scratch        lvms-vg1       <unset>                          11m
      pvc-9c75372d-503a-47d2-80a0-a6c5cd6abaf5   16Mi       RWO            Delete           Bound      default/prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84                lvms-vg1       <unset>                          11m
      
      $ oc get pods
      NAME                                                  READY   STATUS             RESTARTS        AGE
      importer-prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84   0/1     CrashLoopBackOff   7 (2m22s ago)   13m 

      Actual results:

      $ oc get dv dv-lvms -oyaml
      ....
      status:
        claimName: dv-lvms
        conditions:
          ....
        - lastHeartbeatTime: "2025-02-20T14:04:35Z"
          lastTransitionTime: "2025-02-20T14:04:35Z"
          message: 'Unable to process data: Unable to transfer source data to scratch space:
            Failed to read registry image: Failed to find VM disk image file in the container
            image'
          reason: Error
          status: "False"
          type: Running
        phase: ImportInProgress
        progress: N/A
        restartCount: 7
      

      Expected results:

      message: "DataVolume too small to contain image"

      Additional info:

      Importer pod log:
      
      $ oc logs importer-prime-057f3425-dcc1-48a2-8211-a5a5eaef1c84
      I0220 14:04:30.829059       1 importer.go:107] Starting importer
      I0220 14:04:30.830894       1 importer.go:182] begin import process
      I0220 14:04:30.831273       1 registry-datasource.go:190] Copying proxy certs
      I0220 14:04:30.831292       1 registry-datasource.go:61] Error creating allCertDir open /proxycerts/: no such file or directory
      I0220 14:04:30.831343       1 data-processor.go:348] Calculating available size
      I0220 14:04:30.835805       1 data-processor.go:356] Checking out block volume size.
      I0220 14:04:30.835825       1 data-processor.go:373] Target size 16777216.
      I0220 14:04:30.835835       1 data-processor.go:247] New phase: TransferScratch
      I0220 14:04:30.835939       1 registry-datasource.go:100] Copying registry image to scratch space.
      I0220 14:04:30.835946       1 transport.go:193] Downloading image from 'docker://quay.io/openshift-cnv/qe-cnv-tests-fedora:40', copying file from 'disk' to '/scratch'
      I0220 14:04:31.081075       1 transport.go:217] Processing layer {Digest:sha256:ea5da6c1e8152fe3c6b305548ae3fcd708afd849a25553fc3b5f81c720aeaccf Size:1153637576 URLs:[] Annotations:map[] MediaType:application/vnd.oci.image.layer.v1.tar+gzip CompressionOperation:0 CompressionAlgorithm:<nil> CryptoOperation:0}
      I0220 14:04:31.388090       1 transport.go:152] File 'disk/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2' found in the layer
      I0220 14:04:31.388257       1 util.go:96] Writing data...
      E0220 14:04:33.970206       1 util.go:98] Unable to write file from dataReader: write /scratch/disk/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2: no space left on device
      E0220 14:04:33.986159       1 transport.go:165] Error copying file: unable to write to file: write /scratch/disk/Fedora-Cloud-Base-Generic.x86_64-40-1.14.qcow2: no space left on device
      E0220 14:04:33.986279       1 transport.go:231] Failed to find VM disk image file in the container image
      E0220 14:04:33.986513       1 data-processor.go:243] Failed to find VM disk image file in the container image
      kubevirt.io/containerized-data-importer/pkg/importer.copyRegistryImage
          /remote-source/app/pkg/importer/transport.go:232
      kubevirt.io/containerized-data-importer/pkg/importer.CopyRegistryImage
          /remote-source/app/pkg/importer/transport.go:284
      kubevirt.io/containerized-data-importer/pkg/importer.(*RegistryDataSource).Transfer
          /remote-source/app/pkg/importer/registry-datasource.go:101
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:173
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      Failed to read registry image
      kubevirt.io/containerized-data-importer/pkg/importer.(*RegistryDataSource).Transfer
          /remote-source/app/pkg/importer/registry-datasource.go:103
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:173
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      Unable to transfer source data to scratch space
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:178
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      E0220 14:04:33.986620       1 importer.go:192] Failed to find VM disk image file in the container image
      kubevirt.io/containerized-data-importer/pkg/importer.copyRegistryImage
          /remote-source/app/pkg/importer/transport.go:232
      kubevirt.io/containerized-data-importer/pkg/importer.CopyRegistryImage
          /remote-source/app/pkg/importer/transport.go:284
      kubevirt.io/containerized-data-importer/pkg/importer.(*RegistryDataSource).Transfer
          /remote-source/app/pkg/importer/registry-datasource.go:101
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:173
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      Failed to read registry image
      kubevirt.io/containerized-data-importer/pkg/importer.(*RegistryDataSource).Transfer
          /remote-source/app/pkg/importer/registry-datasource.go:103
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:173
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      Unable to transfer source data to scratch space
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).initDefaultPhases.func2
          /remote-source/app/pkg/importer/data-processor.go:178
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
          /remote-source/app/pkg/importer/data-processor.go:240
      kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
          /remote-source/app/pkg/importer/data-processor.go:149
      main.handleImport
          /remote-source/app/cmd/cdi-importer/importer.go:188
      main.main
          /remote-source/app/cmd/cdi-importer/importer.go:148
      runtime.main
          /usr/lib/golang/src/runtime/proc.go:271
      runtime.goexit
          /usr/lib/golang/src/runtime/asm_amd64.s:1695
      

              rh-ee-aaloni Adi Aloni
              jpeimer@redhat.com Jenia Peimer
              Jenia Peimer Jenia Peimer
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: