Bug 1913756

Summary: Migrating to Ceph-RBD + Block fails when skipping zeroes
Product: Container Native Virtualization (CNV) Reporter: Fabien Dupont <fdupont>
Component: V2VAssignee: Matthew Arnold <marnold>
Status: CLOSED ERRATA QA Contact: Daniel Gur <dagur>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 2.6.0CC: alitke, amastbau, cnv-qe-bugs, dagur, marnold, mrashish, oramraz, rjones
Target Milestone: ---Keywords: Regression
Target Release: 2.6.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-cdi-importer v2.6.0-19 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-03-10 11:22:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1904797, 1916333    
Attachments:
Description Flags
Log of failed pod none

Description Fabien Dupont 2021-01-07 14:13:00 UTC
Description of problem:
When migrating a VM to Ceph-RBD storage class with Block volume mode, it fails with the following error message:

I0107 13:59:28.976462       1 vddk-datasource.go:569] Found a hole, filling destination with zeroes.
I0107 13:59:28.976494       1 vddk-datasource.go:572] Found a zero block, filling destination with zeroes.
E0107 13:59:28.976503       1 vddk-datasource.go:639] Unable to ftruncate file: invalid argument
E0107 13:59:28.976515       1 vddk-datasource.go:929] Unable to copy block at offset 159383552: invalid argument
E0107 13:59:35.256748       1 data-processor.go:234] invalid argument
Unable to transfer source data to target file
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	/remote-source/app/pkg/importer/data-processor.go:206
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	/remote-source/app/pkg/importer/data-processor.go:166
main.main
	/remote-source/app/cmd/cdi-importer/importer.go:176
runtime.main
	/usr/lib/golang/src/runtime/proc.go:203
runtime.goexit
	/usr/lib/golang/src/runtime/asm_amd64.s:1373
E0107 13:59:35.256897       1 importer.go:178] invalid argument
Unable to transfer source data to target file
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessDataWithPause
	/remote-source/app/pkg/importer/data-processor.go:206
kubevirt.io/containerized-data-importer/pkg/importer.(*DataProcessor).ProcessData
	/remote-source/app/pkg/importer/data-processor.go:166
main.main
	/remote-source/app/cmd/cdi-importer/importer.go:176
runtime.main
	/usr/lib/golang/src/runtime/proc.go:203
runtime.goexit
	/usr/lib/golang/src/runtime/asm_amd64.s:1373

It seems that the new implementation based on libnbd, is trying to ftruncate on the block device, which shouldn't work as the file size is immutable.

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Fabien Dupont 2021-01-07 14:16:00 UTC
Created attachment 1745313 [details]
Log of failed pod

Comment 2 Adam Litke 2021-01-11 19:42:59 UTC
Matthew, have you found a way to resolve this?  We've missed the cutoff for 2.6 and I'm trying to figure out if a fix would be feasible for 2.6.1 (merged within a week or two) or if we would be better off targeting 2.7.

Comment 3 Matthew Arnold 2021-01-12 05:44:56 UTC
Yes, I think this will be fixable within the week.

Comment 4 Adam Litke 2021-01-12 14:43:21 UTC
Fabien: I just retargeted this bug to 2.6.1 but I am wondering if we should move it to the v2v component since it would be your QE that is verifying the bug.  What do you think?

Comment 5 Fabien Dupont 2021-01-12 19:29:22 UTC
Since we're still in blockers only phase, I guess this one can be left in 2.6.0, as long as a QE team accepts to validate it. What do you think?

Comment 6 Adam Litke 2021-01-12 19:55:35 UTC
Sure, sounds good.  Let's get a PR merged to the main CDI branch and then we can entertain a backport to the stable branch once this bug has a QA ack.

Comment 7 Fabien Dupont 2021-01-13 07:03:41 UTC
Here is the PR: https://github.com/kubevirt/containerized-data-importer/pull/1564

Comment 10 errata-xmlrpc 2021-03-10 11:22:46 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: OpenShift Virtualization 2.6.0 security and bug fix update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2021:0799