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 hangs on startup when using fuse #1326

Open
nickjmeyer opened this issue May 12, 2024 · 6 comments
Open

AppImage hangs on startup when using fuse #1326

nickjmeyer opened this issue May 12, 2024 · 6 comments

Comments

@nickjmeyer
Copy link

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!
  1. 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
Copy link
Member

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
Copy link
Author

nickjmeyer commented May 13, 2024

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
Copy link
Member

What does which fusermount and which fusermount3 say?

@nickjmeyer
Copy link
Author

nickjmeyer commented May 15, 2024

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
Copy link
Member

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
Copy link
Author

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 😅

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