Public bug reported:

UCA Rocky has older versions than UCA Stein for some Ceph python2
packages, e.g., python-cephfs.

This is an issue for versioned dependencies that require an exact
version that isn't there.

The apt solution is removing packages, but that's not allowed on `apt
upgrade`, thus `apt` keeps back / doesn't upgrade some ceph packages
(`apt full-upgrade` can remove/works fine.)

Example:

        $ apt-cache madison python-cephfs
        python-cephfs | 13.2.8-0ubuntu0.18.10.1~cloud0 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main 
amd64 Packages
        python-cephfs | 13.2.1+dfsg1-0ubuntu3~cloud0 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/stein/main 
amd64 Packages
        ...


Setup Bionic container:
---

$ lxc launch ubuntu:bionic mfo-bionic-uca
$ ssh mfo-bionic-uca.lxd

$ sudo apt --yes purge unattended-upgrades
$ sudo apt update


Install ceph from Bionic (Queens):
---

$ sudo apt --yes install ceph

$ dpkg -s ceph | grep Version
Version: 12.2.13-0ubuntu0.18.04.10


Upgrade to ceph from UCA Rocky:
---

$ sudo add-apt-repository --yes cloud-archive:rocky

$ sudo apt --dry-run upgrade
...
The following packages will be upgraded:
  ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd libcephfs2 librados2 
libradosstriper1 librbd1 python-cephfs python-pecan python-rados python-rbd
  python-webob python3-jsonpatch
...

$ sudo apt --yes upgrade

$ dpkg -s ceph | grep Version
Version: 13.2.8-0ubuntu0.18.10.1~cloud0


Upgrade to ceph from UCA Stein:
---

$ sudo add-apt-repository --yes cloud-archive:stein

$ sudo apt --dry-run upgrade
...
The following packages have been kept back:
  ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd libcephfs2 librados2 
libradosstriper1 librbd1
...

Check:
---

$ sudo apt -o Debug::pkgProblemResolver=1 --dry-run upgrade
        ...
        Entering ResolveByKeep 10%

          Dependencies are not satisfied for python-cephfs:amd64 < 
13.2.8-0ubuntu0.18.10.1~cloud0 @ii mK Ib >
        Keeping package python-cephfs:amd64
          Dependencies are not satisfied for python-cephfs:amd64 < 
13.2.8-0ubuntu0.18.10.1~cloud0 @ii mK Ib >
        Package python-cephfs:amd64 python-cephfs:amd64 Depends on 
libcephfs2:amd64 < 13.2.8-0ubuntu0.18.10.1~cloud0 -> 
13.2.9-0ubuntu0.19.04.1~cloud3 @ii umU > (= 13.2
        .8-0ubuntu0.18.10.1~cloud0)
          Keeping Package libcephfs2:amd64 due to Depends

...

Issue:
-----

python-cephfs at version 13.2.__8__ has exact version dep on libcephfs2,
which is being upgraded to 13.2.__9__.

Why isn't python-cephfs being upgraded to 13.2.__9__ too?

AH, there's no 13.2.__9__ version for python-cephfs, only for libcephfs2.
So, it stopped on 13.2.__8__ in UCA Rocky, there's no 13.2.__9__ in UCA Stein, 
as there's for libcephfs2.

Why is that?

OH, wait. UCA Stein does have python-cephfs, but in an _older_ version than UCA 
Rocky: 13.2.__1__.
(but it has _newer_ libcephfs2, ahhh OK; there's the mismatch)

        ubuntu@mfo-bionic-uca:~$ apt-cache madison python-cephfs
        python-cephfs | 13.2.8-0ubuntu0.18.10.1~cloud0 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main 
amd64 Packages
        python-cephfs | 13.2.1+dfsg1-0ubuntu3~cloud0 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/stein/main 
amd64 Packages
        python-cephfs | 12.2.13-0ubuntu0.18.04.10 | 
http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        python-cephfs | 12.2.13-0ubuntu0.18.04.10 | 
http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        python-cephfs | 12.2.4-0ubuntu1 | http://archive.ubuntu.com/ubuntu 
bionic/main amd64 Packages

        ubuntu@mfo-bionic-uca:~$ apt-cache madison libcephfs2
        libcephfs2 | 13.2.9-0ubuntu0.19.04.1~cloud3 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/stein/main 
amd64 Packages
        libcephfs2 | 13.2.8-0ubuntu0.18.10.1~cloud0 | 
http://ubuntu-cloud.archive.canonical.com/ubuntu bionic-updates/rocky/main 
amd64 Packages
        libcephfs2 | 12.2.13-0ubuntu0.18.04.10 | 
http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
        libcephfs2 | 12.2.13-0ubuntu0.18.04.10 | 
http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
        libcephfs2 | 12.2.4-0ubuntu1 | http://archive.ubuntu.com/ubuntu 
bionic/main amd64 Packages

Ah, the python*2* pkg is no longer built after that version:

        Page 
https://launchpad.net/ubuntu/+source/ceph/13.2.1+dfsg1-0ubuntu3/+build/15590380
        Has python3-cephfs 13.2.1+dfsg1-0ubuntu3
        And python-cephfs 13.2.1+dfsg1-0ubuntu3

        Page 
https://launchpad.net/ubuntu/+source/ceph/13.2.2+dfsg1-0ubuntu4/+build/15747822
        Has python3-cephfs 13.2.2+dfsg1-0ubuntu4
        NOT python-cephfs

But how did UCA Rocky get it.
Hm, it's from 13.2.__8__.  
Is it an UCA only thing?

        Yes, page not found w/out ~cloud suffix
                
https://launchpad.net/ubuntu/+source/ceph/13.2.8-0ubuntu0.18.10.1
        Disco goes up to 13.2.7.
                https://launchpad.net/ubuntu/disco/+source/ceph
        Eoan starts on 13.2.4 then jumps to 14.2.1:
                https://launchpad.net/ubuntu/eoan/+source/ceph

So maybe do equivalently on Stein.


And.. it's been reported that installing just `ceph-common` works, and it 
actually REMOVES those.

ubuntu@mfo-bionic-uca:~$ sudo apt --dry-run install ceph-common
...
The following packages will be REMOVED:
  python-cephfs python-rados python-rbd
...
The following packages will be upgraded:
  ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd libcephfs2 librados2 
libradosstriper1 librbd1
...

          
And that's why `apt upgrade` doesn't work; it CANNOT remove packages.

Ok, so `apt full-upgrade` does WORK, as it CAN:

man 8 apt

       upgrade (apt-get(8))
           ... If an upgrade for a package
           requires the remove of an installed package the upgrade for this 
package isn't performed.

       full-upgrade (apt-get(8))
           full-upgrade performs the function of upgrade but will remove 
currently installed packages if this is needed to upgrade the system as a whole.

And there we go.

ubuntu@mfo-bionic-uca:~$ sudo apt --dry-run full-upgrade
...
The following packages will be REMOVED:
  python-cephfs python-rados python-rbd
The following NEW packages will be installed:
...
The following packages will be upgraded:
  ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd ibverbs-providers 
libcephfs2 libibverbs1 libnuma1 librados2 libradosstriper1 librbd1
  python-pkg-resources python-setuptools python-webob python3-jwt 
python3-pkg-resources
...

Yeah, so it seems the issue is UCA Stein having older versions of some
packages than UCA Rocky.

** Affects: ceph (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1960065

Title:
  cloud archive: apt upgrade from rocky to stein keeps back some ceph
  packages

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1960065/+subscriptions


-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to