Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AppImage fallback when libfuse is not present is not working in Ubuntu LXC container #251

Open
samvde opened this issue Nov 5, 2023 · 4 comments

Comments

@samvde
Copy link

samvde commented Nov 5, 2023

The documentation of this project states that libfuse is optional, but this is not my experience:

Optional

Kernel supporting the FUSE (Filesystem in Userspace)
FUSE 2 (libfuse.so.2)

Note: If FUSE support is not present, a warning (dlopen(): error loading libfuse.so.2) will be generated, but then the AppImage will be started with the --appimage-extract-and-run parameter automatically as a fallback.

I use NextCloud, installed as a snap in an Ubuntu LXC container, and discovered I have to run the Collabore AppImage manually to get online editing functionalities. Without it, I get the "loading" spinner forever when opening a document.

I added a systemd unit to start it after boot, but did a re-test to make sure this was my issue:

Start: Online editing working.

root@mynextcloud:~# snap stop nextcloud
2023-11-05T17:49:51Z INFO Waiting for "snap.nextcloud.mysql.service" to stop.
Stopped.
root@mynextcloud:~# apt remove libfuse2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  libfuse2
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 330 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 24191 files and directories currently installed.)
Removing libfuse2:amd64 (2.9.9-5ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
root@mynextcloud:~# snap start nextcloud
Started.
root@mynextcloud:~# snap services nextcloud
Service                    Startup  Current   Notes
nextcloud.apache           enabled  active    -
nextcloud.logrotate        enabled  inactive  timer-activated
nextcloud.mysql            enabled  active    -
nextcloud.nextcloud-cron   enabled  active    -
nextcloud.nextcloud-fixer  enabled  active    -
nextcloud.php-fpm          enabled  active    -
nextcloud.redis-server     enabled  active    -
nextcloud.renew-certs      enabled  active    -
root@mynextcloud:~#

Online editing not possible.

root@mynextcloud:~# /var/snap/nextcloud/current/nextcloud/extra-apps/richdocumentscode/collabora/Collabora_Online.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run. 
You might still be able to extract the contents of this AppImage 
if you run it with the --appimage-extract option. 
See https://github.com/AppImage/AppImageKit/wiki/FUSE 
for more information
root@mynextcloud:~#

Online editing not possible.

root@mynextcloud:~# apt install libfuse2
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  libfuse2
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 90.3 kB of archives.
After this operation, 330 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 libfuse2 amd64 2.9.9-5ubuntu3 [90.3 kB]
Fetched 90.3 kB in 6s (15.9 kB/s)   
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libfuse2:amd64.
(Reading database ... 24179 files and directories currently installed.)
Preparing to unpack .../libfuse2_2.9.9-5ubuntu3_amd64.deb ...
Unpacking libfuse2:amd64 (2.9.9-5ubuntu3) ...
Setting up libfuse2:amd64 (2.9.9-5ubuntu3) ...
Processing triggers for libc-bin (2.35-0ubuntu3.4) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Scanning processes...                                                                                                                                                                      

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.

No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@mynextcloud:~#  /var/snap/nextcloud/current/nextcloud/extra-apps/richdocumentscode/collabora/Collabora_Online.AppImage

Logging at warning level to file: /tmp/coolwsd.npgkjwOUpw/coolwsd.log
Security: coolforkit incorrect user-name, other than 'cool'
coolforkit version details: 23.05.5.3 - 5093121
Init vcl
preload: xsec_xmlsec merged ucpchelp1 wpftwriter wpftcalc wpftimpress wpftdraw writerfilter msforms ucppkg1 ucpcmis1 cached1 vbaswobj swd sw ucpdav1 smd sm pdfimport PresentationMinimizer sd scriptframe protocolhandler dlgprov date analysis vbaobj scfilt scd xmlsecurity sc expwrap oox LanguageTool ldapbe2 pcr storagefd log chartcore pdffilter migrationoo3 deploymentgui scn cui sdbt mozbootstrap bootstrap flat io animcore svgfilter embobj t602filter dbaxml stocservices chartcontroller namingservice cairocanvas invocadapt introspection migrationoo2 dbpool2 binaryurp mysql_jdbc pricing proxyfac calc invocation dba uuresolver solver reflection writer textconversiondlgs hwp msword graphicfilter emboleobj sdd slideshow dbase bib
Disabled: ucpftp1 rptxml rptui rpt dbp abp sdbc2 cmdmail PresenterScreen dbu odbc 
Allowlisted languages: de_DE el en_GB en_US es_ES fr_FR hu it nl pt_BR pt_PT ru 
Preloading dictionaries: de-DE en-US fr-FR it-IT nl-NL pt-BR ru-RU en-GB nl-BE pt-PT es-ES 
Preloading thesauri: de-DE en-US fr-FR it-IT nl-NL pt-BR ru-RU en-GB nl-BE pt-PT es-ES 
Preload icons
Preload short cut accelerators
Preload languages
Preload fonts
Fontconfig error: Cannot load default config file: No such file: (null)
Preload config
office version details: { "ProductName": "Collabora Office", "ProductVersion": "23.05", "ProductExtension": ".5.3", "BuildId": "e7921fedb8b5615b0dc7cd3ec8b91c9b4e06d002", "BuildConfig": "'--enable-mpl-subset' '--with-vendor=Collabora' '--disable-community-flavor' '--with-branding=icon-themes/galaxy/brand_cp' '--with-system-dicts' '--with-myspell-dicts' '--with-system-zlib' '--disable-poppler' '--enable-cairo-rgba' '--without-system-cairo' '--without-system-fontconfig' '--without-system-freetype' '--without-system-graphite' '--without-system-harfbuzz' '--without-system-openssl' '--without-system-libpng' '--without-system-libxml' '--without-system-jpeg' '--without-system-expat' '--without-system-curl' '--without-system-icu' '--without-system-nss' '--without-system-jars' '--without-system-postgresql' '--without-java' '--without-junit' '--without-help' '--with-linker-hash-style=both' '--with-fonts' '--enable-noto-font' '--with-galleries=no' '--with-theme=colibre colibre_svg' '--with-external-thes-dir=/usr/share/mythes' '--with-external-hyph-dir=/usr/share/hyphen' '--with-external-dict-dir=/usr/share/hunspell' '--disable-dbus' '--enable-extension-integration' '--disable-odk' '--disable-kf5' '--disable-gtk3' '--disable-qt5' '--disable-gstreamer-1-0' '--disable-evolution2' '--disable-gio' '--disable-gui' '--disable-scripting-beanshell' '--disable-scripting-javascript' '--disable-ext-wiki-publisher' '--disable-report-builder' '--disable-ext-nlpsolver' '--disable-sdremote' '--disable-sdremote-bluetooth' '--disable-postgresql-sdbc' '--disable-firebird-sdbc' '--disable-randr' '--disable-ext-numbertext' '--enable-epm' '--enable-python=internal' '--disable-online-update' '--disable-dconf' '--enable-mergelibs' '--with-package-format=deb rpm' '--enable-release-build' '--with-lang=ar bg ca cs da de el en-US en-GB eo es eu fi fr gl he hr hu id is it ja ko lo nb nl oc pl pt pt-BR sq ru sk sl sv tr uk vi zh-CN zh-TW' '--disable-lotuswordpro' '--disable-lpsolve' '--enable-symbols' '--enable-sal-log' '--without-templates' '--srcdir=/opt/collaboraoffice/debugsource' '--enable-option-checking=fatal' 'PKG_CONFIG_PATH=/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig:/opt/rh/devtoolset-10/root/usr/lib64/pkgconfig'" }
Ready to accept connections on port 9983.

Online editing works again.

@samvde samvde changed the title appimage fallback when libfuse is not present is not working in lxc container AppImage fallback when libfuse is not present is not working in Ubuntu LXC container Nov 5, 2023
@samvde
Copy link
Author

samvde commented Nov 5, 2023

Initial issue nextcloud/richdocuments#3190

@joshtrichards
Copy link
Contributor

Hi @samvde - I just realized you're running the AppImage directly? That's not how richdocumentscode is intended to be used. It makes sense libfuse2 is required in your case: you're bypassing the proxy.php that handles the fallback to extraction:

// Extract the AppImage if FUSE is not available
$launchCmd = "bash -c \"( $appImage $remoteFontConfig --pidfile=$pidfile || $appImage --appimage-extract-and-run $remoteFontConfig --pidfile=$pidfile) >/dev/null & disown\"";

In this case, things are operating as expected, given that you're doing things in an unconventional way. :)

@samvde
Copy link
Author

samvde commented Nov 12, 2023

Hi @joshtrichards

Perhaps I was not explicit enough in my initial report. I start it manually (or now via systemd) because it does not get autostarted ever. Loading a document gives and eternal spinner. So it is not by choice.

I have seen a lot of bug reports about people getting eternal spinners especially on snap installations, it took a while to get it figured out. Perhaps it is a safe workaround to make it default for that use case, not sure.

@samvde
Copy link
Author

samvde commented Jun 1, 2024

I think this issue might be caused because Ubuntu made fuse3 the default.

E.g. AppImage/AppImageKit#1194

Not sure you can add libfuse2 to the snap or something like that but I think it breaks for everyone using the Nextcloud snap out of the box on at least Ubuntu and/or Debian-based distributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants