All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Han Han <hhan@redhat.com>
Cc: Karen Noel <knoel@redhat.com>,
	Jaroslav Suchanek <jsuchane@redhat.com>,
	philmd@redhat.com, liq3ea@gmail.com, qemu-devel@nongnu.org,
	Markus Armbruster <armbru@redhat.com>,
	kraxel@redhat.com, lersek@redhat.com
Subject: Re: [PATCH] fw_cfg: Allow reboot-timeout=-1 again
Date: Thu, 31 Oct 2019 13:35:49 +0000	[thread overview]
Message-ID: <20191031133549.GC3128@work-vm> (raw)
In-Reply-To: <CAHjf+S_KfDQeC_k997_PKSgP6v8LQgNh1HYt9JPRM-Ds+POADg@mail.gmail.com>

* Han Han (hhan@redhat.com) wrote:
> However, another important question is: how can we avoid such undocumented
> incompatibility appears again?

The reboot-timeout one was accidental - it was a documented qemu
feature; just no one noticed it when the input check was added.
Officially if we actually want to deprecate a feature we should actually
follow qemu's deprecation guidelines.

> I can show another case caused by such incompatibile change:
> https://bugzilla.redhat.com/show_bug.cgi?id=1745868#c0
> 
> For the qemu devices, attributes, values, qmp cmds, qmp cmds arguments used
> by libvirt, could we get a way to inform libvirt
> that an incompatibile qemu change is coming, please update libvirt code
> ASAP to adjust to that change?
> Or another way that is more gently:  popping up the warning of depreciation
> instead of  dropping it, and then drop it in the version
> after next version.

Yes that should happen;  with deprecated devices it's easier than more
subtle features like command line things;  I'm not sure how that gets
introspected.  I thought libvirt already asked qemu for a list of
devices, so I'm confused why libvirt didn't spot it before starting the
VM in 1745868.

Dave

> 
> On Tue, Oct 29, 2019 at 1:59 PM Dr. David Alan Gilbert <dgilbert@redhat.com>
> wrote:
> 
> > * Markus Armbruster (armbru@redhat.com) wrote:
> > > "Dr. David Alan Gilbert" <dgilbert@redhat.com> writes:
> > >
> > > > * Markus Armbruster (armbru@redhat.com) wrote:
> > > >> "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> writes:
> > > >>
> > > >> > From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> > > >> >
> > > >> > Commit ee5d0f89de3e53cdb0dc added range checking on reboot-timeout
> > > >> > to only allow the range 0..65535; however both qemu and libvirt
> > document
> > > >> > the special value -1  to mean don't reboot.
> > > >> > Allow it again.
> > > >> >
> > > >> > Fixes: ee5d0f89de3e53cdb0dc ("fw_cfg: Fix -boot reboot-timeout
> > error checking")
> > > >> > RH bz: https://bugzilla.redhat.com/show_bug.cgi?id=1765443
> > > >> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > > >> > ---
> > > >> >  hw/nvram/fw_cfg.c | 5 +++--
> > > >> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > > >> >
> > > >> > diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
> > > >> > index 7dc3ac378e..1a9ec44232 100644
> > > >> > --- a/hw/nvram/fw_cfg.c
> > > >> > +++ b/hw/nvram/fw_cfg.c
> > > >> > @@ -247,10 +247,11 @@ static void fw_cfg_reboot(FWCfgState *s)
> > > >> >
> > > >> >      if (reboot_timeout) {
> > > >> >          rt_val = qemu_opt_get_number(opts, "reboot-timeout", -1);
> > > >> > +
> > > >> >          /* validate the input */
> > > >> > -        if (rt_val < 0 || rt_val > 0xffff) {
> > > >> > +        if (rt_val < -1 || rt_val > 0xffff) {
> > > >> >              error_report("reboot timeout is invalid,"
> > > >> > -                         "it should be a value between 0 and
> > 65535");
> > > >> > +                         "it should be a value between -1 and
> > 65535");
> > > >> >              exit(1);
> > > >> >          }
> > > >> >      }
> > > >>
> > > >> Semantic conflict with "PATCH] qemu-options.hx: Update for
> > > >> reboot-timeout parameter", Message-Id:
> > > >> <20191015151451.727323-1-hhan@redhat.com>.
> > > >
> > > > Thanks for spotting that.
> > > > I think Han and also submitted patches to review it from libvirt
> > > > and it wasn't obvious what to do.  (Cc'd Han in).
> > > >
> > > >> I'm too tired right now to risk an opinion on which one we want.
> > > >
> > > > As is everyone else !  The problem here is that its documented
> > > > as a valid thing to do, and libvirt does it, and you might have
> > > > a current XML file that did it.  Now I think you could change libvirt
> > > > to omit the reboot-timeout parameter if it was called with -1.
> > > >
> > > > So given its a documented thing in both qemu and libvirt xml
> > > > if we want to remove it then it sohuld be deprecated properly - but
> > it's
> > > > already broken.
> > >
> > > Since commit ee5d0f89d, v4.0.0.
> > >
> > > If that commit had not made it into a release, we'd certainly treat the
> > > loss of "-1 means don't reboot" as regression.
> > >
> > > But it has.  We can treat it as a regression anyway.  We can also
> > > declare "ship has sailed".
> > >
> > > I'm leaning towads the former.
> > >
> > > If we restore "-1 means don't reboot", then I don't see a need to
> > > deprecate it.  Just keep it.
> > >
> > > What do you think?
> >
> > That's also my view; especially since the problem seems to be an easy
> > fix.
> >
> > Dave
> >
> > --
> > Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
> >
> 
> 
> -- 
> Best regards,
> -----------------------------------
> Han Han
> Quality Engineer
> Redhat.
> 
> Email: hhan@redhat.com
> Phone: +861065339333
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2019-10-31 13:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-25 16:57 [PATCH] fw_cfg: Allow reboot-timeout=-1 again Dr. David Alan Gilbert (git)
2019-10-25 21:11 ` Markus Armbruster
2019-10-28 13:47   ` Dr. David Alan Gilbert
2019-10-29 12:09     ` Markus Armbruster
2019-10-29 12:56       ` Dr. David Alan Gilbert
2019-10-30 22:17         ` Han Han
2019-10-31 13:35           ` Dr. David Alan Gilbert [this message]
2019-11-01  5:28             ` Markus Armbruster
2019-10-25 21:28 ` Laszlo Ersek
2019-10-29  2:26   ` Dr. David Alan Gilbert
2019-10-29 14:03     ` Philippe Mathieu-Daudé

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=20191031133549.GC3128@work-vm \
    --to=dgilbert@redhat.com \
    --cc=armbru@redhat.com \
    --cc=hhan@redhat.com \
    --cc=jsuchane@redhat.com \
    --cc=knoel@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lersek@redhat.com \
    --cc=liq3ea@gmail.com \
    --cc=philmd@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 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.