On 21 Nov 2018, at 21:10, Nir Soffer <nsoffer@redhat.com> wrote:



On Wed, Nov 21, 2018, 17:46 Milan Zamazal <mzamazal@redhat.com wrote:
Hi, test_no_match fails on CI most of the time (but not always) in
https://gerrit.ovirt.org/95518:

  _____________________________ test_no_match[qcow2] _____________________________
  11:30:16
  11:30:16 tmpdir = local('/var/tmp/vdsm/test_no_match_qcow2_0'), image_format = 'qcow2'
  11:30:16
  11:30:16     def test_no_match(tmpdir, image_format):
  11:30:16         path = str(tmpdir.join('test.' + image_format))
  11:30:16         op = qemuimg.create(path, '1m', image_format)
  11:30:16         op.run()
  11:30:16         qemuio.write_pattern(path, image_format, pattern=2)
  11:30:16         with pytest.raises(qemuio.VerificationError):
  11:30:16 >           qemuio.verify_pattern(path, image_format, pattern=4)
  11:30:16
  11:30:16 storage/qemuio_test.py:59:
  11:30:16 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
  11:30:16
  11:30:16 path = '/var/tmp/vdsm/test_no_match_qcow2_0/test.qcow2', format = 'qcow2'
  11:30:16 offset = 512, len = 1024, pattern = 4
  11:30:16
  11:30:16     def verify_pattern(path, format, offset=512, len=1024, pattern=5):
  11:30:16         read_cmd = 'read -P %d -s 0 -l %d %d %d' % (pattern, len, offset, len)
  11:30:16         cmd = ['qemu-io', '-f', format, '-c', read_cmd, path]
  11:30:16         rc, out, err = commands.execCmd(cmd, raw=True)
  11:30:16         if rc != 0 or err != b"":
  11:30:16 >           raise cmdutils.Error(cmd, rc, out, err)
  11:30:16 E           Error: Command ['qemu-io', '-f', 'qcow2', '-c', 'read -P 4 -s 0 -l 1024 512 1024', '/var/tmp/vdsm/test_no_match_qcow2_0/test.qcow2'] failed with rc=1 out='Pattern verification failed at offset 512, 1024 bytes\nread 1024/1024 bytes at offset 512\n1 KiB, 1 ops; 0.0002 sec (3.756 MiB/sec and 3846.1538 ops/sec)\n' err=''
  11:30:16
  11:30:16 storage/qemuio.py:50: Error

(Similarly for raw.)

You can see the complete test run log here (or in other CI runs of the
patch):
https://jenkins.ovirt.org/job/vdsm_master_check-patch-fc28-x86_64/2040/consoleFull

It fails on both Fedora and CentOS.  It may or may not be related to the
fact that QEMU 2.11 is used in the failed runs.

Any idea what could be wrong?

Yes. Qemu-io was fixed lately to fail when pattern does not match, but our wrapper still expects the old behaviour (return 0, log warning).

Are you sure you run 2.11 and not 2.12?

we’re testing 2.12 in vdsm.spec, but the logs show that the actual run is done still on 2.11. 
but who knows what it does for real….


We will fix this soon.

Nir