Monday 27 May 2019

[Proposal] Roll back pcs to version 0.9.166-5 in Disco

Hi all,

The current pcs version in Disco is incompatible with Pacemaker 1 and Corosync
2. This was probably a result of pulling the Debian version of pcs during the
Devel period, at which point Debian was already shipping pacemaker-2.x and
corosync-3.x. As one can see from rmadison, this is not currently the case for
Disco:
$ rmadison pacemaker -s disco-updates
pacemaker | 1.1.18-2ubuntu1.19.04.1 | disco-updates | source, amd64,
arm64, armhf, i386, ppc64el, s390x

$ rmadison corosync -s disco
corosync | 2.4.4-3 | disco | source, amd64, arm64, armhf, i386, ppc64el, s390x

This creates a problem when trying to install pcs together with pacemaker in
Disco, as the current pcs package has a "Breaks" rule for Pacemaker versions
below 2.0 (LP: #1826045):
# apt install -y pacemaker pcs
...
The following packages have unmet dependencies:
pcs : Breaks: pacemaker (< 2.0) but 1.1.18-2ubuntu1 is to be installed
Recommends: pacemaker (>= 2.0) but 1.1.18-2ubuntu1 is to be installed
E: Unable to correct problems, you have held broken packages.

To fix this issue, we could update both pacemaker and corosync to their latest
major release from upstream to make them compatible with pcs again.
Unfortunately, this would require us to re-test two "hot" packages with a lot of
reverse dependencies, and could potentially break other packages in Disco that
are relying on their current version.

Another approach we could try is removing the "Breaks" rule in debian/control
for pcs. This probably won't work, as the upstream pcs changelog mentions that
versions 0.10+ are not compatible with Pacemaker 1. There are _a lot_ of changes
between 0.9.166 (latest version with Pacemaker 1 support) and the current 0.10
release, and from a quick look at the commits I believe we could see lots of
breakage by "forcing" the incompatible versions of Pacemaker and pcs together:
$ git log --oneline 0.9.166..0.10.1 | wc -l
453
$ git log --oneline 0.9.166..0.10.1 | grep pacemaker-2
f219e112e26b update pacemaker exit codes to match pacemaker-2.0
9d25f1be2b8d Merge branch 'pacemaker-2-daemons'
330cbee67cd9 use pacemaker-2.0 daemon names
ea61079ee3fd refer to pacemaker-2.0 daemon man pages in usage
592bf806beb2 Man: pcs.8: primarily refer to the new pacemaker-2.0
daemon man pages
4339c635ee73 test: fixes for pacemaker-2.x

A simpler alternative would be to roll back the pcs package to a 0.9.x release,
before it became incompatible with older pacemaker/corosync versions. Although
this is certainly not an ideal solution, it would be less effort to back level
pcs to a tested version from Debian instead of changing two "high profile"
packages to untested versions.

So, I would like to propose downgrading pcs in Disco back to version
0.9.166-5. This is the latest 0.9.x release from Debian before the
incompatibility changes were introduced. Since this version has seen extensive
testing in both Debian and upstream, I don't believe we should have any troubles
with regressions. It's also much closer to Cosmic's 0.9.165-1 version, which has
been tested by the Ubuntu community for some time now. I did a test build for
pcs by taking Debian's 0.9.166-5 and adjusting its changelog to match the
current version in Disco. Some regular use-case tests and autopkgtest runs
confirmed that things look good.

We have an open Launchpad bug to track this at [0], and I've uploaded
pcs-0.10.1-2+really0.9.166-5 to my personal test PPA to validate the proposed
changes [1]. I would greatly appreciate feedback on this approach, and how best
to fix the pcs package.

Cheers,
Heitor

[0] https://bugs.launchpad.net/bugs/1826045
[1] https://launchpad.net/~halves/+archive/ubuntu/test/+packages

--
ubuntu-devel mailing list
ubuntu-devel@lists.ubuntu.com
Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel