cryptomator / cli

Cryptomator Command-Line Interface
GNU Affero General Public License v3.0
278 stars 40 forks source link

cryptomator-cli-0.3.1.jar dav mount fails on Ubuntu 18.04.3 LTS #28

Closed ghost closed 4 years ago

ghost commented 4 years ago

After:

java -jar ~/utils/cryptomator-cli-0.3.1.jar --vault ~/Documents/media --passwordfile /tmp/pwd.yivJH4 --bind 127.0.0.1 --port 8080 &

I see

13:08:12.596 [main] INFO  org.eclipse.jetty.util.log - Logging initialized @313ms to org.eclipse.jetty.util.log.Slf4jLog
13:08:12.654 [main] INFO  o.c.frontend.webdav.WebDavServer - Binding server socket to 127.0.0.1:8080
13:08:12.666 [main] INFO  o.e.jetty.server.AbstractConnector - Started ServerConnector@6fc6f14e{HTTP/1.1,[http/1.1]}{127.0.0.1:8080}
13:08:12.669 [main] INFO  org.eclipse.jetty.server.Server - jetty-9.4.z-SNAPSHOT
13:08:12.710 [main] INFO  o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@61f8bee4{/,null,AVAILABLE}
13:08:12.710 [main] INFO  org.eclipse.jetty.server.Server - Started @431ms
13:08:12.710 [main] INFO  o.c.frontend.webdav.WebDavServer - WebDavServer started.
13:08:12.710 [main] INFO  org.cryptomator.cli.CryptomatorCli - Unlocking vault "media" located at /home/ul/Documents/media
13:08:13.388 [main] INFO  org.eclipse.jetty.server.session - DefaultSessionIdManager workerName=node0
13:08:13.389 [main] INFO  org.eclipse.jetty.server.session - No SessionScavenger set, using defaults
13:08:13.390 [main] INFO  org.eclipse.jetty.server.session - Scavenging every 600000ms
13:08:13.395 [main] INFO  o.a.j.w.server.AbstractWebdavServlet - authenticate-header = Basic realm="Jackrabbit Webdav Server"
13:08:13.396 [main] INFO  o.a.j.w.server.AbstractWebdavServlet - csrf-protection = null
13:08:13.396 [main] INFO  o.a.j.w.server.AbstractWebdavServlet - createAbsoluteURI = true
13:08:13.396 [main] INFO  o.e.j.server.handler.ContextHandler - Started o.e.j.s.ServletContextHandler@32502377{/media,null,AVAILABLE}
13:08:13.397 [main] INFO  o.c.f.w.s.WebDavServletController - WebDavServlet started: /media
13:08:13.397 [main] INFO  org.cryptomator.cli.CryptomatorCli - Server started. Press Ctrl+C to terminate.

When I try: sudo mount -t davfs http://localhost:8080/media ~/media

I get

[sudo] password for ul: 
Please enter the username to authenticate with server
http://localhost:8080/media or hit enter for none.
  Username: 
Please enter the password to authenticate user  with server
http://localhost:8080/media or hit enter for none.
  Password:  
13:12:21.497 [pool-1-thread-19] WARN  o.c.cryptofs.CryptoDirectoryStream - Broken directory file /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/0NDCYT5IWCXWVUJMN7Q5FSX7FVQMSPWBCTXYZPJLHA2DFUU7NZC6T6KOC22VDCZ77J7K7TBHKFOIKKJUKS2CLATZKBW6QPMPVE6ZZGWNPZSYFL7UC3C7G5OXVF6JOA7QI3HKLGZA53KY4S===. Directory /home/ul/Documents/media/d/I3/J6F4YZUILF4MQCQX3VNFL4DQUCENXC does not exist.
13:12:21.504 [pool-1-thread-19] WARN  org.eclipse.jetty.server.HttpChannel - /media/
java.io.UncheckedIOException: java.nio.file.NoSuchFileException: /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/S4ZA6QPSMO5IDJPYL7LUC2NHUJMAHGGFGPBRSXHLDG75TGV57TUIMGQMJUYPVMNJFP32MGROZ2CRFPK2W5JN2ORKLOAODVIAIXA3QQFAPDIRYKNZEQ67QVZW6RRA====
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:114)
    at org.apache.jackrabbit.webdav.MultiStatus.addResourceProperties(MultiStatus.java:63)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doPropFind(AbstractWebdavServlet.java:561)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:349)
    at org.cryptomator.frontend.webdav.servlet.WebDavServlet.execute(WebDavServlet.java:106)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:292)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    at org.cryptomator.frontend.webdav.servlet.MacChunkedPutCompatibilityFilter.doFilterHttp(MacChunkedPutCompatibilityFilter.java:58)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.AcceptRangeFilter.doFilterHttp(AcceptRangeFilter.java:38)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.MkcolComplianceFilter.doFilterHttp(MkcolComplianceFilter.java:47)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.PostRequestBlockingFilter.doFilterHttp(PostRequestBlockingFilter.java:46)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.UnicodeResourcePathNormalizationFilter.doFilterHttp(UnicodeResourcePathNormalizationFilter.java:68)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.LoggingFilter.doFilterHttp(LoggingFilter.java:44)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.file.NoSuchFileException: /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/S4ZA6QPSMO5IDJPYL7LUC2NHUJMAHGGFGPBRSXHLDG75TGV57TUIMGQMJUYPVMNJFP32MGROZ2CRFPK2W5JN2ORKLOAODVIAIXA3QQFAPDIRYKNZEQ67QVZW6RRA====
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
    at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
    at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
    at java.nio.file.Files.readAttributes(Files.java:1737)
    at org.cryptomator.cryptofs.CryptoFileAttributeProvider.readAttributes(CryptoFileAttributeProvider.java:41)
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:237)
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:360)
    at java.nio.file.Files.readAttributes(Files.java:1737)
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102)
    ... 52 common frames omitted
