Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Previously, VDO volumes were unable to grow if the underlying block device increased in size while the system was powered off or the VDO volume was offline. With this update, VDO correctly checks the requested size and the current size of the device, and, as a result, the described problem no longer occurs.
Description of problem:
When growing physical size ('vdo growPhysical') without growing the storage under at all (new_size == old_size), kvdo does not stop the process at 'preparing to grow' but after suspending the volume. This is pointless action as there is no growing happening.
Version-Release number of selected component (if applicable):
vdo-6.1.0.149-16
How reproducible:
100%
Steps to Reproduce:
1. vdo create --name vdo --device device
2. vdo growPhysical --name vdo
Actual results:
# vdo growPhysical --name vdo
vdo: ERROR - Cannot grow physical on VDO vdo; device-mapper: message ioctl on vdo failed: Invalid argument
vdo: ERROR - device-mapper: message ioctl on vdo failed: Invalid argument
/var/log/messages:
[22275.407669] kvdo1:dmsetup: Preparing to resize physical to 13892608
[22275.438719] kvdo1:dmsetup: Done preparing to resize physical
[22275.470112] kvdo1:dmsetup: suspending device 'vdo'
[22275.560291] kvdo1:dmsetup: device 'vdo' suspended
[22275.586285] kvdo1:dmsetup: Requested physical block count 13892608 not greater than 13892608
[22275.629681] kvdo1:dmsetup: resuming device 'vdo'
[22275.651300] kvdo1:dmsetup: device 'vdo' resumed
Expected results:
# vdo growPhysical --name vdo
vdo: ERROR - Cannot grow physical on VDO vdo; device-mapper: message ioctl on vdo failed: Invalid argument
vdo: ERROR - device-mapper: message ioctl on vdo failed: Invalid argument
/var/log/messages:
[22275.407669] kvdo1:dmsetup: Preparing to resize physical to 13892608
[22275.586285] kvdo1:dmsetup: Requested physical block count 13892608 not greater than 13892608
Additional info:
note: this BZ does not aim at exposing the message to user
Tested on:
RHEL-7.6-20180626.0
kernel-3.10.0-915.el7
kmod-vdo-6.1.1.99-1.el7
vdo-6.1.1.99-2.el7
# vdo create --name vdo --device /dev/sdb
Creating VDO vdo
Starting VDO vdo
Starting compression on VDO vdo
VDO instance 1 volume is ready at /dev/mapper/vdo
# vdo growPhysical --name vdo --verbose
dmsetup status vdo
dmsetup message vdo 0 prepareToGrowPhysical
vdo: ERROR - Cannot prepare to grow physical on VDO vdo; device-mapper: message ioctl on vdo failed: Invalid argument
vdo: ERROR - device-mapper: message ioctl on vdo failed: Invalid argument
/var/log/messages:
[ 8230.503025] kvdo1:dmsetup: Preparing to resize physical to 536874240
So now VDO stops the operation right at the beginning at 'preparing to resize physical', which is correct. But now user has no indication what went wrong, just failed ioctl with 'Invalid argument'. The message in /var/log/messages' is gone.
Is it possible to be a bit more verbose and provide a reason why the operation failed?
This the reason why BZ 1597886 was logged. (It is a separate BZ because we weren't sure if we would want to z-stream what's basically logging change.)
The fix I have implemented is to restore the log message
"Requested physical block count <X> not greater than <X>". Does that fix seem sufficient?
Alos, could I get some clarity as to whether this change should be made as part of this BZ, of as part of BZ 1597886, or both? I would like to get this fixed, but I a bit unclear on the proper bookkeeping involved.
I think it does not matter much in this case, as the regression is not functional but design/doc. Usually it should be fixed under the original BZ, but I would say fix it under the BZ 1597886 as it is providing a lot of information regarding the issue. Plus this BZ is only about not suspending the device and the device is not suspended at all any more...
Restoring the message without suspending the device is fine. :) Basically:
/var/log/messages:
[22275.407669] kvdo1:dmsetup: Preparing to resize physical to 13892608
[22275.586285] kvdo1:dmsetup: Requested physical block count 13892608 not greater than 13892608
I will link them together, because BZ 1597886 is not reproducible without this one being in.
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, 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/RHBA-2018:3094
Description of problem: When growing physical size ('vdo growPhysical') without growing the storage under at all (new_size == old_size), kvdo does not stop the process at 'preparing to grow' but after suspending the volume. This is pointless action as there is no growing happening. Version-Release number of selected component (if applicable): vdo-6.1.0.149-16 How reproducible: 100% Steps to Reproduce: 1. vdo create --name vdo --device device 2. vdo growPhysical --name vdo Actual results: # vdo growPhysical --name vdo vdo: ERROR - Cannot grow physical on VDO vdo; device-mapper: message ioctl on vdo failed: Invalid argument vdo: ERROR - device-mapper: message ioctl on vdo failed: Invalid argument /var/log/messages: [22275.407669] kvdo1:dmsetup: Preparing to resize physical to 13892608 [22275.438719] kvdo1:dmsetup: Done preparing to resize physical [22275.470112] kvdo1:dmsetup: suspending device 'vdo' [22275.560291] kvdo1:dmsetup: device 'vdo' suspended [22275.586285] kvdo1:dmsetup: Requested physical block count 13892608 not greater than 13892608 [22275.629681] kvdo1:dmsetup: resuming device 'vdo' [22275.651300] kvdo1:dmsetup: device 'vdo' resumed Expected results: # vdo growPhysical --name vdo vdo: ERROR - Cannot grow physical on VDO vdo; device-mapper: message ioctl on vdo failed: Invalid argument vdo: ERROR - device-mapper: message ioctl on vdo failed: Invalid argument /var/log/messages: [22275.407669] kvdo1:dmsetup: Preparing to resize physical to 13892608 [22275.586285] kvdo1:dmsetup: Requested physical block count 13892608 not greater than 13892608 Additional info: note: this BZ does not aim at exposing the message to user