AppImage / AppImageKit

Package desktop applications as AppImages that run on common Linux-based operating systems, such as RHEL, CentOS, openSUSE, SLED, Ubuntu, Fedora, debian and derivatives. Join #AppImage on irc.libera.chat
http://appimage.org
Other
8.78k stars 563 forks source link

AppImage hangs on startup when using fuse #1326

Open nickjmeyer opened 6 months ago

nickjmeyer commented 6 months ago

I have a custom built aarch64 AppImage that won't launch using fuse. The problem seems to persist even with a minimal program: Here's the contents of the program appimage_test:

#include <iostream>
int main()
{
  std::cout << "Success!\n";
  return 0;
}

If I simply run

$ ./appimage_test

then the program will hang and requires a SIGKILL.

Upon killing it with pkill -9 appimage_test, I get the following:

/tmp/.mount_appimaglNoJB/AppRun: 10: exec: ./kits/appimages/tests/appimage_test: Transport endpoint is not connected

Not sure if that failure is real or not given it was killed with SIGKILL.

However, when running it under strace, it seems to hang on executing the binary:

$ strace ./appimage_test
...
execve("./kits/appimages/tests/appimage_test", ["./kits/appimages/tests/appimage_"...], 0x5573a97bb8 /* 30 vars */

(Happy to provide more output from the strace if its helpful)

As manual work arounds, both of the following work as expected:

  1. Running by forcing extraction first via the env variable.

    $ APPIMAGE_EXTRACT_AND_RUN=1 ./appimage_test
    Success!
  2. Mounting the image and executing AppRun manually.

    $ ./appimage_test --appimage-mount
    /tmp/.mount_appimadpHoPp
    $ cd /tmp/.mount_appimadpHoPp/
    $ ./AppRun
    Success!

Version of installed libfuse2:

nmeyer@jnano:~$ sudo apt list --installed | grep -i libfuse2
libfuse2/bionic,now 2.9.7-1ubuntu1 arm64 [installed]

Any suggestions for debugging this?

probonopd commented 6 months ago

Does this also happen when you are trying to run a precompiled aarch64 AppImage, e.g., https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-aarch64.AppImage?

nickjmeyer commented 6 months ago

It seems to have a different issue:

$ ./appimagetool-aarch64.AppImage
fuse: failed to exec fusermount: Permission denied

Cannot mount AppImage, please check your FUSE setup.
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
open dir error: No such file or directory

I tried my own tool again afterwards and interestingly enough it ran the first time just fine, but then hung the second time:

$ ./appimage_test.aarch64
Success!
$ ./appimage_test.aarch64
^C^C^C^C

I tried the one you sent multiple times and it seems to always dump out the same error. Based on the error, it seems to suggest something is wrong with the FUSE setup which could make sense given extract and run works just fine.

probonopd commented 6 months ago

What does which fusermount and which fusermount3 say?

nickjmeyer commented 6 months ago

Here's the output:

$ which fusermount
/bin/fusermount
$ which fusermount3

So only 2 is installed.

Here's 2's version

$ fusermount --version
fusermount version: 2.9.7
probonopd commented 6 months ago

Please describe your system. Are you running on real hardware, or in some container, etc.

Can you try to run the AppImage e.g., on a Raspberry Pi, without any containers or virtualization?

nickjmeyer commented 5 months ago

The system is a Nvidia Jetson Nano and not using any containers.

Also pretty sure it's not running on a hypervisor. Checking /proc/cpuinfo seems to confirm that too:

$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv8 Processor rev 1 (v8l)
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0xd07
CPU revision    : 1

processor       : 1
model name      : ARMv8 Processor rev 1 (v8l)
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0xd07
CPU revision    : 1

processor       : 2
model name      : ARMv8 Processor rev 1 (v8l)
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0xd07
CPU revision    : 1

processor       : 3
model name      : ARMv8 Processor rev 1 (v8l)
BogoMIPS        : 38.40
Features        : fp asimd evtstrm aes pmull sha1 sha2 crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant     : 0x1
CPU part        : 0xd07
CPU revision    : 1

I unfortunately don't have any other ARM machines to test on. I'm happy to attach the AppImage if anyone else wants to try, but I also understand not wanting to run a random AppImage from some random person 😅

probonopd commented 17 hours ago

Can you please retry with the latest https://github.com/AppImage/type2-runtime/releases/tag/continuous build? We have changed a lot there.

If you want to try: https://github.com/AppImage/appimagetool/releases/tag/continuous uses it.

Thanks for retesting.