[PATCH v3 17/49] tests/qemu-iotests/205: fix race in assertExportNotFound
Marc-André Lureau <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
After nbd-server-remove with mode=hard and an active client, the export is removed from the NBD export list synchronously but remains in the block export list until async cleanup completes (via blk_exp_delete_bh bottom-half). A subsequent nbd-server-remove call may find the export still in the block list with user_owned=false, returning "already shutting down" instead of "not found". Accept both error messages in assertExportNotFound, since both indicate the export is no longer usable. Reviewed-by: Daniel P. Berrangé <[email protected]> Signed-off-by: Marc-André Lureau <[email protected]> --- tests/qemu-iotests/205 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/205 b/tests/qemu-iotests/205 index 2370e1a138b1..78459065418c 100755 --- a/tests/qemu-iotests/205 +++ b/tests/qemu-iotests/205 @@ -60,7 +60,9 @@ class TestNbdServerRemove(iotests.QMPTestCase): def assertExportNotFound(self, name): result = self.vm.qmp('nbd-server-remove', name=name) - self.assert_qmp(result, 'error/desc', "Export 'exp' is not found") + desc = result.get('error', {}).get('desc', '') + self.assertIn(desc, ("Export '%s' is not found" % name, + "Export '%s' is already shutting down" % name)) def assertExistingClients(self, result): self.assert_qmp(result, 'error/desc', "export 'exp' still in use") -- 2.55.0.543.g5ebe2ebe4ea8