** Description changed: - UCA Rocky has older versions than UCA Stein for some Ceph python2 - packages, e.g., python-cephfs. + Some ceph python2 packages have been dropped between rocky and stein. + (in Disco, from 13.2.1+dfsg1-0ubuntu3 to 13.2.2+dfsg1-0ubuntu1 [1]). - This is an issue for versioned dependencies that require an exact - version that isn't there. + The packages python-{cephfs,rados,rbd} have no upgrades, but have exact + versioned dependencies on packages that have upgrades. - 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.) + So, during `apt upgrade` the former block the latter from being + upgraded, which in turn block other ceph packages from being upgraded + (e.g., ceph-{common,mon,osd,mgr}). - Example: + Note this isn't a problem on `apt full-upgrade` or `apt dist-upgrade` as + these allow package removals (`apt upgrade` does not), then `apt` just + decides to remove those 3 packages. - $ 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 - ... + It's possible to fix this with dummy transitional packages that remove + the exact versioned dependency (patch provided/tested in comment #5). + + [1] https://launchpad.net/ubuntu/+source/ceph/13.2.2+dfsg1-0ubuntu1 + + Steps to Reproduce: + --- Setup Bionic container: - --- - $ lxc launch ubuntu:bionic mfo-bionic-uca - $ ssh mfo-bionic-uca.lxd + $ lxc launch ubuntu:bionic bionic-uca + $ lxc exec bionic-uca -- su - ubuntu $ 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: - --- + Upgrade to 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 + 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: - --- + Upgrade to 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 + ceph ceph-base ceph-common ceph-mgr ceph-mon ceph-osd libcephfs2 librados2 libradosstriper1 librbd1 ... + + Issue above. + Check: --- $ sudo apt -o Debug::pkgProblemResolver=1 --dry-run upgrade - ... - Entering ResolveByKeep 10% + ... + 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 + 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: - ----- + Details: + ------- 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.
** Description changed: - Some ceph python2 packages have been dropped between rocky and stein. + The ceph python2 packages have been dropped between rocky and stein. (in Disco, from 13.2.1+dfsg1-0ubuntu3 to 13.2.2+dfsg1-0ubuntu1 [1]). The packages python-{cephfs,rados,rbd} have no upgrades, but have exact versioned dependencies on packages that have upgrades. So, during `apt upgrade` the former block the latter from being upgraded, which in turn block other ceph packages from being upgraded (e.g., ceph-{common,mon,osd,mgr}). Note this isn't a problem on `apt full-upgrade` or `apt dist-upgrade` as these allow package removals (`apt upgrade` does not), then `apt` just decides to remove those 3 packages. It's possible to fix this with dummy transitional packages that remove the exact versioned dependency (patch provided/tested in comment #5). [1] https://launchpad.net/ubuntu/+source/ceph/13.2.2+dfsg1-0ubuntu1 Steps to Reproduce: --- - Setup Bionic container: $ lxc launch ubuntu:bionic bionic-uca $ lxc exec bionic-uca -- su - ubuntu $ 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 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 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 ... Issue above. - 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 ... Details: ------- 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. -- 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