From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Het Gala <het.gala@nutanix.com>
Cc: qemu-devel@nongnu.org, prerna.saxena@nutanix.com,
quintela@redhat.com, dgilbert@redhat.com, pbonzini@redhat.com,
armbru@redhat.com, eblake@redhat.com,
Manish Mishra <manish.mishra@nutanix.com>,
Aravind Retnakaran <aravind.retnakaran@nutanix.com>
Subject: Re: [PATCH 1/5] migration: Updated QAPI format for 'migrate' qemu monitor command
Date: Tue, 10 Jan 2023 09:32:38 +0000 [thread overview]
Message-ID: <Y70wtsbtIJ7VSgSq@redhat.com> (raw)
In-Reply-To: <2b1f1234-944f-756c-f952-c8096149191f@nutanix.com>
On Tue, Jan 10, 2023 at 01:09:35PM +0530, Het Gala wrote:
>
> On 09/01/23 7:37 pm, Daniel P. Berrangé wrote:
> > On Mon, Dec 26, 2022 at 05:33:25AM +0000, Het Gala wrote:
> > > From: Author Het Gala <het.gala@nutanix.com>
> > >
> > > Existing 'migrate' QAPI design enforces transport mechanism, ip address
> > > of destination interface and corresponding port number in the form
> > > of a unified string 'uri' parameter. This scheme does seem to have an issue
> > > in it, i.e. double-level encoding of URIs.
> > >
> > > The current patch maps existing QAPI design into a well-defined data
> > > structure - 'MigrateChannel' only from the design perspective. Please note that
> > > the existing 'uri' parameter is kept untouched for backward compatibility.
> > >
> > > +##
> > > +# @MigrateExecAddr:
> > > + #
> > > + # Since 8.0
> > > + ##
> > > +{ 'struct': 'MigrateExecAddr',
> > > + 'data' : {'exec-str': 'str' } }
> > Currently for 'exec:cmdstr' the 'cmdstr' part is a shell command
> > that is passed
> >
> > const char *argv[] = { "/bin/sh", "-c", command, NULL };
> >
> > I have a strong preference for making it possible to avoid use
> > of shell when spawning commands, since much of thue time it is
> > not required and has the potential to open up vulnerabilities.
> > It would be nice to be able to just take the full argv directly
> > IOW
> >
> > { 'struct': 'MigrateExecAddr',
> > 'data' : {'argv': ['str'] } }
> >
> > If the caller wants to keep life safe and simple now they can
> > use
> > ["/bin/nc", "-U", "/some/sock"]
> >
> > but if they still want to send it via shell, they can also do
> > so
> >
> > ["/bin/sh", "-c", "...arbitrary shell script code...."]
> Okay Daniel. I get your point and it makes sense too. This will also have
> some code changes in exec.c file I assume.
> > > +
> > > +##
> > > +# @MigrateRdmaAddr:
> > > +#
> > > +# Since 8.0
> > > +##
> > > +{ 'struct': 'MigrateRdmaAddr',
> > > + 'data' : {'rdma-str': 'str' } }
> > Loooking at the RDMA code it takes the str, and treats it
> > as an IPv4 address:
> >
> >
> > addr = g_new(InetSocketAddress, 1);
> > if (!inet_parse(addr, host_port, NULL)) {
> > rdma->port = atoi(addr->port);
> > rdma->host = g_strdup(addr->host);
> > rdma->host_port = g_strdup(host_port);
> > }
> >
> > so we really ought to accept an InetSocketAddress struct
> > directly
> >
> > { 'struct': 'MigrateRdmaAddr',
> > 'data' : {'rdma-str': 'InetSocketAddress' } }
> >
> Yes, It resembles to InetSocketAddress. Will make the relevant changes in
> rdma.c file.
>
> With this, I had a small question in mind, do qemu need to develop /
> leverage some functionality to check the correctness for host or port.
> So that if the user enters an invalid host address, they get an error
> message to enter correct address, if trying to migrate via qmp command line
> interface.
When the RDMA code uses the host address to resolve the RDMA
endpoint, it will fail and report an error back.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2023-01-10 9:45 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-26 5:33 [PATCH 0/5] migration: Modified 'migrate' QAPI command for migration Het Gala
2022-12-26 5:33 ` [PATCH 1/5] migration: Updated QAPI format for 'migrate' qemu monitor command Het Gala
2023-01-09 14:07 ` Daniel P. Berrangé
2023-01-10 7:39 ` Het Gala
2023-01-10 9:32 ` Daniel P. Berrangé [this message]
2023-01-10 14:09 ` Het Gala
2023-01-13 8:07 ` Het Gala
2023-01-13 8:47 ` Daniel P. Berrangé
2023-01-17 10:43 ` Dr. David Alan Gilbert
2023-01-18 5:13 ` Het Gala
2023-01-17 10:47 ` Dr. David Alan Gilbert
2023-01-18 5:37 ` Het Gala
2022-12-26 5:33 ` [PATCH 2/5] migration: HMP side changes for modified 'migrate' QAPI design Het Gala
2022-12-26 5:33 ` [PATCH 3/5] migration: Avoid multiple parsing of uri in migration code flow Het Gala
2023-01-09 14:14 ` Daniel P. Berrangé
2023-01-10 7:43 ` Het Gala
2022-12-26 5:33 ` [PATCH 4/5] migration: Modified 'migrate-incoming' QAPI and HMP side changes on the destination interface Het Gala
2022-12-26 5:33 ` [PATCH 5/5] migration: Established connection for listener sockets on the dest interface Het Gala
2023-01-12 6:38 ` Markus Armbruster
2023-01-02 7:18 ` [PATCH 0/5] migration: Modified 'migrate' QAPI command for migration Het Gala
2023-01-09 6:59 ` Het Gala
2023-01-17 10:52 ` Claudio Fontana
2023-01-18 5:52 ` Het Gala
2023-01-18 10:41 ` Claudio Fontana
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=Y70wtsbtIJ7VSgSq@redhat.com \
--to=berrange@redhat.com \
--cc=aravind.retnakaran@nutanix.com \
--cc=armbru@redhat.com \
--cc=dgilbert@redhat.com \
--cc=eblake@redhat.com \
--cc=het.gala@nutanix.com \
--cc=manish.mishra@nutanix.com \
--cc=pbonzini@redhat.com \
--cc=prerna.saxena@nutanix.com \
--cc=qemu-devel@nongnu.org \
--cc=quintela@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.