On Sun, Feb 16, 2020 at 11:52 AM Amit Bawer <aba...@redhat.com> wrote: > > Hi, > > This occurs on CI every now and then, > taken from: > https://jenkins.ovirt.org/job/vdsm_standard-check-patch/18302//artifact/check-patch.tests-py3.el8.x86_64/mock_logs/script/stdout_stderr.log > > Thanks > > > > ________ TestConvertPreallocation.test_qcow2_to_raw_preallocated[full] > _________ > > self = <storage.qemuimg_test.TestConvertPreallocation object at > 0x7f9bac7c3ef0> > preallocation = 'full' > > @pytest.mark.parametrize("preallocation", [ > qemuimg.PREALLOCATION.FALLOC, > qemuimg.PREALLOCATION.FULL, > ]) > def test_qcow2_to_raw_preallocated(self, preallocation): > virtual_size = 10 * MiB > with namedTemporaryDir() as tmpdir: > src = os.path.join(tmpdir, 'src') > dst = os.path.join(tmpdir, 'dst') > > op = qemuimg.create(src, size=virtual_size, format="qcow2") > op.run() > > op = qemuimg.convert(src, dst, srcFormat="qcow2", dstFormat="raw", > preallocation=preallocation) > op.run() > > check_raw_preallocated_image(dst, virtual_size) > > storage/qemuimg_test.py:561: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > path = '/var/tmp/tmpxr0emprz/dst', virtual_size = 10485760 > > def check_raw_preallocated_image(path, virtual_size): > image_stat = os.stat(path) > assert image_stat.st_size == virtual_size > > assert image_stat.st_blocks * 512 == virtual_size > E assert (20488 * 512) == 10485760 > E + where 20488 = os.stat_result(st_mode=33188, st_ino=411528, > st_dev=2049, st_nlink=1, st_uid=0, st_gid=0, st_size=10485760, > st_atime=1581845207, st_mtime=1581845207, st_ctime=1581845207).st_blocks
Depending on the filesystem, the file system may report more blocks than expected. We can change the assert to: assert image_stat.st_blocks * 512 >= virtual_size In qemu iotests this is solved in a more precise way: https://github.com/qemu/qemu/blob/b29c3e23f64938784c42ef9fca896829e3c19120/tests/qemu-iotests/175#L82 https://github.com/qemu/qemu/blob/b29c3e23f64938784c42ef9fca896829e3c19120/tests/qemu-iotests/175#L87 I think we can adapt these checks and use them in every test checking for allocation. We have several tests that can use this. > storage/qemuimg_test.py:621: AssertionError > > _______________________________________________ > Devel mailing list -- devel@ovirt.org > To unsubscribe send an email to devel-le...@ovirt.org > Privacy Statement: https://www.ovirt.org/site/privacy-policy/ > oVirt Code of Conduct: > https://www.ovirt.org/community/about/community-guidelines/ > List Archives: > https://lists.ovirt.org/archives/list/devel@ovirt.org/message/G7PRFHNYMDKAMI7XZ2K7XGTHUBR4QWBZ/ _______________________________________________ Devel mailing list -- devel@ovirt.org To unsubscribe send an email to devel-le...@ovirt.org Privacy Statement: https://www.ovirt.org/site/privacy-policy/ oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/ List Archives: https://lists.ovirt.org/archives/list/devel@ovirt.org/message/QW3W4JH4A7HF3EQ6NVY6XBFUEM3NOEZC/