All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Xu <peterx@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: qemu-devel@nongnu.org, "Juan Quintela" <quintela@redhat.com>,
	"Fabiano Rosas" <farosas@suse.de>,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	"Thomas Huth" <thuth@redhat.com>
Subject: Re: [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters
Date: Thu, 12 Oct 2023 11:58:21 -0400	[thread overview]
Message-ID: <ZSgXnb7pr3Ru6v+b@x1n> (raw)
In-Reply-To: <875y3dixzp.fsf@pond.sub.org>

On Wed, Oct 11, 2023 at 06:28:26AM +0200, Markus Armbruster wrote:
> >> Something like
> >> 
> >>     {"execute": "migrate-set-parameters",
> >>      "arguments": {"tls-authz": null}}
> >> 
> >> Hmm, crashes in migrate_params_apply(), which is a bug.  I'm getting
> >> more and more suspicious about user-facing migration code...
> >
> > Did you apply patch 1 of this series?
> 
> Since we're talking about "how to set it to NULL before", I was using
> master.

I see.  Then it seems we're good.  The fix just landed master branch
(86dec715a7).

> 
> > https://lore.kernel.org/qemu-devel/20230905162335.235619-2-peterx@redhat.com/
> >
> > QMP "migrate-set-parameters" does not go via migration_properties, so even
> > if we change handling of migration_properties, it shouldn't yet affect the
> > QMP interface of that.
> 
> I see.
> 
> I want to understand the impact of the change from 'str' to 'StrOrNull'
> on external interfaces.  The first step is to know where exactly the
> type is exposed externally.  *Know*, not gut-feel based on intended use.
> 
> I'll have another look at the schema change, and how the types are used.

Thanks.

> 
> >> If the migration object is accessible with qom-set, then that's another
> >> way to assign null values.
> >
> > I see what you meant.  IMHO we just don't need to worry on breaking that as
> > I am not aware of anyone using that to set migration parameters, and I
> > think the whole idea of migration_properties is for debugging.  The only
> > legal way an user should set migration parameters should be via QMP, afaik.
> 
> No matter the intended purpose of an interface, its meaning should be
> clear.  If we accept null, what does it mean?

IMHO here it means anything parsed from migration_properties will be a
qstring and impossible to be a qnull, at least if with that of my (probably
unmature, or even wrong..) fix:

https://lore.kernel.org/all/ZRsff7Lmy7TnggK9@x1n/

+static bool string_input_start_alternate(Visitor *v, const char *name,
+                                         GenericAlternate **obj, size_t size,
+                                         Error **errp)
+{
+    *obj = g_malloc0(size);
+    (*obj)->type = QTYPE_QSTRING;          <---------------- constantly set to string type
+    return true;
+}

I think it means when we parse the string, we'll always go with:

visit_type_StrOrNull():
    switch ((*obj)->type) {
    case QTYPE_QSTRING:
        ok = visit_type_str(v, name, &(*obj)->u.s, errp);
        break;

Finally, parse_type_str().

So it'll be impossible to specify null for -global migration.tls_*=XXX.

I suppose it's fine then?  Because it actually matches with previous when
it was still a string, and we use empty string to show tls disabled.

Thanks,

-- 
Peter Xu



  parent reply	other threads:[~2023-10-12 15:59 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-05 16:23 [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash Peter Xu
2023-09-05 16:23 ` [PATCH v3 1/4] migration/qmp: Fix crash on setting tls-authz with null Peter Xu
2023-09-28  4:47   ` Michael Tokarev
2023-09-28  5:36     ` Markus Armbruster
2023-09-28  6:56       ` Michael Tokarev
2023-10-04 13:58   ` Juan Quintela
2023-10-16  6:05   ` Markus Armbruster
2023-09-05 16:23 ` [PATCH v3 2/4] tests/migration-test: Add a test for null parameter setups Peter Xu
2023-10-04 13:58   ` Juan Quintela
2023-09-05 16:23 ` [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters Peter Xu
2023-09-26 20:40   ` Markus Armbruster
2023-10-02 19:52     ` Peter Xu
2023-10-09 12:25       ` Markus Armbruster
2023-10-10 15:05         ` Peter Xu
2023-10-10 19:18           ` Markus Armbruster
2023-10-10 20:09             ` Peter Xu
2023-10-11  4:28               ` Markus Armbruster
2023-10-11 14:21                 ` Markus Armbruster
2023-10-12 19:28                   ` Peter Xu
2023-10-13  5:36                     ` Markus Armbruster
2023-10-31 11:08                       ` Juan Quintela
2023-11-02 14:25                         ` Configuring migration (was: [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters) Markus Armbruster
2023-11-02 18:05                           ` Peter Xu
2023-11-14  7:27                             ` Configuring migration Markus Armbruster
2023-11-14 10:20                               ` Juan Quintela
2023-11-14  9:13                           ` Configuring migration (was: [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters) Daniel P. Berrangé
2023-11-14  9:53                             ` Configuring migration Markus Armbruster
2023-11-14  9:55                               ` Daniel P. Berrangé
2023-11-14 10:28                             ` Juan Quintela
2023-11-14 10:34                               ` Daniel P. Berrangé
2023-11-14 10:42                                 ` Juan Quintela
2023-11-14 10:45                                   ` Daniel P. Berrangé
2023-10-12 15:58                 ` Peter Xu [this message]
2023-10-13  5:41                   ` [PATCH v3 3/4] migration/qapi: Replace @MigrateSetParameters with @MigrationParameters Markus Armbruster
2023-09-05 16:23 ` [PATCH v3 4/4] migration/qapi: Drop @MigrationParameter enum Peter Xu
2023-09-06  4:42   ` Philippe Mathieu-Daudé
2023-09-06  9:00     ` Daniel P. Berrangé
2023-09-06 10:14       ` Philippe Mathieu-Daudé
2023-09-06 10:46         ` Daniel P. Berrangé
2023-09-26 19:05           ` Peter Xu
2023-09-26 20:43   ` Markus Armbruster
2023-10-02 20:42     ` Peter Xu
2023-10-16  6:29       ` Markus Armbruster
2023-10-16 16:16         ` Peter Xu
2023-10-16 17:36           ` Markus Armbruster
2023-09-25 12:59 ` [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash Markus Armbruster
2023-09-26 17:06   ` Peter Xu
2023-09-26 20:03     ` Markus Armbruster
2023-10-16  7:08 ` Markus Armbruster
2023-10-16 16:29   ` Peter Xu
2023-10-17  6:32     ` Markus Armbruster
2023-10-17 15:28       ` Peter Xu
2023-10-18  5:38         ` Markus Armbruster
2023-10-25 13:17       ` QAPI doc generator improvements (was: [PATCH v3 0/4] qapi/migration: Dedup migration parameter objects and fix tls-authz crash) Markus Armbruster

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=ZSgXnb7pr3Ru6v+b@x1n \
    --to=peterx@redhat.com \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=farosas@suse.de \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=thuth@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.