Package: ganeti-3.0
Version: 3.0.1-2
Severity: normal

Hello,

I've just performed an upgrade of a ganeti cluster from buster+2.16 to
bullseye+3.0 and hit a problem during the upgrade.

The procedure that I used was to:

 1. install ganeti 3.0 from buster-backports and upgrade the cluster
 2. run OS upgrade from buster to bullseye (I had not removed ganeti 2.16)

During the upgrade to bullseye, ganeti was upgraded from the 3.0 backports
package to the same one from bullseye. At that point, dpkg stopped with an
error. Running "apt -f install" to fix the situation did not clear things up.
Running "apt purge ganeti-2.16 ganeti-haskell-2.16 ganeti-htools-2.16" was
jammed on a conflict of configuration files with 3.0:

# apt -f install
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  at-spi2-core bsdmainutils libapt-inst2.0 libevent-core-2.1-6
  libevent-pthreads-2.1-6 libhogweed4 libnftables0 libprocps7 libreadline5
  python3-asn1crypto python3.7 python3.7-minimal
Use 'apt autoremove' to remove them.
The following additional packages will be installed:
  ganeti-3.0
The following packages will be upgraded:
  ganeti-3.0
1 upgraded, 0 newly installed, 0 to remove and 497 not upgraded.
323 not fully installed or removed.
Need to get 0 B/876 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]
Reading changelogs... Done
Preconfiguring packages ...
(Reading database ... 64433 files and directories currently installed.)
Preparing to unpack .../ganeti-3.0_3.0.1-2_all.deb ...
Unpacking ganeti-3.0 (3.0.1-2) over (3.0.1-1~bpo10+1) ...
Removing 'diversion of /usr/share/ganeti/2.16/ganeti/utils/version.py to 
/usr/share/ganeti/2.16/ganeti/utils/version.py.orig by ganeti-3.0'
dpkg-divert: error: rename involves overwriting 
'/usr/share/ganeti/2.16/ganeti/utils/version.py' with
  different file '/usr/share/ganeti/2.16/ganeti/utils/version.py.orig', not 
allowed
dpkg: warning: old ganeti-3.0 package post-removal script subprocess returned 
error
exit status 2
dpkg: trying script from the new package instead ...
Removing 'diversion of /usr/share/ganeti/2.16/ganeti/utils/version.py to 
/usr/share/ganeti/2.16/ganeti/utils/version.py.orig by ganeti-3.0'
dpkg-divert: error: rename involves overwriting 
'/usr/share/ganeti/2.16/ganeti/utils/version.py' with
  different file '/usr/share/ganeti/2.16/ganeti/utils/version.py.orig', not 
allowed
dpkg: error processing archive 
/var/cache/apt/archives/ganeti-3.0_3.0.1-2_all.deb (--unpack):
 new ganeti-3.0 package post-removal script subprocess returned error exit 
status 2
Removing 'diversion of /usr/share/ganeti/2.16/ganeti/utils/version.py to 
/usr/share/ganeti/2.16/ganeti/utils/version.py.orig by ganeti-3.0'
dpkg-divert: error: rename involves overwriting 
'/usr/share/ganeti/2.16/ganeti/utils/version.py' with
  different file '/usr/share/ganeti/2.16/ganeti/utils/version.py.orig', not 
allowed
dpkg: error while cleaning up:
 new ganeti-3.0 package post-removal script subprocess returned error exit 
status 2
Errors were encountered while processing:
 /var/cache/apt/archives/ganeti-3.0_3.0.1-2_all.deb
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)


In order to get out of that situation, we had to modify the postrm script in
/var/lib/dpkg/info/ganeti-3.0.postrm to comment out the dpkg-diver --remove
command. That permitted the package to finish upgrading and the os upgrade to
complete. Once the upgrade was completed, I was able to purge ganeti 2.16 (and
I had to manually remove the diversion that was left behind)

I'm guessing this happened because the ganeti 2.16 packages were still in
place. But it was a situation quite difficult to work around of. I'm wondering
if something can be done to avoid this situation.

-- System Information:
Debian Release: bookworm/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_CPU_OUT_OF_SPEC
Locale: LANG=en_CA.UTF-8, LC_CTYPE=en_CA.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages ganeti-3.0 depends on:
ii  adduser                3.118
pn  bridge-utils           <none>
ii  debconf [debconf-2.0]  1.5.77
pn  fping                  <none>
ii  iproute2               5.13.0-2
pn  iputils-arping         <none>
ii  libcap2-bin            1:2.44-1
ii  lvm2                   2.03.11-2.1
ii  openssh-client         1:8.4p1-6
ii  openssh-server         1:8.4p1-6
ii  openssl                1.1.1l-1
ii  python3                3.9.2-3
pn  python3-bitarray       <none>
pn  python3-openssl        <none>
ii  python3-paramiko       2.7.2-1
ii  python3-psutil         5.8.0-1
ii  python3-pycurl         7.44.1-1
pn  python3-pyinotify      <none>
ii  python3-pyparsing      2.4.7-1
ii  python3-simplejson     3.17.5-1
ii  socat                  1.7.4.1-3

ganeti-3.0 recommends no packages.

ganeti-3.0 suggests no packages.

Reply via email to