Bug 1740774

Summary: Pad memory volumes to 4096 bytes to support 4K storage
Product: [oVirt] vdsm Reporter: Pavel Bar <pbar>
Component: CoreAssignee: Pavel Bar <pbar>
Status: CLOSED CURRENTRELEASE QA Contact: Evelina Shames <eshames>
Severity: high Docs Contact:
Priority: high    
Version: 4.30.0CC: aefrat, bugs, frolland, lleistne, nsoffer, pelauter
Target Milestone: ovirt-4.3.6Keywords: ZStream
Target Release: 4.30.29Flags: sbonazzo: ovirt-4.3?
pelauter: planning_ack+
frolland: devel_ack+
aefrat: testing_ack+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: vdsm-4.30.29 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-09-26 19:43:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Storage RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pavel Bar 2019-08-13 15:31:41 UTC
Pad memory volumes to 4096 bytes to support 4K storage.
This was fixed only partly in 4.3.

Comment 1 Nir Soffer 2019-08-13 19:03:08 UTC
Raising priority and severity since this can cause failures when cloning
vms with memory volumes.

Comment 2 Nir Soffer 2019-08-13 19:04:14 UTC
Fred, anything missing in this bug for including in 4.3.6?

Comment 3 Fred Rolland 2019-08-14 10:35:06 UTC
I see you already targeted it.

The description of the bug is very vague.
Missing: what is the scenario/flow, what is the failure, user impact, reproducible, which storage (only 4k?)

QE should be able to verify this.

Comment 4 Nir Soffer 2019-08-14 17:14:52 UTC
Without this change, qemu may segfault when copying memory volumes
(e.g bug 1649788).

This issue may have been fixed in qemu, but in vdsm we should not
create images which are not aligned.

In the past we aligned images to 512 bytes, but when using storage
with sector size of 4096 bytes, images should be aligned to 4096 bytes.

This affects only NFS storage since other types of file storage uses
fileutils.padToBlockSize() which is already fixed in 4.3.6 (or before).

I don't know if it is possible to reproduce this qemu segfault, it
depends on qemu version and the contents of the memory volume.

To verify the fix, you can check the size of a memory volume created
when taking a snapshot with memory. The size must be a multiple of 4096.

Comment 5 Avihai 2019-08-25 06:19:13 UTC
Hi Pavel,

Please provide a clear reproduction/verification scenario so we can QA_ACK this bug.

Comment 6 Avihai 2019-08-25 14:37:33 UTC
verification scenario is:

1) Create a snapshot with memory thus creating a memory volume 
2) Check the memory volume size(in Bytes) is a multiple of 4096.

Comment 7 Evelina Shames 2019-09-02 05:32:27 UTC
Verified on:
vdsm-4.30.29-1.el7ev.x86_64
ovirt-engine-4.3.6.4-0.1.el7.noarch

Comment 8 Sandro Bonazzola 2019-09-26 19:43:10 UTC
This bugzilla is included in oVirt 4.3.6 release, published on September 26th 2019.

Since the problem described in this bug report should be
resolved in oVirt 4.3.6 release, it has been closed with a resolution of CURRENT RELEASE.

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