From: Eric Blake <eblake@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>,
Max Reitz <mreitz@redhat.com>,
qemu-block@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Alberto Garcia <berto@igalia.com>,
qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Markus Armbruster <armbru@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v6 14/15] block: Rewrite bdrv_close_all()
Date: Thu, 5 Nov 2015 10:44:38 -0700 [thread overview]
Message-ID: <563B9586.4020201@redhat.com> (raw)
In-Reply-To: <563B94A5.3030905@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1945 bytes --]
On 11/05/2015 10:40 AM, Paolo Bonzini wrote:
>
>
> On 05/11/2015 18:37, Max Reitz wrote:
>> $ x86_64-softmmu/qemu-system-x86_64 -qmp stdio \ -drive
>> if=none,file=test.qcow2,id=drive0,node-name=node0 {"QMP":
>> {"version": {"qemu": {"micro": 50, "minor": 4, "major": 2},
>> "package": ""}, "capabilities": []}}
>> {'execute':'qmp_capabilities'} {"return": {}}
>> {'execute':'drive-backup','arguments':{'device':'drive0','target':'out.qcow2','format':'qcow2','sync':'none'}}
>>
>>
> Formatting 'out.qcow2', fmt=qcow2 size=67108864 backing_file=test.qcow2
>> backing_fmt=qcow2 encryption=off cluster_size=65536
>> lazy_refcounts=off refcount_bits=16 {"return": {}}
>> {'execute':'eject','arguments':{'device':'drive0'}} {"error":
>> {"class": "GenericError", "desc": "Node 'drive0' is busy: block
>> device is in use by block job: backup"}}
>>
>> So... Nobody does it, but apparently nobody has to because you
>> cannot eject (to be more specific: use blockdev-remove-medium) a
>> BDS from a BB while a block job is running on the BDS.
>
> If you test it with all jobs, then it's okay. It's a regression, but
> not introduced by your patch and apparently nobody noticed.
>
> Even if nobody noticed, I wonder if this "Node 'foo' is busy" kind of
> error deserves its own ErrorClass. Eric, what do you think?
Needing a unique ErrorClass is only important if we expect a client
(libvirt) would behave differently based on that error class (clients
are not allowed to parse the error message). But what is the scenario
that we are trying to test here, rewritten in terms of libvirt API
commands? Should libvirt behave any differently because a blockjob was
running than for any other failure, if the end result is still that
libvirt can't eject or hot-unplug the disk because of a failure?
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2015-11-05 17:44 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-04 18:57 [Qemu-devel] [PATCH v6 for-2.6 00/15] block: Rework bdrv_close_all() Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 01/15] blockdev: Add missing bdrv_unref() in drive-backup Max Reitz
2015-11-09 13:21 ` Alberto Garcia
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 02/15] blockjob: Call bdrv_unref() on creation error Max Reitz
2015-11-09 13:23 ` Alberto Garcia
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 03/15] block: Release dirty bitmaps in bdrv_close() Max Reitz
2015-11-06 18:59 ` [Qemu-devel] [Qemu-block] " John Snow
2015-11-09 16:21 ` Max Reitz
2015-11-09 21:00 ` Max Reitz
2015-11-09 16:04 ` [Qemu-devel] " Kevin Wolf
2015-11-09 16:47 ` Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 04/15] iotests: Move _filter_nbd into common.filter Max Reitz
2015-11-09 16:04 ` Kevin Wolf
2015-11-09 18:17 ` Max Reitz
2015-11-09 18:20 ` Max Reitz
2015-11-10 10:25 ` Kevin Wolf
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 05/15] iotests: Make redirecting qemu's stderr optional Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 06/15] iotests: Add test for eject under NBD server Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 07/15] block: Move BDS close notifiers into BB Max Reitz
2015-11-09 16:04 ` Kevin Wolf
2015-11-09 16:50 ` Max Reitz
2015-11-09 16:59 ` Kevin Wolf
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 08/15] block: Use blk_remove_bs() in blk_delete() Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 09/15] blockdev: Use blk_remove_bs() in do_drive_del() Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 10/15] block: Make bdrv_close() static Max Reitz
2015-11-09 13:25 ` Alberto Garcia
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 11/15] block: Add list of all BlockDriverStates Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 12/15] blockdev: Keep track of monitor-owned BDS Max Reitz
2015-11-09 15:05 ` Alberto Garcia
2015-11-09 16:26 ` Kevin Wolf
2015-11-09 16:38 ` Alberto Garcia
2015-11-09 16:28 ` Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 13/15] block: Add blk_remove_all_bs() Max Reitz
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 14/15] block: Rewrite bdrv_close_all() Max Reitz
2015-11-05 17:15 ` Paolo Bonzini
2015-11-05 17:37 ` Max Reitz
2015-11-05 17:40 ` Paolo Bonzini
2015-11-05 17:44 ` Eric Blake [this message]
2015-11-05 17:54 ` Paolo Bonzini
2015-11-04 18:57 ` [Qemu-devel] [PATCH v6 15/15] iotests: Add test for multiple BB on BDS tree Max Reitz
2015-11-09 16:03 ` [Qemu-devel] [PATCH v6 for-2.6 00/15] block: Rework bdrv_close_all() Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=563B9586.4020201@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=berto@igalia.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).