Bug 1595173 - blockdev-create is blocking
Summary: blockdev-create is blocking
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.6
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: Gu Nini
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-06-26 09:47 UTC by Kevin Wolf
Modified: 2018-11-01 11:12 UTC (History)
7 users (show)

Fixed In Version: qemu-kvm-rhev-2.12.0-8.el7
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-11-01 11:10:36 UTC
Target Upstream Version:


Attachments (Terms of Use)


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:3443 None None None 2018-11-01 11:12:30 UTC

Description Kevin Wolf 2018-06-26 09:47:09 UTC
The patch series for bug 1513543 adds the external API for the blockdev-create job, but even though it is using the job infrastructure, we noticed that it doesn't actually run in the background, but preallocation can block the monitor and the VM for quite a long time.

The solution for this is making bdrv_truncate() asynchronous, but this requires some more work upstream, so I decided to get the new API in first and track the blocking behaviour separately with this bug.

Comment 3 Miroslav Rezanina 2018-07-24 14:36:09 UTC
Fix included in qemu-kvm-rhev-2.12.0-8.el7

Comment 5 Gu Nini 2018-07-26 05:46:39 UTC
Reproduced the bug on qemu-kvm-rhev-2.12.0-8.el7.x86_64; verified the bug on qemu-kvm-rhev-2.12.0-8.el7.x86_64, i.e. the 'blockdev-create' job runs in background now:

{"execute":"blockdev-create","arguments":{"options":{"driver":"qcow2","file":"driveimage3","size":10737418240,"preallocation":"full"},"job-id":"job2"}}
{"timestamp": {"seconds": 1532583767, "microseconds": 938252}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "job2"}}
{"timestamp": {"seconds": 1532583767, "microseconds": 938302}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "job2"}}
{"return": {}}
************************************>> We can see the job can't be dismissed
{"execute":"job-dismiss","arguments":{"id":"job2"}}
{"error": {"class": "GenericError", "desc": "Job 'job2' in state 'running' cannot accept command verb 'dismiss'"}}
************************************
{"timestamp": {"seconds": 1532583829, "microseconds": 110505}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "job2"}}
{"timestamp": {"seconds": 1532583829, "microseconds": 110555}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "job2"}}
{"timestamp": {"seconds": 1532583829, "microseconds": 110582}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "job2"}}
{"execute":"job-dismiss","arguments":{"id":"job2"}}
{"timestamp": {"seconds": 1532583872, "microseconds": 979462}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "job2"}}
{"return": {}}

Comment 6 errata-xmlrpc 2018-11-01 11:10:36 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, 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-2018:3443


Note You need to log in before you can comment on or make changes to this bug.