[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [libvirt] [PULL 25/26] block: Remove deprecated -drive

From: Kevin Wolf
Subject: Re: [Qemu-devel] [libvirt] [PULL 25/26] block: Remove deprecated -drive option serial
Date: Wed, 4 Jul 2018 16:23:49 +0200
User-agent: Mutt/1.9.1 (2017-09-22)

Am 04.07.2018 um 15:43 hat Daniel P. Berrangé geschrieben:
> On Wed, Jul 04, 2018 at 03:34:40PM +0200, Kevin Wolf wrote:
> > I understand where you're coming from, but let's be honest: It's not as
> > if disk geometry or serial numbers were features that absolutely need
> > to be there to give QEMU any testing.
> I'd venture to suggest disk geometry is almost never used in practice.
> serial strings, however, are pretty common, used by default in fact
> by openstack.

Interesting, good to know.

> > Also, my understanding has always been that we expect users to have a
> > libvirt version that isn't older than QEMU. It would be useful to set a
> > clear policy for this and document it.
> My understanding was actually mostly the opposite. We'll try not to
> /knowingly/ break existing libvirt version if reasonable. We've not
> always followed that, either by accident, or even intentionally in
> some cases. What's never defined is just how old libvirt we care about
> not breaking.

Hm, that used to be true, yes. I still seem to remember that we've
always expected a new libvirt version. Was that only about new features

However, the deprecation policy essentially says that we will now
knowingly break existing libvirt versions. With it, we also defined that
we definitely don't care about libvirt versions older than QEMU n-2.
You're right that we're not really making a statement for libvirt
versions newer than that.

> In the case of QEMU libvirt will in fact be fixed before QEMU 3.0 is
> released, but only by a week or so.

Probably two weeks because QEMU never does without the extra RC, but
that doesn't make a big difference.

> I think its mostly a case of being pragmatic about what we do in this
> respect, rather than defining a hard rule.
> In this case I'd personally lean towards reverting this patch, since
> merging it was not a critical blocker to other work that went into
> 3.0 IIUC. So block maintaniers burden shouldn't be impacted by a
> temporary revert and then re-merge when 3.1 opens.

Having to remember to really bring it back to life after the release is
a maintainer burden, which is one of the reasons why I don't want this
"extended" deprecation process to become the norm.

If it stays a one-time thing, and given that we're now in the freeze
and a block-next branch will be active anyway, I'm okay with a temporary

> > > I think it would be really beneficial to general QEMU test coverage to
> > > push deleting this option back a release or two. We should make testing
> > > QEMU in conjunction with libvirt as uncomplicated as possible.
> > 
> > Essentially, what is important to me isn't getting these options dropped
> > exactly in 3.0, but not setting a bad precedence that deprecation isn't
> > actually worth anything. We may easily end up with this deprecation
> > process:
> > 
> > depreate a feature
> > release QEMU version n + 1
> > release QEMU version n + 2
> > remove the feature
> > while libvirt hasn't removed use of the feature:
> >     # ...and why should it when everything is still working?
> >     reinstate the feature
> >     release QEMU version n + x
> >     remove the feature
> Yeah, we definitely don't want to get into that kind of mess
> in general.
> > When management tools know that this is the process, the motivation to
> > remove the use of the feature gets even lower (not out of malice, but
> > because there will be always more important things), so this will
> > "optimise" itself into an endless loop and we're back to never actually
> > removing old cruft that impedes development.
> > 
> > The libvirt patch has just been merged (and I'm almost sure that this
> > wouldn't have happened so quickly if I had just reverted the patch right
> > away), so at least we know now that this specific instance of the loop
> > is going to terminate.
> > 
> > What's left is first and foremost that we need to sort out our broken
> > deprecation mechanism, and if that gets done, I don't mind if someone
> > wants to revert the patch for 3.0 as long as they also take care that it
> > gets back into 3.1.
> What I think this really highlights is
>  - Lack of libvirt paying attention to deprecations
>  - Lack of a way to get good diagnostic of violations when testing
> The first thing is just a human problem on libvirt side.
> The second thing could be addressed in code if there was an env variable
> or cli option to turn all use of deprecated features into abort()s in
> QEMU. That way libvirt automated testing against git master would have
> a way to identify places where we use deprecated feature.

The first one is basically just a result of the second. I think the most
important improvement will be finding a way how to break things early
for libvirt developers, but keep them working with a warning for
everyone else.

As a more short-term thing, is someone from libvirt looking at other
present deprecations in QEMU and what needs to be done for them?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]