[pve-devel] [PATCH manager] pve5to6: Add warning for some Gluster versions

Dominic Jäger d.jaeger at proxmox.com
Wed Aug 28 13:25:33 CEST 2019


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.jaeger at 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 ({
>>
> 
> 




More information about the pve-devel mailing list