Bug 1505701 - -blockdev fails if a qcow2 image has backing store format and backing store is referenced via node-name
Summary: -blockdev fails if a qcow2 image has backing store format and backing store i...
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.5
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Kevin Wolf
QA Contact: CongLi
URL:
Whiteboard:
Keywords:
Depends On:
Blocks: 760547 1558125
TreeView+ depends on / blocked
 
Reported: 2017-10-24 07:06 UTC by Peter Krempa
Modified: 2018-04-11 00:45 UTC (History)
11 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2018-04-11 00:44:15 UTC


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2018:1104 None None None 2018-04-11 00:45 UTC

Description Peter Krempa 2017-10-24 07:06:03 UTC
Description of problem:
qemu fails to start when disk storage is declared via -blockdev if an qcow2 image has backing store and the backing store format is recorded in the image itself. This happens as the code opening the image adds the format as an property when opening the image but the code opening the image via reference rejects properities if the reference (node-name) is given.

Version-Release number of selected component (if applicable):
2.9.0+ including current upstream

How reproducible:
100%


Steps to Reproduce:
1. Create qcow2 image with backing file while specifying backing store format:

$ qemu-img create -f raw /tmp/backing.raw 64M
$ qemu-img create -f qcow2 -F raw -b /tmp/backing.raw /tmp/test.qcow2

2. Try to start qemu while specifying the chain manually via -blockdev:

$ qemu-system-x86_64 \
  -blockdev driver=file,filename=/tmp/backing.raw,node-name=backing \
  -blockdev driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing
qemu-system-x86_64: -blockdev 
driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing:
 Could not open backing file: Cannot reference an existing block device with 
additional options or a new filename

Actual results:
qemu fails to start with: Could not open backing file: Cannot reference an existing block device with 
additional options or a new filename


Expected results:
qemu accepts the backing chain as specified


Additional info:
Patches posted to qemu-devel:

https://lists.gnu.org/archive/html/qemu-devel/2017-10/msg02872.html

Comment 1 Kevin Wolf 2017-10-29 08:51:01 UTC
This is fixed upstream in commit 6bff597bf ('block: don't add 'driver' to
options when referring to backing via node name').

Comment 3 Miroslav Rezanina 2017-12-05 12:59:27 UTC
Fix included in qemu-kvm-rhev-2.10.0-11.el7

Comment 5 CongLi 2017-12-07 05:26:56 UTC
Steps:
1. Create qcow2 image with backing file while specifying backing store format:

$ qemu-img create -f raw /tmp/backing.raw 64M
$ qemu-img create -f qcow2 -F raw -b /tmp/backing.raw /tmp/test.qcow2

2. Try to start qemu while specifying the chain manually via -blockdev:

$ /usr/libexec/qemu-kvm \
  -blockdev driver=file,filename=/tmp/backing.raw,node-name=backing \
  -blockdev driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing


Reproduced on:
qemu-kvm-rhev-2.10.0-10.el7.x86_64

qemu-kvm: -blockdev driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing: Could not open backing file: Cannot reference an existing block device with additional options or a new filename


Verified on:
qemu-kvm-rhev-2.10.0-11.el7.x86_64

$ /usr/libexec/qemu-kvm -blockdev driver=file,filename=/tmp/backing.raw,node-name=backing   -blockdev driver=qcow2,file.driver=file,file.filename=/tmp/test.qcow2,node-name=root,backing=backing
VNC server running on ::1:5900

Comment 7 errata-xmlrpc 2018-04-11 00:44:15 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/RHSA-2018:1104


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