-
Bug
-
Resolution: Done-Errata
-
Critical
-
CNV v4.15.0
-
None
-
8
-
False
-
-
False
-
None
-
---
-
---
-
-
Storage Core Sprint 262
-
None
Description of problem:
This pull request fixes the logic error pointed out in #3054, where the VDDK importer tries to merge smaller blocks into one big one, when mapping out the NBD status flags (basically zero, hole, or data) from the source disk. This code was incorrectly neglecting to add the length of the current block to the length of the previous block, so the combined result had the wrong length. This pull request also avoids a potential integer overflow by changing the type of the struct field that receives this block length from a uint32 to an int64. It further changes the offset field in the same struct from a uint64 to an int64, to avoid a bunch of haphazard integer conversions. There are a few new conversions, but the net result is a bit more confidence-inspiring. This pull request also adds unit tests for GetBlockStatus, and fixes and alignment issue in the multi-stage VDDK documentation that tripped me up when trying to remember how to test this stuff. Issue and fix in https://github.com/kubevirt/containerized-data-importer/pull/3242
Version-Release number of selected component (if applicable):
4.15
How reproducible:
Steps to Reproduce:
1. 2. 3.
Actual results:
Expected results:
Additional info:
- is depended on by
-
MTV-1629 TestOnly: VMware warm migration stuck: "No new block status data at offset 6806175744"
- Verified
- is related to
-
MTV-1630 Test case for 2GB of changes in one delta copy
- Closed
- links to
-
RHEA-2024:138842 OpenShift Virtualization 4.15.7 Images