[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