Public bug reported: Upgrading OpenStack from Queens to Rocky results in removal of neutron-l3-agent package which leads to a networking outage.
The issue with the fact that first python3 packages are installed and then python2 packages are purged. The neutron-l3-agent package depends on both. At the same time neutron-dhcp-agent survives the upgrade while both packages seem to have identical "Depends" directives for python[3]-neutron: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/neutron/tree/debian/control?h=stable/rocky#n178 Package: neutron-l3-agent Architecture: all Depends: conntrack, iputils-arping, keepalived, neutron-metadata-agent (= ${source:Version}), python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), python-neutron-fwaas (>= 1:13.0.0~) | python3-neutron-fwaas (>= 1:13.0.0~), https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/neutron/tree/debian/control?h=stable/rocky#n156 Package: neutron-dhcp-agent Architecture: all Depends: dnsmasq-base (>= 2.76), dnsmasq-utils (>= 2.76), neutron-metadata-agent (= ${source:Version}), python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), When I try to install neutron-l3-agent it tries to pull python2 dependencies again (even though the python3 ones are already there): https://paste.ubuntu.com/p/J7Vq8KKnBf/ More info below: ------ 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Selecting previously unselected package neutron-l3-agent. 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Preparing to unpack .../6-neutron-l3-agent_2%3a12.0.5-0ubuntu1_all.deb ... 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Unpacking neutron-l3-agent (2:12.0.5-0ubuntu1) ... 2019-05-07 16:42:47 DEBUG neutron-plugin-api-relation-changed Setting up neutron-l3-agent (2:12.0.5-0ubuntu1) ... 2019-05-07 16:42:47 DEBUG neutron-plugin-api-relation-changed Created symlink /etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service → /lib/systemd/syst em/neutron-l3-agent.service. /var/log/apt/term.log: update-alternatives: using /usr/bin/python3-nova-metadata-wsgi to provide /usr/bin/nova-metadata-wsgi (nova-metadata-wsgi) in auto mode (Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading database ... 15%^M(Reading database ... 20%^M(Reading database ... 25%^M(Reading database ... 30%^M(Reading database ... 35%^M(Reading database ... 40%^M(Reading database ... 45%^M(Reading database ... 50%^M(Reading database ... 55%^M(Reading database ... 60%^M(Reading database ... 65%^M(Reading database ... 70%^M(Reading database ... 75%^M(Reading database ... 80%^M(Reading database ... 85%^M(Reading database ... 90%^M(Reading database ... 95%^M(Reading database ... 100%^M(Reading database ... 113229 files and directories currently installed.) Purging configuration files for python-neutron (2:13.0.2-0ubuntu1~cloud0) ... Purging configuration files for neutron-l3-agent (2:13.0.2-0ubuntu1~cloud0) ... Purging configuration files for python-neutron-fwaas (1:13.0.1-0ubuntu1~cloud0) ... Purging configuration files for python-nova (2:18.1.0-0ubuntu1~cloud0) ... Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.21) ... Log ended: 2019-05-08 13:46:55 /var/log/apt/history.log: # install python3 packages Start-Date: 2019-05-08 13:45:18 Commandline: apt-get --assume-yes --option=Dpkg::Options::=--force-confold install nova-compute genisoimage librbd1 xfsprogs nfs-common ceph-common nova-compute-kvm n ova-api-metadata python3-nova python3-memcache python3-rados python3-rbd python3-neutron # purge python2 packages Start-Date: 2019-05-08 13:46:40 Commandline: apt-get --assume-yes purge python-neutron python-nova Purge: neutron-l3-agent:amd64 (2:13.0.2-0ubuntu1~cloud0), python-nova:amd64 (2:18.1.0-0ubuntu1~cloud0), python-neutron:amd64 (2:13.0.2-0ubuntu1~cloud0), python-neutron-fwaas:amd64 (1:13.0.1-0ubuntu1~cloud0) End-Date: 2019-05-08 13:46:55 apt policy python3-neutron https://paste.ubuntu.com/p/3vKsFBf9Hn/ apt-rdepends: neutron-l3-agent Depends: conntrack Depends: iputils-arping Depends: keepalived Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) Depends: python-neutron-fwaas (>= 1:13.0.0~) Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) Depends: python3-neutron-fwaas (>= 1:13.0.0~) # ... neutron-dhcp-agent Depends: dnsmasq-base (>= 2.76) Depends: dnsmasq-utils (>= 2.76) Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) # ... Charm code: https://opendev.org/openstack/charm-neutron-openvswitch/src/branch/stable/19.04/hooks/neutron_ovs_utils.py#L323-L325 if cmp_release >= 'rocky': return PURGE_PACKAGES return [] https://opendev.org/openstack/charm-neutron-openvswitch/src/branch/master/hooks/neutron_ovs_utils.py#L119-L122 PURGE_PACKAGES = [ 'python-neutron', 'python-neutron-fwaas', ] https://opendev.org/openstack/charm-neutron- openvswitch/src/branch/master/hooks/neutron_ovs_hooks.py#L115-L124 install_packages() install_tmpfilesd() # NOTE(jamespage): purge any packages as a result of py3 switch # at rocky. packages_to_purge = determine_purge_packages() request_nova_compute_restart = False if packages_to_purge: purge_packages(packages_to_purge) request_nova_compute_restart = True ** Affects: neutron (Ubuntu) Importance: Undecided Status: New ** Tags: cpe-onsite ** Description changed: - [rocky][19.04] Upgrading a DVR deployment from Queens to Rocky purged - neutron-l3-agent package - Upgrading OpenStack from Queens to Rocky results in removal of neutron-l3-agent package which leads to a networking outage. The issue with the fact that first python3 packages are installed and then python2 packages are purged. The neutron-l3-agent package depends on both. At the same time neutron-dhcp-agent survives the upgrade while both packages seem to have identical "Depends" directives for python[3]-neutron: https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/neutron/tree/debian/control?h=stable/rocky#n178 Package: neutron-l3-agent Architecture: all Depends: - conntrack, - iputils-arping, - keepalived, - neutron-metadata-agent (= ${source:Version}), - python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), - python-neutron-fwaas (>= 1:13.0.0~) | python3-neutron-fwaas (>= 1:13.0.0~), + conntrack, + iputils-arping, + keepalived, + neutron-metadata-agent (= ${source:Version}), + python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), + python-neutron-fwaas (>= 1:13.0.0~) | python3-neutron-fwaas (>= 1:13.0.0~), https://git.launchpad.net/~ubuntu-server-dev/ubuntu/+source/neutron/tree/debian/control?h=stable/rocky#n156 Package: neutron-dhcp-agent Architecture: all Depends: - dnsmasq-base (>= 2.76), - dnsmasq-utils (>= 2.76), - neutron-metadata-agent (= ${source:Version}), - python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), + dnsmasq-base (>= 2.76), + dnsmasq-utils (>= 2.76), + neutron-metadata-agent (= ${source:Version}), + python-neutron (= ${source:Version}) | python3-neutron (= ${source:Version}), When I try to install neutron-l3-agent it tries to pull python2 dependencies again (even though the python3 ones are already there): https://paste.ubuntu.com/p/J7Vq8KKnBf/ More info below: ------ 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Selecting previously unselected package neutron-l3-agent. 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Preparing to unpack .../6-neutron-l3-agent_2%3a12.0.5-0ubuntu1_all.deb ... 2019-05-07 16:42:41 DEBUG neutron-plugin-api-relation-changed Unpacking neutron-l3-agent (2:12.0.5-0ubuntu1) ... 2019-05-07 16:42:47 DEBUG neutron-plugin-api-relation-changed Setting up neutron-l3-agent (2:12.0.5-0ubuntu1) ... 2019-05-07 16:42:47 DEBUG neutron-plugin-api-relation-changed Created symlink /etc/systemd/system/multi-user.target.wants/neutron-l3-agent.service → /lib/systemd/syst em/neutron-l3-agent.service. - /var/log/apt/term.log: update-alternatives: using /usr/bin/python3-nova-metadata-wsgi to provide /usr/bin/nova-metadata-wsgi (nova-metadata-wsgi) in auto mode (Reading database ... ^M(Reading database ... 5%^M(Reading database ... 10%^M(Reading database ... 15%^M(Reading database ... 20%^M(Reading database ... 25%^M(Reading database ... 30%^M(Reading database ... 35%^M(Reading database ... 40%^M(Reading database ... 45%^M(Reading database ... 50%^M(Reading database ... 55%^M(Reading database ... 60%^M(Reading database ... 65%^M(Reading database ... 70%^M(Reading database ... 75%^M(Reading database ... 80%^M(Reading database ... 85%^M(Reading database ... 90%^M(Reading database ... 95%^M(Reading database ... 100%^M(Reading database ... 113229 files and directories currently installed.) Purging configuration files for python-neutron (2:13.0.2-0ubuntu1~cloud0) ... Purging configuration files for neutron-l3-agent (2:13.0.2-0ubuntu1~cloud0) ... Purging configuration files for python-neutron-fwaas (1:13.0.1-0ubuntu1~cloud0) ... Purging configuration files for python-nova (2:18.1.0-0ubuntu1~cloud0) ... Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.21) ... Log ended: 2019-05-08 13:46:55 - /var/log/apt/history.log: # install python3 packages Start-Date: 2019-05-08 13:45:18 Commandline: apt-get --assume-yes --option=Dpkg::Options::=--force-confold install nova-compute genisoimage librbd1 xfsprogs nfs-common ceph-common nova-compute-kvm n ova-api-metadata python3-nova python3-memcache python3-rados python3-rbd python3-neutron # purge python2 packages Start-Date: 2019-05-08 13:46:40 Commandline: apt-get --assume-yes purge python-neutron python-nova Purge: neutron-l3-agent:amd64 (2:13.0.2-0ubuntu1~cloud0), python-nova:amd64 (2:18.1.0-0ubuntu1~cloud0), python-neutron:amd64 (2:13.0.2-0ubuntu1~cloud0), python-neutron-fwaas:amd64 (1:13.0.1-0ubuntu1~cloud0) End-Date: 2019-05-08 13:46:55 apt policy python3-neutron https://paste.ubuntu.com/p/3vKsFBf9Hn/ apt-rdepends: neutron-l3-agent - Depends: conntrack - Depends: iputils-arping - Depends: keepalived - Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) - Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) - Depends: python-neutron-fwaas (>= 1:13.0.0~) - Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) - Depends: python3-neutron-fwaas (>= 1:13.0.0~) + Depends: conntrack + Depends: iputils-arping + Depends: keepalived + Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) + Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) + Depends: python-neutron-fwaas (>= 1:13.0.0~) + Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) + Depends: python3-neutron-fwaas (>= 1:13.0.0~) # ... neutron-dhcp-agent - Depends: dnsmasq-base (>= 2.76) - Depends: dnsmasq-utils (>= 2.76) - Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) - Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) - Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) + Depends: dnsmasq-base (>= 2.76) + Depends: dnsmasq-utils (>= 2.76) + Depends: neutron-metadata-agent (= 2:13.0.2-0ubuntu1~cloud0) + Depends: python-neutron (= 2:13.0.2-0ubuntu1~cloud0) + Depends: python3-neutron (= 2:13.0.2-0ubuntu1~cloud0) # ... - Charm code: https://opendev.org/openstack/charm-neutron-openvswitch/src/branch/stable/19.04/hooks/neutron_ovs_utils.py#L323-L325 - if cmp_release >= 'rocky': - return PURGE_PACKAGES - return [] + if cmp_release >= 'rocky': + return PURGE_PACKAGES + return [] https://opendev.org/openstack/charm-neutron-openvswitch/src/branch/master/hooks/neutron_ovs_utils.py#L119-L122 PURGE_PACKAGES = [ - 'python-neutron', - 'python-neutron-fwaas', + 'python-neutron', + 'python-neutron-fwaas', ] https://opendev.org/openstack/charm-neutron- openvswitch/src/branch/master/hooks/neutron_ovs_hooks.py#L115-L124 - install_packages() - install_tmpfilesd() + install_packages() + install_tmpfilesd() - # NOTE(jamespage): purge any packages as a result of py3 switch - # at rocky. - packages_to_purge = determine_purge_packages() - request_nova_compute_restart = False - if packages_to_purge: - purge_packages(packages_to_purge) - request_nova_compute_restart = True + # NOTE(jamespage): purge any packages as a result of py3 switch + # at rocky. + packages_to_purge = determine_purge_packages() + request_nova_compute_restart = False + if packages_to_purge: + purge_packages(packages_to_purge) + request_nova_compute_restart = True -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1828259 Title: [rocky][19.04] Upgrading a deployment from Queens to Rocky resulted in purging of neutron-l3-agent package To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/1828259/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs