After Fabian had sent his patch [0] we actually thought that this patch for pve5to6 would be obsolete. Upgrades as well as fresh installs worked flawlessly in my tests. Consequently, I removed the hint from the upgrade documentation [1] and marked the bug [2] as fixed. Before writing you this, I tested everything again and, unfortunately, something (or maybe multiple things) seems to be broken now.

1) On a fully updated PVE 6 with glusterfs-server 5.5-3 from Debian.
Adding the upstream Gluster repos and then apt install glusterfs-server (no full-upgrade yet) makes problems. systemctl start glusterd does not
work anymore. Some gluser related packages remain upgradeable

libgfapi0/unknown 6.5-1 amd64 [upgradable from: 5.5-3]
libgfchangelog0/unknown 6.5-1 amd64 [upgradable from: 5.5-3]
libgfrpc0/unknown 6.5-1 amd64 [upgradable from: 5.5-3]
libgfxdr0/unknown 6.5-1 amd64 [upgradable from: 5.5-3]
libglusterfs-dev/unknown 6.5-1 amd64 [upgradable from: 5.5-3]
libglusterfs0/unknown 6.5-1 amd64 [upgradable from: 5.5-3]

After apt full-upgrade systemctl start glusterd works perfect. I assume some dependency should be for a newer version?


2) On a fully updated (no-subscription) PVE 5 with only glusterfs-common & client (no glusterfs-server) 6.5-1 from upstream Gluster the upgrade to PVE 6 works with only a warning

Preparing to unpack .../00-glusterfs-common_6.5-1_amd64.deb ...
Unpacking glusterfs-common (6.5-1) over (6.5-1) ...
dpkg: warning: unable to delete old directory '/etc/glusterfs': Directory not empty


3) On a fully updated (no-subscription) PVE 5 with glusterfs-common, client _and_ glusterfs-server 6.5-1 from upstream Gluster the upgrade to PVE 6 aborts because dpkg throws multiple errors

Preparing to unpack .../00-glusterfs-common_6.5-1_amd64.deb ...
Unpacking glusterfs-common (6.5-1) over (6.5-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/00-glusterfs-common_6.5-1_amd64.deb (--unpack): trying to overwrite '/usr/share/glusterfs/scripts/eventsdash.py', which is also in package glusterfs-server 6.5-1
Selecting previously unselected package libglusterfs0:amd64.
dpkg: regarding .../01-libglusterfs0_6.5-1_amd64.deb containing libglusterfs0:amd64:
 glusterfs-common conflicts with libglusterfs0
  libglusterfs0:amd64 (version 6.5-1) is to be installed.

dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/01-libglusterfs0_6.5-1_amd64.deb (--unpack):
 conflicting packages - not installing libglusterfs0:amd64
Selecting previously unselected package libgfxdr0:amd64.
Preparing to unpack .../02-libgfxdr0_6.5-1_amd64.deb ...
Unpacking libgfxdr0:amd64 (6.5-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/02-libgfxdr0_6.5-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/libgfxdr.so.0.0.1', which is also in package glusterfs-common 6.5-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package libgfrpc0:amd64.
Preparing to unpack .../03-libgfrpc0_6.5-1_amd64.deb ...
Unpacking libgfrpc0:amd64 (6.5-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/03-libgfrpc0_6.5-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/libgfrpc.so.0.0.1', which is also in package glusterfs-common 6.5-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package libgfapi0:amd64.
Preparing to unpack .../04-libgfapi0_6.5-1_amd64.deb ...
Unpacking libgfapi0:amd64 (6.5-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/04-libgfapi0_6.5-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/libgfapi.so.0.0.0', which is also in package glusterfs-common 6.5-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package libgfchangelog0:amd64.
Preparing to unpack .../05-libgfchangelog0_6.5-1_amd64.deb ...
Unpacking libgfchangelog0:amd64 (6.5-1) ...
dpkg: error processing archive /tmp/apt-dpkg-install-dr5AeK/05-libgfchangelog0_6.5-1_amd64.deb (--unpack): trying to overwrite '/usr/lib/x86_64-linux-gnu/libgfchangelog.so.0.0.1', which is also in package glusterfs-common 6.5-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Selecting previously unselected package libncurses6:amd64.
Preparing to unpack .../06-libncurses6_6.1+20181013-2_amd64.deb ...
Unpacking libncurses6:amd64 (6.1+20181013-2) ...
Selecting previously unselected package liburcu6:amd64.
Preparing to unpack .../07-liburcu6_0.10.2-1_amd64.deb ...
Unpacking liburcu6:amd64 (0.10.2-1) ...
Selecting previously unselected package python3-jwt.
Preparing to unpack .../08-python3-jwt_1.7.0-2_all.deb ...
Unpacking python3-jwt (1.7.0-2) ...
Preparing to unpack .../09-libaio1_0.3.112-3_amd64.deb ...
Unpacking libaio1:amd64 (0.3.112-3) over (0.3.110-3) ...
Preparing to unpack .../10-libnl-route-3-200_3.4.0-1_amd64.deb ...
Unpacking libnl-route-3-200:amd64 (3.4.0-1) over (3.2.27-2) ...
Preparing to unpack .../11-libnl-3-200_3.4.0-1_amd64.deb ...
Unpacking libnl-3-200:amd64 (3.4.0-1) over (3.2.27-2) ...
Preparing to unpack .../12-libibverbs1_22.1-1_amd64.deb ...
Unpacking libibverbs1:amd64 (22.1-1) over (1.2.1-2) ...
Preparing to unpack .../13-librdmacm1_22.1-1_amd64.deb ...
Unpacking librdmacm1:amd64 (22.1-1) over (1.1.0-2) ...
Selecting previously unselected package libicu63:amd64.
Preparing to unpack .../14-libicu63_63.1-6_amd64.deb ...
Unpacking libicu63:amd64 (63.1-6) ...
Preparing to unpack .../15-libxml2_2.9.4+dfsg1-7+b3_amd64.deb ...
Unpacking libxml2:amd64 (2.9.4+dfsg1-7+b3) over (2.9.4+dfsg1-2.2+deb9u2) ...
Preparing to unpack .../16-python3-prettytable_0.7.2-4_all.deb ...
Unpacking python3-prettytable (0.7.2-4) over (0.7.2-3) ...
Preparing to unpack .../17-openssl_1.1.1c-1_amd64.deb ...
Unpacking openssl (1.1.1c-1) over (1.1.0k-1~deb9u1) ...
Preparing to unpack .../18-ca-certificates_20190110_all.deb ...
Unpacking ca-certificates (20190110) over (20161130+nmu1+deb9u1) ...
Selecting previously unselected package python3-certifi.
Preparing to unpack .../19-python3-certifi_2018.8.24-1_all.deb ...
Unpacking python3-certifi (2018.8.24-1) ...
Selecting previously unselected package python3-idna.
Preparing to unpack .../20-python3-idna_2.6-1_all.deb ...
Unpacking python3-idna (2.6-1) ...
Preparing to unpack .../21-python3-pkg-resources_40.8.0-1_all.deb ...
Unpacking python3-pkg-resources (40.8.0-1) over (33.1.1-1) ...
Preparing to unpack .../22-python3-chardet_3.0.4-3_all.deb ...
Unpacking python3-chardet (3.0.4-3) over (2.3.0-2) ...
Preparing to unpack .../23-python3-six_1.12.0-1_all.deb ...
Unpacking python3-six (1.12.0-1) over (1.10.0-3) ...
Preparing to unpack .../24-python3-requests_2.21.0-1_all.deb ...
Unpacking python3-requests (2.21.0-1) over (2.12.4-1) ...
Preparing to unpack .../25-python3-urllib3_1.24.1-1_all.deb ...
Unpacking python3-urllib3 (1.24.1-1) over (1.19.1-1) ...
Preparing to unpack .../26-libreadline5_5.2+dfsg-3+b13_amd64.deb ...
Unpacking libreadline5:amd64 (5.2+dfsg-3+b13) over (5.2+dfsg-3+b1) ...
Preparing to unpack .../27-xfsprogs_4.20.0-1_amd64.deb ...
Unpacking xfsprogs (4.20.0-1) over (4.9.0+nmu1) ...
Preparing to unpack .../28-e2fslibs_1.44.5-1_amd64.deb ...
Unpacking e2fslibs:amd64 (1.44.5-1) over (1.43.4-2) ...
Selecting previously unselected package libext2fs2:amd64.
Preparing to unpack .../29-libext2fs2_1.44.5-1_amd64.deb ...
Unpacking libext2fs2:amd64 (1.44.5-1) ...
Errors were encountered while processing:
 /tmp/apt-dpkg-install-dr5AeK/00-glusterfs-common_6.5-1_amd64.deb
 /tmp/apt-dpkg-install-dr5AeK/01-libglusterfs0_6.5-1_amd64.deb
 /tmp/apt-dpkg-install-dr5AeK/02-libgfxdr0_6.5-1_amd64.deb
 /tmp/apt-dpkg-install-dr5AeK/03-libgfrpc0_6.5-1_amd64.deb
 /tmp/apt-dpkg-install-dr5AeK/04-libgfapi0_6.5-1_amd64.deb
 /tmp/apt-dpkg-install-dr5AeK/05-libgfchangelog0_6.5-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)




[0] https://git.proxmox.com/?p=pve-qemu.git;a=commit;h=f3c1e32615d7e4458238f921d6af6ec780da965a
[1] https://pve.proxmox.com/wiki/Upgrade_from_5.x_to_6.0
[2] https://bugzilla.proxmox.com/show_bug.cgi?id=2269

On 8/26/19 12:04 PM, Thomas Lamprecht wrote:
On 01.08.19 11:21, Dominic Jäger wrote:
Upgrading from PVE 5 to 6 works only with the Gluster packages from the
Debian repository. At least Gluster versions 5.8 to 6.4-1 have conflicts
with our packages.

Signed-off-by: Dominic Jäger <d.jae...@proxmox.com>
---
Tested on one VM with PVE 5.4 and upstream Gluster (6.4-1) and one
with PVE 5.4 and the Debian Gluster packages (3.8). The upgrade gives
the expected conflicts. The error message remains useful after the
(erroneous) upgrade.

  PVE/CLI/pve5to6.pm | 18 ++++++++++++++++++
  1 file changed, 18 insertions(+)

diff --git a/PVE/CLI/pve5to6.pm b/PVE/CLI/pve5to6.pm
index 7b1050e3..7748b5e8 100644
--- a/PVE/CLI/pve5to6.pm
+++ b/PVE/CLI/pve5to6.pm
@@ -220,6 +220,23 @@ sub get_vms_with_vmx {
      return $res;
  }
+# The upgrade works if Gluster 5.5-3 is installed . This is packaged in Debian.
+# There are conflicts with more recent versions (from gluster.org) of Gluster.
+# Consequently, warn if gluster is not installed from debian packages but
+# from the gluster repos. See bug 2269.
+sub check_gluster {
+    log_info("Checking GlusterFS version.");
+    my $stdout = `dpkg -s glusterfs-common`;
+    # Patrick Matthäi is the maintainer of the Gluster Debian package
+    # The package from the Gluster repo has 'Gluster Packager' as maintainer
+    my $debian_maintainer = 'Maintainer: Patrick Matthäi';
+    if (index($stdout, $debian_maintainer) == -1) {

Hmm, not fully happy with that check method. Would it be enough to know
what version the glusterfs-client package is? As that info would be already
available here, as it is included in our api APT versions call [0] which we
cache here.

[0]: 
https://git.proxmox.com/?p=pve-manager.git;a=blob;f=PVE/API2/APT.pm;h=fa76d0127c5d34d97cc9fb1d608ab15ad9864b61;hb=refs/heads/stable-5#l526

You could just do:
my $pkg_info = $get_pkg->('glusterfs-client');

and check "OldVersion" or maybe even the "ChangeLogUrl" hash entry, I did
not checked myself, but it would make sense if that points to either debian.org
or download.gluster.org depending on where this package comes from.

+       log_warn('Your version of GlusterFS is not maintained by Debian. Beware 
that there is a problem with PVE 6 and Gluster packages that are from a 
different source. See https://bugzilla.proxmox.com/show_bug.cgi?id=2269.');

Instead of:
"Beware that there is a problem with PVE 6 and Gluster packages that are from a 
different source. See ..."
maybe:

"Such GlusterFS packages may not be usable with Proxmox VE 6. For details, see 
<https://bugzilla.proxmox.com/show_bug.cgi?id=2269>."



+    } else {
+       log_pass("Your GlusterFS version is supported.");
+    }
+}
+
  sub check_kvm_nested {
      log_info("Checking KVM nesting support, which breaks live migration for VMs 
using it..");
@@ -664,6 +681,7 @@ sub check_misc {
      }
check_kvm_nested();
+    check_gluster();
  }
__PACKAGE__->register_method ({




_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to