qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-block] [Qemu-devel] [PATCH] iotests: fix 169


From: Vladimir Sementsov-Ogievskiy
Subject: Re: [Qemu-block] [Qemu-devel] [PATCH] iotests: fix 169
Date: Wed, 11 Apr 2018 16:05:32 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

11.04.2018 12:36, Vladimir Sementsov-Ogievskiy wrote:
11.04.2018 12:02, Vladimir Sementsov-Ogievskiy wrote:
03.04.2018 23:13, John Snow wrote:

On 04/03/2018 12:23 PM, Max Reitz wrote:
On 2018-03-30 18:10, Vladimir Sementsov-Ogievskiy wrote:
Use MIGRATION events instead of RESUME. Also, make a TODO: enable
dirty-bitmaps capability for offline case.

This (likely) fixes racy faults at least of the following types:

     - timeout on waiting for RESUME event
     - sha256 mismatch on 136 (138 after this patch)

Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---

This patch is a true change for the test anyway. But I don't understand,
why (and do really) it fixes the things. And I'm not sure about do we
really have a bug in bitmap migration or persistence. So, it's up to you,
take it into 2.12...

It was already discussed, that "STOP" event is bad for tests. What about
"RESUME"? How can we miss it? And sha256 mismatch is really something
strange.

Max, please check, do it fix 169 for you.

  tests/qemu-iotests/169 | 44 +++++++++++++++++++++++---------------------
  1 file changed, 23 insertions(+), 21 deletions(-)
This makes the test pass (thanks!), but it still leaves behind five cats...

Max


Hmm:

jhuston  14772  0.0  0.0   4296   784 pts/3    S    16:12 0:00 cat
/home/bos/jhuston/src/qemu/bin/git/tests/qemu-iotests/scratch/mig_file
jhuston  14796  0.0  0.0   4296   764 pts/3    S    16:12 0:00 cat
/home/bos/jhuston/src/qemu/bin/git/tests/qemu-iotests/scratch/mig_file
jhuston  14940  0.0  0.0   4296   788 pts/3    S    16:12 0:00 cat
/home/bos/jhuston/src/qemu/bin/git/tests/qemu-iotests/scratch/mig_file
jhuston  14964  0.0  0.0   4296   720 pts/3    S    16:12 0:00 cat
/home/bos/jhuston/src/qemu/bin/git/tests/qemu-iotests/scratch/mig_file
jhuston  15052  0.0  0.0   4296   768 pts/3    S    16:12 0:00 cat
/home/bos/jhuston/src/qemu/bin/git/tests/qemu-iotests/scratch/mig_file

Why do these get left behind? Nothing to consume the data...?

aha, understand. it is due to last vm_b.shutdown() and vm_b.launch in case of should_migrate. So, at the end of the test I restart vm_b with -incoming parameter. But it looks like a bug anyway, If we start qemu with -incoming "exec", should not we kill cat process, if there were no migration?


third type of fail, without this patch:

+======================================================================
+ERROR: test__persistent__migbitmap__offline_shared (__main__.TestDirtyBitmapMigration)
+methodcaller(name, ...) --> methodcaller object
+----------------------------------------------------------------------
+Traceback (most recent call last):
+  File "169", line 135, in do_test_migration
+    self.vm_b.launch()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qemu.py", line 221, in launch
+    self._launch()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qemu.py", line 244, in _launch
+    self._post_launch()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qtest.py", line 100, in _post_launch
+    super(QEMUQtestMachine, self)._post_launch()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qemu.py", line 196, in _post_launch
+    self._qmp.accept()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 157, in accept
+    return self.__negotiate_capabilities()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 75, in __negotiate_capabilities
+    resp = self.cmd('qmp_capabilities')
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 191, in cmd
+    return self.cmd_obj(qmp_cmd)
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 174, in cmd_obj
+    resp = self.__json_read()
+  File "/work/src/qemu/up-169/tests/qemu-iotests/../../scripts/qmp/qmp.py", line 82, in __json_read
+    data = self.__sockfile.readline()
+  File "/usr/lib64/python2.7/socket.py", line 447, in readline
+    data = self._sock.recv(self._rbufsize)
+error: [Errno 104] Connection reset by peer
+



Hmm, first type? I'm now not sure about, did I really see sha256 mismatch, or something like this (should be error, but found bitmap):

--- /work/src/qemu/up-169/tests/qemu-iotests/169.out    2018-04-11 15:35:10.055027392 +0300 +++ /work/src/qemu/up-169/tests/qemu-iotests/169.out.bad 2018-04-11 15:58:09.300450045 +0300
@@ -1,5 +1,20 @@
-........
+F.......
+======================================================================
+FAIL: test__not_persistent__migbitmap__offline (__main__.TestDirtyBitmapMigration)
+methodcaller(name, ...) --> methodcaller object
+----------------------------------------------------------------------
+Traceback (most recent call last):
+  File "169", line 136, in do_test_migration
+    self.check_bitmap(self.vm_b, sha256 if persistent else False)
+  File "169", line 77, in check_bitmap
+    "Dirty bitmap 'bitmap0' not found");
+  File "/work/src/qemu/up-169/tests/qemu-iotests/iotests.py", line 389, in assert_qmp
+    result = self.dictpath(d, path)
+  File "/work/src/qemu/up-169/tests/qemu-iotests/iotests.py", line 348, in dictpath
+    self.fail('failed path traversal for "%s" in "%s"' % (path, str(d)))
+AssertionError: failed path traversal for "error/desc" in "{u'return': {u'sha256': u'01d2ebedcb8f549a2547dbf8e231c410e3e747a9479e98909fc936e0035cf8b1'}}"


Max, did you really seed sha256 mismatch or only something like this?

--
Best regards,
Vladimir




reply via email to

[Prev in Thread] Current Thread [Next in Thread]