Comments (8)
Hey, @overheadhunter!
Thanks for noticing, I'll take a look into this. Interestingly, it works well on CI without any issues.
from jnr-fuse.
I think, one of the possible explanations is that jnr used to fail to "identify" the OS, so the switch would fall through to the default section.
from jnr-fuse.
Possibly. We distribute our software as an Appimage which has some different environment variables that might cause the app to use the default branch of that switch-statement...
from jnr-fuse.
Hey, @overheadhunter! From looking at https://github.com/jnr/jnr-ffi/blob/master/src/main/java/jnr/ffi/provider/jffi/NativeLibrary.java#L79, it seems like the first call should be end up calling dlopen("libfuse.so.2")
. Do you know what can be the reason for this call to fail?
I'll add a fallback call to try fuse
anyways since there is a possibility that one of them fails.
from jnr-fuse.
@overheadhunter As a quick workaround, you could try something like the following with the current version:
LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/full/path/to/libfuse.so.2" java -cp ...
from jnr-fuse.
Hey, @overheadhunter! Could you verify the fix from master? If it fixes the issue, I can publish a new version.
from jnr-fuse.
it seems like the first call should be end up calling
dlopen("libfuse.so.2")
.
But this assumes that libfuse.so.2
is in the current working directory, correct? Only the second...nth attempt to dlopen the lib try it with an absolute path.
I will do some experiments with both, the LD_LIBRARY_PATH
as well as the master branch on Wednesday.
from jnr-fuse.
I just started my debugger with a breakpoint in this line and found out that files inside /lib/x86_64-linux-gnu
such as libfuse.so.2
are missing while other files such as libdrm_tegra.so.0.0.0
are listed even if they do not exist.
This lead me to the assumption that /lib/x86_64-linux-gnu
is somehow different due to Flatpak's sandbox (I'm running the Flatpak version of IntelliJ here - and we plan to distribute our application as a Flatpak itself, too).
Playing around with LD_LIBRARY_PATH
as well as java.library.path
does help locating libfuse. However, fuse mount fails. Maybe due to missing transitive .so
dependencies..?
fuse_main_real
returns 1:
Caused by: ru.serce.jnrfuse.FuseException: Unable to mount FS, return code = 1
at ru.serce.jnrfuse.AbstractFuseFS.mount(AbstractFuseFS.java:277)
I cloned your repo and built 0.5.4-SNAPSHOT. Behaviour is unchanged. I set a breakpoint here and could see that this branch the fallback routine was triggered but threw an UnsatisfiedLinkError itself.
Sadly the fix doesn't help. That doesn't mean that you should rollback you change, at least it will now construct the correct regex. Also, I verified that it works correctly on non-Flatpak environments.
I believe the root cause is somewhere else. Feel free to close this issue, as I have a feeling there is nothing you can do about it as long as fuse doesn't work inside Flatpak's sandbox...
from jnr-fuse.
Related Issues (20)
- Invalid path Strings HOT 3
- Migrate to maven central from JCenter HOT 1
- Mounting the file system always blocks HOT 2
- How to set `birth_time` in `getattr` HOT 2
- Umount on Mac OS X doesn't work
- Java 9 module support HOT 1
- write throughput very low compared to read HOT 1
- Problem with samba share folders (jnr-fuse + winfsp) HOT 2
- Capturing SetSecurity events HOT 2
- Fix CVE-2014-4043 HOT 4
- Wrong dependency scopes in release 0.5.6 HOT 2
- GraalVM native image support
- Winfsp and jnr-fuse not working HOT 3
- Why not implement the inode interface provided by kernel fuse to replace the current path interface? HOT 5
- Program doesn't shut down properly in some cases on windows
- JVM crash with jnr-fuse and javafx
- WinFsp 1.12 doesn't pass the CI check
- Test failures on AWS Graviton (ARM, aarch64 GNU/Linux)
- Winfsp read callback random offset
- I can't get getxattr() working HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jnr-fuse.