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

Unlocking two vaults with same name fails on Linux #3344

Open
2 tasks done
infeo opened this issue Feb 22, 2024 · 3 comments
Open
2 tasks done

Unlocking two vaults with same name fails on Linux #3344

infeo opened this issue Feb 22, 2024 · 3 comments
Labels
mount:fuse os:linux type:bug Something isn't working
Milestone

Comments

@infeo
Copy link
Member

infeo commented Feb 22, 2024

Please agree to the following

Summary

On Linux, if i unlock two vaults with the same name consecutively, the second unlock fails. The error message does not indicate a solution. I did not changed the default app settings.

What software is involved?

  • Operating System: Ubuntu 22.04
  • Cryptomator: 1.12.3-beta1

Volume Type

FUSE

Steps to Reproduce

  1. Create first vault named foo
  2. Create second vault named foo (stored somewhere else)
  3. Unlock first vault
  4. Unlock second vault

Expected Behavior

Both vaults can be unlocked.

Actual Behavior

The second unlock fails with error screen.

Reproducibility

Always

Relevant Log Output

~/Downloads$ ./cryptomator-1.12.3-beta1-x86_64.AppImage  
/usr/bin/dpkg
15:34:02.885 [main] INFO  o.c.common.settings.SettingsProvider - Settings loaded from /home/alf/.config/Cryptomator/settings.json
15:34:02.965 [main] INFO  org.cryptomator.common.Environment - user.home: /home/alf
15:34:02.965 [main] INFO  org.cryptomator.common.Environment - java.library.path: :/tmp/.mount_cryptoUhlsrO/lib/app:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
15:34:02.965 [main] INFO  org.cryptomator.common.Environment - user.language: en
15:34:02.965 [main] INFO  org.cryptomator.common.Environment - user.region: null
15:34:02.965 [main] INFO  org.cryptomator.common.Environment - logback.configurationFile: null
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.settingsPath: /home/alf/.config/Cryptomator/settings.json:/home/alf/.Cryptomator/settings.json
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.ipcSocketPath: /home/alf/.config/Cryptomator/ipc.socket
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.integrationsWin.keychainPaths: null
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.p12Path: /home/alf/.config/Cryptomator/key.p12
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.logDir: /home/alf/.local/share/Cryptomator/logs
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.loopbackAlias: null
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.mountPointsDir: /home/alf/.local/share/Cryptomator/mnt
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.minPwLength: null
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.appVersion: 1.12.3-beta1
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.buildNumber: appimage-5192
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.pluginDir: /home/alf/.local/share/Cryptomator/plugins
15:34:02.966 [main] INFO  org.cryptomator.common.Environment - cryptomator.showTrayIcon: true
15:34:02.967 [main] INFO  org.cryptomator.common.Environment - cryptomator.disableUpdateCheck: null
15:34:02.967 [main] INFO  o.cryptomator.launcher.Cryptomator - Starting Cryptomator 1.12.3-beta1 on Linux 6.2.0-1019-azure (amd64)
15:34:02.984 [main] INFO  org.cryptomator.ipc.Server - Spawning IPC server listening on socket /home/alf/.config/Cryptomator/ipc.socket
15:34:03.272 [JavaFX Application Thread] INFO  o.cryptomator.launcher.Cryptomator - JavaFX runtime started after 750ms
15:34:03.471 [JavaFX Application Thread] INFO  o.p.appindicator.RuntimeHelper - Native code library libayatana-appindicator3.so.1 successfully loaded
15:34:03.471 [JavaFX Application Thread] INFO  o.p.appindicator.RuntimeHelper - Native code library libappindicator3 failed to load
15:34:04.013 [JavaFX Application Thread] INFO  o.f.d.c.transports.TransportBuilder - Using transport dbus-java-transport-native-unixsocket for address unix:path=/run/user/1000/bus
15:34:04.051 [JavaFX Application Thread] INFO  o.f.d.c.transports.TransportBuilder - Using transport dbus-java-transport-native-unixsocket for address unix:path=/run/user/1000/bus
15:34:04.057 [JavaFX Application Thread] INFO  o.f.d.c.transports.TransportBuilder - Using transport dbus-java-transport-native-unixsocket for address unix:path=/run/user/1000/bus
15:34:06.250 [JavaFX Application Thread] INFO  d.s.s.handlers.SignalHandler - Await signal Prompt.Completed(/org/freedesktop/secrets/prompt/u1) within 120 seconds.
15:34:09.323 [DBus-Signal-Receiver-1] INFO  d.s.s.handlers.SignalHandler - Received signal Service.CollectionChanged: /org/freedesktop/secrets/collection/login
15:34:09.325 [DBus-Signal-Receiver-1] INFO  d.s.s.handlers.SignalHandler - Received signal Prompt.Completed(/org/freedesktop/secrets/prompt/u1): {dismissed: false, result: [[/org/freedesktop/secrets/aliases/default]]}
15:34:09.457 [JavaFX Application Thread] INFO  d.s.s.simple.SimpleCollection - Unlocked collection: Login (/org/freedesktop/secrets/aliases/default)
15:34:09.816 [JavaFX Application Thread] INFO  o.cryptomator.ui.fxapp.UpdateChecker - Current version: 1.12.3-beta1, lastest version: 1.12.2
15:34:11.146 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'asdasdasd' succeeded.
fusermount3: failed to access mountpoint /home/alf/.local/share/Cryptomator/mnt/asdasdasd: Permission denied
15:34:16.090 [JavaFX Application Thread] INFO  o.c.ui.unlock.UnlockWorkflow - Unlock of 'asdasdasd' failed.
15:34:16.091 [JavaFX Application Thread] ERROR o.c.ui.unlock.UnlockWorkflow - Unlock failed for technical reasons.
org.cryptomator.integrations.mount.MountFailedException: org.cryptomator.jfuse.api.FuseMountFailedException: fuse_mount failed
	at org.cryptomator.frontend.fuse@4.0.0/org.cryptomator.frontend.fuse.mount.LinuxFuseMountProvider$LinuxFuseMountBuilder.mount(LinuxFuseMountProvider.java:128)
	at org.cryptomator.desktop@1.12.3-beta1/org.cryptomator.common.mount.Mounter.mount(Mounter.java:186)
	at org.cryptomator.desktop@1.12.3-beta1/org.cryptomator.common.vaults.Vault.unlock(Vault.java:155)
	at org.cryptomator.desktop@1.12.3-beta1/org.cryptomator.ui.keyloading.KeyLoadingStrategy.use(KeyLoadingStrategy.java:79)
	at org.cryptomator.desktop@1.12.3-beta1/org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:76)
	at org.cryptomator.desktop@1.12.3-beta1/org.cryptomator.ui.unlock.UnlockWorkflow.call(UnlockWorkflow.java:34)
	at javafx.graphics@21.0.1/javafx.concurrent.Task$TaskCallable.call(Unknown Source)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$UniAccept.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$Completion.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Caused by: org.cryptomator.jfuse.api.FuseMountFailedException: fuse_mount failed
	at org.cryptomator.jfuse.linux.amd64@0.6.3/org.cryptomator.jfuse.linux.amd64.FuseImpl.mount(FuseImpl.java:36)
	at org.cryptomator.jfuse.api@0.6.3/org.cryptomator.jfuse.api.Fuse.mount(Fuse.java:126)
	at org.cryptomator.frontend.fuse@4.0.0/org.cryptomator.frontend.fuse.mount.LinuxFuseMountProvider$LinuxFuseMountBuilder.mount(LinuxFuseMountProvider.java:125)
	... 12 common frames omitted
