-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
CNV v4.20.3
-
None
-
Quality / Stability / Reliability
-
0.42
-
False
-
-
False
-
None
-
-
Moderate
-
None
Description of problem:
Moving a VM across OpenShift clusters fails if the PVC name is long (>64 chargs). The VMExport on the source does not expose the links of PVCs with long names. This can make it fails to export disks with very long names and/or that have been restored from snapshot, like restore-xyz ones which are usually long.
Version-Release number of selected component (if applicable):
4.20.3
How reproducible:
Always
Steps to Reproduce:
1. Create these 5 PVCs, with names from 62 to 66 chars in length.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: this-string-has-62-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx namespace: default spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-ssd volumeMode: Block --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: this-string-has-63-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx namespace: default spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-ssd volumeMode: Block --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: this-string-has-64-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx namespace: default spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-ssd volumeMode: Block --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: this-string-has-65-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx namespace: default spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-ssd volumeMode: Block --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: this-string-has-66-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx namespace: default spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: lvms-ssd volumeMode: Block
2. Attach them to a VM
3. Create a VM Export
Actual results:
Only the PVCs with names up to 64 chars are exported. 65 and 66 are missing. # oc get vmexport rhel9-export -o yaml | yq '.status.links.external.volumes[].name' this-string-has-62-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx this-string-has-63-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx this-string-has-64-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Expected results:
All 5 PVCs linked.
Additional info:
Its just the linking on the VMExport that fails. The Pod is ready and exporting them.
Its failing here:
https://github.com/kubevirt/kubevirt/blob/dd7fcccabbe3b19c68616a950ab43c6b573d9248/pkg/storage/export/export/export.go#L262
Controller logs:
{"component":"virt-controller","level":"warning","msg":"Volume this-string-has-65-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx not found in paths","pos":"links.go:108","timestamp":"2026-01-30T00:59:30.777231Z"}
{"component":"virt-controller","level":"warning","msg":"Volume this-string-has-66-characters-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx not found in paths","pos":"links.go:108","timestamp":"2026-01-30T00:59:30.777241Z"}