Bug 2025880

Summary: Gating failure during vdo revdeps test
Product: Red Hat Enterprise Linux 9 Reporter: Vojtech Trefny <vtrefny>
Component: libblockdevAssignee: Vojtech Trefny <vtrefny>
Status: CLOSED ERRATA QA Contact: guazhang <guazhang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: awalsh, brdeoliv, guazhang, storage-qe
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libblockdev-2.25-10.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 2023883 Environment:
Last Closed: 2022-05-17 13:24:34 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: 2023883    
Bug Blocks:    

Description Vojtech Trefny 2021-11-23 09:44:37 UTC
+++ This bug was initially created as a clone of Bug #2023883 +++

Description of problem:
Running through the gating process for vdo build vdo-6.2.6.7-14.el8 a failure with libblockdev/upstream_test_suite came up.

This is the text:
======================================================================
FAIL: test_stats (lvm_dbus_tests.LVMVDOTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/str/source/tests/lvm_dbus_tests.py", line 1644, in test_stats
    self.assertNotEqual(vdo_stats.saving_percent, -1)
AssertionError: -1 == -1

======================================================================
FAIL: test_stats (lvm_test.LVMVDOTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/var/str/source/tests/lvm_test.py", line 1621, in test_stats
    self.assertEqual(vdo_info.saving_percent, vdo_stats.saving_percent)
AssertionError: 100 != -1

This may be related to a similar failure that was encountered with the kernel component and posted about in #osci this morning.  BZ2023660 was opened for that issue.  The failures themselves are not the same, but the following message appeared in both:
** (process:20190): WARNING **: 15:19:19.087: The 'vdo' utility is not available

--- Additional comment from Vojtech Trefny on 2021-11-22 12:59:39 UTC ---



--- Additional comment from Vojtech Trefny on 2021-11-22 13:42:22 UTC ---

upstream PR: https://github.com/storaged-project/libblockdev/pull/674

Comment 2 guazhang@redhat.com 2021-12-09 06:05:15 UTC
Hi,

Can not load vdo kernel module, and skip the testing, Is it expected ?

libblockdev-2.25-10.el9.x86_64
# rpm -qa |grep vdo
kmod-kvdo-8.1.0.316-5.el9.x86_64
vdo-8.1.0.316-1.el9.1.x86_64

[root@storageqe-69 libblockdev-2.25]# python3 tests/run_tests.py  -s lvm_dbus_tests.LVMVDOTest
/root/rpmbuild/BUILD/libblockdev-2.25/tests/lvm_dbus_tests.py:14: PyGIWarning: BlockDev was imported without specifying a version first. Use gi.require_version('BlockDev', '2.0') before import to ensure that the right version gets loaded.
  from gi.repository import BlockDev, GLib
skipped 'VDO kernel module not available, skipping.'

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK (skipped=1)
[root@storageqe-69 libblockdev-2.25]# 
[root@storageqe-69 libblockdev-2.25]# python3 tests/run_tests.py  lvm_test.LVMVDOTest
/root/rpmbuild/BUILD/libblockdev-2.25/tests/lvm_test.py:13: PyGIWarning: BlockDev was imported without specifying a version first. Use gi.require_version('BlockDev', '2.0') before import to ensure that the right version gets loaded.
  from gi.repository import BlockDev, GLib
skipped 'VDO kernel module not available, skipping.'

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK (skipped=1)
[root@storageqe-69 libblockdev-2.25]#

Comment 3 Vojtech Trefny 2021-12-09 07:52:07 UTC
(In reply to guazhang from comment #2)
> Hi,
> 
> Can not load vdo kernel module, and skip the testing, Is it expected ?
> 

Yes, the test suite shouldn't fail just because the module is not available (or not compatible with the kernel).

These two versions work for me

# rpm -qq kmod-kvdo
kmod-kvdo-8.1.0.316-6.el9.x86_64
# uname -r
5.14.0-26.el9.x86_64

and generally if the kernel you are currently running isn't compatible with the installed version of kmod-kvdo, running "weak-modules --add-kernel --no-initramfs" should also help.

Comment 4 Andy Walsh 2021-12-09 13:02:12 UTC
(In reply to Vojtech Trefny from comment #3)
> These two versions work for me
> 
> # rpm -qq kmod-kvdo
> kmod-kvdo-8.1.0.316-6.el9.x86_64
> # uname -r
> 5.14.0-26.el9.x86_64

Yes, this build of kmod-kvdo should be available in the next set of nightly composes.  There was an AWS outage that prevented the build from being included sooner.

Comment 5 guazhang@redhat.com 2021-12-10 00:27:01 UTC
Hi,

test pass with fixed package.

libblockdev-2.25-10.el9.x86_64
vdo-8.1.0.316-1.el9.1.x86_64
kmod-kvdo-8.1.0.316-6.el9.x86_64
RHEL-9.0.0-20211207.2

[root@storageqe-70 libblockdev-2.25]# python3 tests/run_tests.py  -s lvm_dbus_tests.LVMVDOTest
/root/rpmbuild/BUILD/libblockdev-2.25/tests/lvm_dbus_tests.py:14: PyGIWarning: BlockDev was imported without specifying a version first. Use gi.require_version('BlockDev', '2.0') before import to ensure that the right version gets loaded.
  from gi.repository import BlockDev, GLib
test_enabla_disable_compression (lvm_dbus_tests.LVMVDOTest) ... skipped 'Enabling/disabling compression on LVM VDO not implemented in LVM DBus API.'
test_enable_disable_deduplication (lvm_dbus_tests.LVMVDOTest) ... skipped 'Enabling/disabling deduplication on LVM VDO not implemented in LVM DBus API.'
test_resize (lvm_dbus_tests.LVMVDOTest) ... ok
test_stats (lvm_dbus_tests.LVMVDOTest) ... ok
test_vdo_pool_convert (lvm_dbus_tests.LVMVDOTest) ... skipped 'LVM VDO pool convert not implemented in LVM DBus API.'
test_vdo_pool_create (lvm_dbus_tests.LVMVDOTest) ... ok
test_vdo_pool_create_options (lvm_dbus_tests.LVMVDOTest) ... ok

----------------------------------------------------------------------
Ran 7 tests in 18.995s

OK (skipped=3)
[root@storageqe-70 libblockdev-2.25]# python3 tests/run_tests.py  lvm_test.LVMVDOTest
/root/rpmbuild/BUILD/libblockdev-2.25/tests/lvm_test.py:13: PyGIWarning: BlockDev was imported without specifying a version first. Use gi.require_version('BlockDev', '2.0') before import to ensure that the right version gets loaded.
  from gi.repository import BlockDev, GLib
test_enabla_disable_compression (lvm_test.LVMVDOTest) ... ok
test_enable_disable_deduplication (lvm_test.LVMVDOTest) ... ok
test_resize (lvm_test.LVMVDOTest) ... ok
test_stats (lvm_test.LVMVDOTest) ... ok
test_vdo_pool_convert (lvm_test.LVMVDOTest) ... ok
test_vdo_pool_create (lvm_test.LVMVDOTest) ... ok
test_vdo_pool_create_options (lvm_test.LVMVDOTest) ... ok

----------------------------------------------------------------------
Ran 7 tests in 22.376s

OK

Comment 10 errata-xmlrpc 2022-05-17 13:24:34 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 (new packages: libblockdev), 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-2022:2503