Project

General

Profile

Actions

Bug #21774

closed

jammy/bookworm FUSE packages have incorrect FUSE dependency

Added by Brett Smith 6 months ago. Updated 3 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Deployment
Story points:
-
Release:
Release relationship:
Auto

Description

test-provision-ubuntu2204: #1 /console

09:30:37   2024-05-15T13:30:28.174537954Z crunch-run Using FUSE mount: Traceback (most recent call last):
09:30:37   2024-05-15T13:30:28.174537954Z crunch-run   File "/usr/bin/arv-mount", line 6, in <module>
09:30:37   2024-05-15T13:30:28.174537954Z crunch-run     import arvados_fuse.command
09:30:37   2024-05-15T13:30:28.174537954Z crunch-run   File "/usr/lib/python3-arvados-fuse/lib/python3.10/site-packages/arvados_fuse/__init__.py", line 58, in <module>
09:30:37   2024-05-15T13:30:28.174537954Z crunch-run     import llfuse
09:30:37   2024-05-15T13:30:28.174537954Z crunch-run ImportError: libfuse.so.2: cannot open shared object file: No such file or directory

This happens because the package declares it depends on fuse but that now gets you libfuse.so.3. We need to specify libfuse2 instead.

We have code in the package testing scripts to catch this, but we only run it in debug mode. That seems weird. I feel like we should always run it.


Related issues

Blocks Arvados - Support #21664: Add test provision ubuntu 22.04 & make sure it passesResolvedBrett SmithActions
Blocks Arvados - Support #21663: Add test provision debian 12 & make sure it passesResolvedBrett SmithActions
Actions #1

Updated by Brett Smith 6 months ago

  • Blocks Support #21664: Add test provision ubuntu 22.04 & make sure it passes added
Actions #2

Updated by Brett Smith 6 months ago

  • Blocks Support #21663: Add test provision debian 12 & make sure it passes added
Actions #3

Updated by Brett Smith 6 months ago

  • Subject changed from jammy/bookworm FUSE packages have correct FUSE dependency to jammy/bookworm FUSE packages have incorrect FUSE dependency
Actions #4

Updated by Brett Smith 6 months ago

Brett Smith wrote:

This happens because the package declares it depends on fuse but that now gets you libfuse.so.3. We need to specify libfuse2 instead.

This doesn't seem to be right. It works in my manual testing, at least on Ubuntu 22.04. Need to dig further into what caused the failure.

Actions #5

Updated by Brett Smith 6 months ago

Okay, the problem is our dependency isn't specific enough. "fuse" is a virtual package that can be provided by fuse3. You can have that installed without libfuse2 installed, and in this case all the package dependencies will be satisfied but arv-mount won't work. Testing with the package-test-ubuntu2204 Docker image, here's a successful flow:

root@4f8d2a84ef02:/# dpkg -i /mnt/python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb 
[it installs but is missing dependencies]
root@4f8d2a84ef02:/# apt --fix-broken install                        
[...]
The following additional packages will be installed:
  fuse libcurl3-gnutls libexpat1 libfuse2 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10
  python3.10-minimal
Suggested packages:
  python3.10-venv python3.10-doc binutils binfmt-support
The following NEW packages will be installed:
  fuse libcurl3-gnutls libexpat1 libfuse2 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10
  python3.10-minimal
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
[succeeds]
root@4f8d2a84ef02:/# arv-mount --version
/usr/bin/arv-mount 2.8.0.dev20240510171531

And here's a failed flow:

root@a7ba2c68c9d5:/# apt-get install -y fuse3 python3.10 libcurl3-gnutls                                                                 
[...]
The following additional packages will be installed:
  libexpat1 libfuse3-3 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10-minimal
Suggested packages:                                                 
  python3.10-venv python3.10-doc binutils binfmt-support           
The following NEW packages will be installed:                                                                                            
  fuse3 libcurl3-gnutls libexpat1 libfuse3-3 libmpdec3 libpython3.10-minimal libpython3.10-stdlib media-types python3.10
  python3.10-minimal                                                                                                                     
0 upgraded, 10 newly installed, 0 to remove and 0 not upgraded.                                                                          
[succeeds]
root@a7ba2c68c9d5:/# dpkg -i /mnt/python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb 
Selecting previously unselected package python3-arvados-fuse.
(Reading database ... 9125 files and directories currently installed.)
Preparing to unpack .../python3-arvados-fuse_2.8.0~dev20240510171531-1_amd64.deb ...
Unpacking python3-arvados-fuse (2.8.0~dev20240510171531-1) ...
Setting up python3-arvados-fuse (2.8.0~dev20240510171531-1) ...
root@a7ba2c68c9d5:/# arv-mount --version
Traceback (most recent call last):
  File "/usr/bin/arv-mount", line 6, in <module>
    import arvados_fuse.command
  File "/usr/lib/python3-arvados-fuse/lib/python3.10/site-packages/arvados_fuse/__init__.py", line 58, in <module>
    import llfuse
ImportError: libfuse.so.2: cannot open shared object file: No such file or directory
Actions #6

Updated by Brett Smith 6 months ago

21774-package-dependencies @ 9a68b3ef3bcfae2c8d064b573230870bfad1d19b - build-packages-multijob: #4196

TBH if this gets the test-provision jobs passing I will just merge it without review. At its core the bugfix is one word and "obvious."

Actions #7

Updated by Brett Smith 6 months ago

  • Status changed from In Progress to Resolved
Actions #8

Updated by Brett Smith 6 months ago

Brett Smith wrote:

We have code in the package testing scripts to catch this, but we only run it in debug mode. That seems weird. I feel like we should always run it.

This was not quite right. Made #21775 with the real issue.

Actions #9

Updated by Peter Amstutz 3 months ago

  • Release set to 70
Actions

Also available in: Atom PDF