[ClusterLabs] Antw: Re: Antw: Re: Unexpected resource restart

Ken Gaillot kgaillot at redhat.com
Mon Jan 21 19:18:08 UTC 2019


On Mon, 2019-01-21 at 07:59 +0100, Ulrich Windl wrote:
> > > > Ken Gaillot <kgaillot at redhat.com> schrieb am 17.01.2019 um
> > > > 18:45 in
> 
> Nachricht
> <bcadf1250076d8adc3b09c300d3e12c79a3901ef.camel at redhat.com>:
> > On Thu, 2019‑01‑17 at 07:49 +0100, Ulrich Windl wrote:
> > > > > > Ken Gaillot <kgaillot at redhat.com> schrieb am 16.01.2019 um
> > > > > > 16:34 in Nachricht
> > > 
> > > <02e51f6d4f7c7c11161d54e2968c23c77c4a1eed.camel at redhat.com>:
> > > [...]
> > > > In retrospect, interleave=true should have been the default.
> > > > I've
> > > > never
> > > > seen a case where false made sense, and people get bit by
> > > > overlooking
> > > > it all the time. False is the default because it's
> > > > (theoretically
> > > > at
> > > > least) safer when there's nothing known about the particular
> > > > service's
> > > > requirements.
> > > > 
> > > > I should've flipped the default at 2.0.0 but didn't think of
> > > > it.
> > > > Now
> > > > we'll have to wait a decade for 3.0.0 :) or maybe we can
> > > > justify
> > > > doing
> > > > it in a minor bump in a few years.
> > > 
> > > If you ever change the default, the DTD major version should be
> > > incremented (the default value is coded in the DTD, I guess),
> > > independently of the usefulness of the change. (MHO)
> > > However looking at the RNGs, I couldn't find it...
> > > 
> > > [...]
> > > 
> > > Regards,
> > > Ulrich
> > 
> > The RNGs replace the old DTD (which was actually removed in 2.0.0).
> > The
> > RNG version is in the file name (e.g. in pacemaker‑3.2.rng, 3.2 is
> > the
> > schema version, not the software version).
> > 
> > The schema major version is bumped when an XSLT transform is needed
> > to
> > upgrade from the previous version; the minor version is for
> > backward‑
> > compatible additions. A change in a default value wouldn't by
> > itself
> > necessitate any schema version changes, but if we decided to use a
> > transform to map any unspecified interleave in old CIBs to an
> > explicit
> > interleave=false, that would get a major bump.
> 
> Hi!
> 
> As said before, I could not find the default value in the RNGs, but I
> knew
> that the default attribute values are written in classic DTDs. So if
> you change
> the default (via DTD), the same input file would have a different
> meaning.
> That's why I think a change in the DTD (or however you name it)
> version is
> necessary...
> 
> Regards,
> Ulrich

Ah, I see.

With pre-1.0 pacemaker's DTD, interleave was an XML attribute of the
clone element, and thus it was in the schema. However since 1.0.0, it's
a pacemaker meta-attribute, which is expressed in XML as an <nvpair>
element with name="interleave", and thus is not in the schema. (Name
and value are arbitrary strings in the schema.)

Additionally, RNG doesn't normally list attribute default values,
though there is an extension for DTD compatibility that allows them as
annotations.

We could theoretically change the schema to list all pacemaker-
significant meta-attribute names individually, with default values as
annotations, but that's more effort than it's probably worth. For now,
the "Pacemaker Explained" documentation is the best reference for
default values.
-- 
Ken Gaillot <kgaillot at redhat.com>



More information about the Users mailing list