15:34:37.332 [App Background Thread 005] INFO  org.cryptomator.common.vaults.Vault - Locked vault 'asdasdasd'
15:34:37.335 [JavaFX Application Thread] INFO  o.cryptomator.ui.quit.QuitController - Locked asdasdasd
15:34:37.337 [JavaFX Application Thread] INFO  o.cryptomator.launcher.Cryptomator - JavaFX application stopped.
15:34:37.338 [main] INFO  o.cryptomator.launcher.Cryptomator - UI shut down
15:34:37.339 [main] INFO  o.cryptomator.launcher.Cryptomator - Exit 0

Anything else?

The above log output is the terminal output. There you can see in line 36 also the actual (fuse) error:

fusermount3: failed to access mountpoint /home/alf/.local/share/Cryptomator/mnt/asdasdasd: Permission denied

@infeo infeo added type:bug Something isn't working os:linux mount:fuse labels Feb 22, 2024
@infeo infeo added this to the 1.12.3 milestone Feb 22, 2024
@infeo
Copy link
Member Author

infeo commented Feb 22, 2024

Closely related to #3272.

@infeo
Copy link
Member Author

infeo commented Feb 22, 2024

We decided to drop the "name automatic mountpoint as vault name" approach and go completely with vault ids. Hence, we can also drop special handling for FUSE-T introduced in #3336.

If the people want specifc/readable mountpoints, the should explicitly select those in the vault options.

@infeo infeo closed this as completed in 1ab73be Feb 22, 2024
@infeo
Copy link
Member Author

infeo commented Feb 27, 2024

With @SailReal I had a longer discussions about the UI implications of this fix. Unlike FUSE-T, where you can specify a volume name which is displayed in the file manager instead of the directory name, when using FUSE always only the directory name is displayed.

From a UI perspective, using the id as directoy name is absolutley a no-go, because the user must browse through different random strings until he/she finds their vault (e.g. using the "Save as..." dialog in an application). An alternative approach would be creating a directory named "[vault-id]" and a subdirectory with the mount name. Still subpar, but after a click the user see the mount name. Yet, considering two vaults with the same name as an edge case, the change would affect most of our FUSE-T/FUSE users. And sacrificing the easy identification due to an edge case is not the goal.

The bottom line: The arguments against this change are to big, therefore it is reverted and the issue is rescheduled.

Note, that this is not about automation. If you want to integrate your unlocked vault into scripts, use a fixed/custom mountpoint.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mount:fuse os:linux type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant