From: Murilo Opsfelder Araujo <muriloo@linux.ibm.com>
To: Daniel Henrique Barboza <danielhb413@gmail.com>
Cc: qemu-devel@nongnu.org, kwolf@redhat.com, armbru@redhat.com,
dgilbert@redhat.com, mreitz@redhat.com
Subject: Re: [Qemu-devel] [RFC PATCH v1 0/2] HMP/snapshot changes - do not use ID anymore
Date: Wed, 22 Aug 2018 19:04:40 -0300 [thread overview]
Message-ID: <20180822220440.GA5287@kermit-br-ibm-com> (raw)
In-Reply-To: <20180821210024.3587-1-danielhb413@gmail.com>
Hi, Daniel.
On Tue, Aug 21, 2018 at 06:00:22PM -0300, Daniel Henrique Barboza wrote:
> I am marking the patch series as "RFC" because it was supposed to be
> a discussion but, when I was investigating, it turned out to be
> easier to send the patches right away.
>
> 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 I am simplifying the meaning of the parameters of savevm/loadvm/delvm.
What if we harden ->id_str to be a UUID?
The example you mentioned is that user gave a snapshot the name "1", which was
the ->id_str of the first snapshot created.
If we harden ->id_str to be a UUID, that situation would only happen if user
entered a UUID already in use or a tag of their preference. It would be a bit
harder for user to guess an ->id_str (UUID) by mistake.
So, in this example, the name "1" of the second snapshot wouldn't match the
->id_str of the first snapshot and a second snapshot (with a different UUID)
would be created with tag "1".
Having *_snapshot_find() to still match ->id_str or ->name is good for user
experience, where short names or tags can still be used to operate on snapshots.
Internally, code could handle only UUIDs of the snapshots. So
*_snapshot_delete() would receive a UUID, and *_snapshot_find() would still
match ->id_str or ->name, still allowing savevm/loadvm/delvm to operate on both
IDs and tags.
>
>
> Daniel Henrique Barboza (2):
> block/snapshot.c: eliminate use of ID input in snapshot operations
> qcow2-snapshot: remove redundant find_snapshot_by_id_and_name call
>
> block/qcow2-snapshot.c | 5 -----
> block/snapshot.c | 5 +++--
> hmp-commands.hx | 20 ++++++++++----------
> 3 files changed, 13 insertions(+), 17 deletions(-)
>
> --
> 2.17.1
>
>
--
Murilo
next prev parent reply other threads:[~2018-08-22 22:04 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-21 21:00 [Qemu-devel] [RFC PATCH v1 0/2] HMP/snapshot changes - do not use ID anymore Daniel Henrique Barboza
2018-08-21 21:00 ` [Qemu-devel] [PATCH v1 1/2] block/snapshot.c: eliminate use of ID input in snapshot operations Daniel Henrique Barboza
2018-08-22 22:06 ` Murilo Opsfelder Araujo
2018-08-23 17:45 ` Daniel Henrique Barboza
2018-08-23 19:27 ` Murilo Opsfelder Araujo
2018-08-23 20:19 ` Daniel Henrique Barboza
2018-08-21 21:00 ` [Qemu-devel] [PATCH v1 2/2] qcow2-snapshot: remove redundant find_snapshot_by_id_and_name call Daniel Henrique Barboza
2018-08-22 22:04 ` Murilo Opsfelder Araujo [this message]
2018-08-23 18:21 ` [Qemu-devel] [RFC PATCH v1 0/2] HMP/snapshot changes - do not use ID anymore Daniel Henrique Barboza
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=20180822220440.GA5287@kermit-br-ibm-com \
--to=muriloo@linux.ibm.com \
--cc=armbru@redhat.com \
--cc=danielhb413@gmail.com \
--cc=dgilbert@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.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).