From: Kevin Wolf <kwolf@redhat.com>
To: Max Reitz <mreitz@redhat.com>
Cc: Daniel Henrique Barboza <danielhb413@gmail.com>,
qemu-devel@nongnu.org, dgilbert@redhat.com, armbru@redhat.com,
muriloo@linux.ibm.com
Subject: Re: [Qemu-devel] [PATCH v2 0/3] HMP/snapshot changes - do not use ID anymore
Date: Wed, 9 Jan 2019 18:20:23 +0100 [thread overview]
Message-ID: <20190109172023.GK4867@localhost.localdomain> (raw)
In-Reply-To: <200ecea3-1ef4-3ecf-6b37-f6e45fef3849@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 3889 bytes --]
Am 09.01.2019 um 18:05 hat Max Reitz geschrieben:
> On 09.01.19 17:57, Daniel Henrique Barboza wrote:
> >
> >
> > On 1/9/19 12:10 PM, Max Reitz wrote:
> >> On 06.09.18 13:11, Daniel Henrique Barboza wrote:
> >>> changes in v2:
> >>> - removed the "RFC" marker;
> >>> - added a new patch (patch 2) that removes
> >>> bdrv_snapshot_delete_by_id_or_name from the code;
> >>> - made changes in patch 1 as suggested by Murilo;
> >>> - previous patch set link:
> >>> https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg04658.html
> >>>
> >>>
> >>> It is not uncommon to see bugs being opened by testers that attempt to
> >>> create VM snapshots using HMP. It turns out that "0" and "1" are quite
> >>> common snapshot names and they trigger a lot of bugs. I gave an example
> >>> in the commit message of patch 1, but to sum up here: QEMU treats the
> >>> input of savevm/loadvm/delvm sometimes as 'ID', sometimes as 'name'. It
> >>> is documented as such, but this can lead to strange situations.
> >>>
> >>> Given that it is strange for an API to consider a parameter to be 2
> >>> fields
> >>> at the same time, and inadvently treating them as one or the other, and
> >>> that removing the ID field is too drastic, my idea here is to keep the
> >>> ID field for internal control, but do not let the user set it.
> >>>
> >>> I guess there's room for discussion about considering this change an API
> >>> change or not. It doesn't affect users of HMP and it doesn't affect
> >>> Libvirt,
> >>> but simplifying the meaning of the parameters of savevm/loadvm/delvm.
> >> (Yes, very late reply, I'm sorry...)
> >>
> >> I do think it affects users of HMP, because right now you can delete
> >> snapshots with their ID, and after this series you cannot.
> >
> > That's true. My idea here was simple: the user can't reliably exclude
> > via snapshot ID today
> > because we're hiding the ID field in info snapshots:
> >
> >
> > (qemu) savevm 0
> > (qemu) info snapshots
> > List of snapshots present on all disks:
> > ID TAG VM SIZE DATE VM CLOCK
> > -- 0 741M 2018-07-31 13:39:56 00:41:25.313
> >
> >
> > Thus, what will end up happening is that the user will be forced to use the
> > TAG of the snapshot since this is the only available information.
>
> But you can get it through e.g. qemu-img info.
>
> Snapshot list:
> ID TAG VM SIZE DATE VM CLOCK
> 1 0 1.6M 2019-01-09 18:01:21 00:00:02.657
>
> So it's not impossible to get.
Is there a reason why we should display the ID at all when you can't use
it any more to identify snapshots?
> >> I think we had a short discussion about just disallowing numeric
> >> snapshot names. How bad would that be?
> >
> >
> > This was my first idea when evaluating what to do in this case. I gave
> > it up because
> > I found it to be too extreme. People would start complaining "I was able
> > to do
> > savevm 0 and now I can't".
>
> True. But it wouldn't be impossible to do, we'd need to deprecate
> numeric names, print a warning for two releases, and then we can make it
> an error.
This. Is. HMP.
Not a stable ABI, no deprecation period of two releases.
> Hm... If we had a proper deprecation warning in this series, I suppose
> it wouldn't be dangerous anymore. Can we just print a warning whenever
> the user specified an ID? (i.e. if some snapshot's ID matches the
> string given by the user and the snapshot's name does not)
How is it less of a problem when a user gets QEMU from the distro and
skips five releases? They will never see the warning. This is different
from QMP where things are fixed in libvirt, which is tested with every
single QEMU release.
Kevin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]
next prev parent reply other threads:[~2019-01-09 17:20 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-06 11:11 [Qemu-devel] [PATCH v2 0/3] HMP/snapshot changes - do not use ID anymore Daniel Henrique Barboza
2018-09-06 11:11 ` [Qemu-devel] [PATCH v2 1/3] block/snapshot.c: eliminate use of ID input in snapshot operations Daniel Henrique Barboza
2018-09-06 11:11 ` [Qemu-devel] [PATCH v2 2/3] block/snapshot: remove bdrv_snapshot_delete_by_id_or_name Daniel Henrique Barboza
2018-09-06 11:11 ` [Qemu-devel] [PATCH v2 3/3] qcow2-snapshot: remove redundant find_snapshot_by_id_and_name call Daniel Henrique Barboza
2018-10-08 18:13 ` [Qemu-devel] [PATCH v2 0/3] HMP/snapshot changes - do not use ID anymore Daniel Henrique Barboza
[not found] ` <20180921122954.GD2842@work-vm>
[not found] ` <355a1147-c0d0-88fc-7b68-4391bab25c54@gmail.com>
2018-10-09 17:34 ` Markus Armbruster
2018-10-10 7:56 ` [Qemu-devel] [libvirt] " Peter Krempa
2018-10-11 12:06 ` Dr. David Alan Gilbert
2018-10-11 12:35 ` Peter Krempa
2019-01-09 14:10 ` [Qemu-devel] " Max Reitz
2019-01-09 14:21 ` Kevin Wolf
2019-01-09 14:27 ` Max Reitz
2019-01-09 14:48 ` Kevin Wolf
2019-01-09 14:54 ` Max Reitz
2019-01-09 15:13 ` Kevin Wolf
2019-01-09 15:25 ` Dr. David Alan Gilbert
2019-01-09 16:25 ` Markus Armbruster
2019-01-09 16:27 ` Max Reitz
2019-01-09 16:45 ` Kevin Wolf
2019-01-09 16:58 ` Max Reitz
2019-01-09 18:19 ` Daniel Henrique Barboza
2019-01-09 16:57 ` Daniel Henrique Barboza
2019-01-09 17:05 ` Max Reitz
2019-01-09 17:20 ` Kevin Wolf [this message]
2019-01-09 17:38 ` Max Reitz
2019-01-09 17:52 ` Eric Blake
2019-01-09 19:00 ` Kevin Wolf
2019-01-11 12:35 ` Max Reitz
2019-01-09 17:55 ` Eric Blake
2019-01-09 18:51 ` Kevin Wolf
2019-01-09 19:02 ` Eric Blake
2019-01-10 11:25 ` Kevin Wolf
2019-01-10 11:41 ` Dr. David Alan Gilbert
2019-01-10 13:03 ` Daniel Henrique Barboza
2019-01-10 15:11 ` Kevin Wolf
2019-01-10 17:06 ` Dr. David Alan Gilbert
2019-01-10 18:22 ` Eric Blake
2019-01-11 12:14 ` Kevin Wolf
2019-01-11 13:22 ` Max Reitz
2019-01-11 14:33 ` Kevin Wolf
2019-01-11 15:23 ` Max Reitz
2019-01-09 17:32 ` Daniel Henrique Barboza
2019-01-09 17:07 ` Eric Blake
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=20190109172023.GK4867@localhost.localdomain \
--to=kwolf@redhat.com \
--cc=armbru@redhat.com \
--cc=danielhb413@gmail.com \
--cc=dgilbert@redhat.com \
--cc=mreitz@redhat.com \
--cc=muriloo@linux.ibm.com \
--cc=qemu-devel@nongnu.org \
/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).