/sbin/mount.davfs: Mounting failed.
500 Server Error

and there is nothing in ~/media.

Note that using the AppImage version 1.4.15, I can mount and see files in this directory.

Also, I have two other vaults both of which I can mount and see files via the cli and appimage variants...

This seems to be related to just the "media" vault.

Any hints about how to fix this?

I've also tried gio mount dav://127.0.0.1:8080/media but this also fails with:

13:08:20.756 [pool-1-thread-11] WARN  o.c.cryptofs.CryptoDirectoryStream - Broken directory file /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/0NDCYT5IWCXWVUJMN7Q5FSX7FVQMSPWBCTXYZPJLHA2DFUU7NZC6T6KOC22VDCZ77J7K7TBHKFOIKKJUKS2CLATZKBW6QPMPVE6ZZGWNPZSYFL7UC3C7G5OXVF6JOA7QI3HKLGZA53KY4S===. Directory /home/ul/Documents/media/d/I3/J6F4YZUILF4MQCQX3VNFL4DQUCENXC does not exist.
13:08:20.769 [pool-1-thread-11] WARN  org.eclipse.jetty.server.HttpChannel - /media/
java.io.UncheckedIOException: java.nio.file.NoSuchFileException: /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/S4ZA6QPSMO5IDJPYL7LUC2NHUJMAHGGFGPBRSXHLDG75TGV57TUIMGQMJUYPVMNJFP32MGROZ2CRFPK2W5JN2ORKLOAODVIAIXA3QQFAPDIRYKNZEQ67QVZW6RRA====
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:114)
    at org.apache.jackrabbit.webdav.MultiStatus.addResourceProperties(MultiStatus.java:63)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.doPropFind(AbstractWebdavServlet.java:561)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.execute(AbstractWebdavServlet.java:349)
    at org.cryptomator.frontend.webdav.servlet.WebDavServlet.execute(WebDavServlet.java:106)
    at org.apache.jackrabbit.webdav.server.AbstractWebdavServlet.service(AbstractWebdavServlet.java:292)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
    at org.cryptomator.frontend.webdav.servlet.MacChunkedPutCompatibilityFilter.doFilterHttp(MacChunkedPutCompatibilityFilter.java:58)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.AcceptRangeFilter.doFilterHttp(AcceptRangeFilter.java:38)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.MkcolComplianceFilter.doFilterHttp(MkcolComplianceFilter.java:47)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.PostRequestBlockingFilter.doFilterHttp(PostRequestBlockingFilter.java:46)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.UnicodeResourcePathNormalizationFilter.doFilterHttp(UnicodeResourcePathNormalizationFilter.java:68)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.cryptomator.frontend.webdav.servlet.LoggingFilter.doFilterHttp(LoggingFilter.java:44)
    at org.cryptomator.frontend.webdav.servlet.HttpFilter.doFilter(HttpFilter.java:26)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.eclipse.jetty.server.Server.handle(Server.java:564)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
    at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
    at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
    at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.file.NoSuchFileException: /home/ul/Documents/media/d/FR/IXSN3ZMR43ACDHIXHIATQGGGAI43MU/S4ZA6QPSMO5IDJPYL7LUC2NHUJMAHGGFGPBRSXHLDG75TGV57TUIMGQMJUYPVMNJFP32MGROZ2CRFPK2W5JN2ORKLOAODVIAIXA3QQFAPDIRYKNZEQ67QVZW6RRA====
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55)
    at sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:144)
    at sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99)
    at java.nio.file.Files.readAttributes(Files.java:1737)
    at org.cryptomator.cryptofs.CryptoFileAttributeProvider.readAttributes(CryptoFileAttributeProvider.java:41)
    at org.cryptomator.cryptofs.CryptoFileSystemImpl.readAttributes(CryptoFileSystemImpl.java:237)
    at org.cryptomator.cryptofs.CryptoFileSystemProvider.readAttributes(CryptoFileSystemProvider.java:360)
    at java.nio.file.Files.readAttributes(Files.java:1737)
    at org.cryptomator.frontend.webdav.servlet.DavFolder.getMembers(DavFolder.java:102)
    ... 52 common frames omitted

(gio mount works well for the other two vaults)

infeo commented 4 years ago

This may be realted to the outdated web-dav version. The dependencies recieved an update now, so this needs to be retested.

ghost commented 4 years ago

Thank you for responding.

If your retest comment is not directed to me please just ignore the following.

Before I entertain retesting...

  1. I no longer use the vault that shows this issue (I might have a backup but I'm not sure if that is vault 6 or 7 tho)
  2. I thought the 0.3.1 cli jar is compatible with vault format 6 and incompatible with vault format 7 (cryptomator 1.5+).
  3. I'd prefer to test using a prebuilt jar rather than working out how to build from branch develop (or tag 0.4) but I don't see any prebuilt jars after 0.3.1

By retest do you mean build a new cli jar from branch develop and try again with that or something else? Will it matter if the vault in question is format 6 or 7?

infeo commented 4 years ago

Just released 0.4.0 which is compatible with vaultf format 7 (;

But if this issue is obsolete anyway, you don't have to.

ghost commented 4 years ago

Thank you for this. In certain circumstances I prefer the cli tool over the UI version.

I did have a backup of the vault that showed this issue and it was converted to version 7.

I was able to open and use this vault with cryptomator-cli-0.4.0.jar.

I'll close this. A new issue can be opened if it later turns out the casual test I did is insufficient to show that this issue is fixed.