cryptomator / cryptomator/cryptomator

Folder listing containing many folders on a remote location does require huge amount of time

Open
#2,809 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
16.1k
Forks
1.5k
Avg merge
2d 45m
Merged PRs (30d)
1

Description

### Please agree to the following

- [X] I have searched [existing issues](https://github.com/cryptomator/cryptomator/issues?q=) for duplicates
- [X] I agree to follow this project's [Code of Conduct](https://github.com/cryptomator/cryptomator/blob/develop/.github/CODE_OF_CONDUCT.md)

### Summary

Folder listing containing ~100 folders on a remote location does require huge amount of time

### What software is involved?

- Operating System: Linux
- Cryptomator: 1.7.3
- Volume Type: Fuse

### Volume Type

None

### Steps to Reproduce

1. Mount a remote storage using e.g. WebDAV via `sudo mount -t davfs -o uid=USERNAME -o gid=USERNAME WEBDAV_URL ~/Desktop/mount`
2. Create a new vault in `~/Desktop/mount` with the name `test3000`
3. Unlock `test3000`
4. create in `test3000` test folders `foo/bar/baz` and in `baz` execute
```
for i in {1..100}
do
mkdir folder$i
done
```
5. execute `ls -al` in `foo/bar/baz`

### Expected Behavior

It takes some time to list this folder, because of remote calls etc. but ~5min for 100 folders feels very long to me

### Actual Behavior

Takes ~5mins until this folder gets listed. Especially if I run again `ls -al`, it takes more ore less the same mount of time again.

### Reproducibility

Always

### Relevant Log Output

```shell
10:53:13.358 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - readdir /foo/bar/baz
10:53:13.732 [Thread-16] TRACE o.c.c.dir.CryptoDirectoryStream - OPEN b4676c4e-911b-44c6-8f27-382519c9aad1
10:54:49.994 [Thread-16] TRACE o.c.c.dir.CryptoDirectoryStream - CLOSE b4676c4e-911b-44c6-8f27-382519c9aad1
10:54:50.838 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder1 (lastModifiedTime: 2023-03-17T16:53:14Z, lastAccessTime: 2023-03-17T16:53:14Z, creationTime: 2023-03-17T16:53:14Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331232000208))
10:54:51.739 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder2 (lastModifiedTime: 2023-03-17T16:53:30Z, lastAccessTime: 2023-03-17T16:53:30Z, creationTime: 2023-03-17T16:53:30Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231999232))
10:54:52.583 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder3 (lastModifiedTime: 2023-03-17T16:53:41Z, lastAccessTime: 2023-03-17T16:53:41Z, creationTime: 2023-03-17T16:53:41Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231998288))
10:54:53.399 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder4 (lastModifiedTime: 2023-03-17T16:53:53Z, lastAccessTime: 2023-03-17T16:53:53Z, creationTime: 2023-03-17T16:53:53Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231996576))
10:54:54.225 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder5 (lastModifiedTime: 2023-03-17T16:54:10Z, lastAccessTime: 2023-03-17T16:54:10Z, creationTime: 2023-03-17T16:54:10Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231994832))
10:54:55.084 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder6 (lastModifiedTime: 2023-03-17T16:54:29Z, lastAccessTime: 2023-03-17T16:54:29Z, creationTime: 2023-03-17T16:54:29Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231993856))
10:54:55.989 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder7 (lastModifiedTime: 2023-03-17T16:54:40Z, lastAccessTime: 2023-03-17T16:54:40Z, creationTime: 2023-03-17T16:54:40Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231992880))
10:54:56.883 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder8 (lastModifiedTime: 2023-03-17T16:54:45Z, lastAccessTime: 2023-03-17T16:54:45Z, creationTime: 2023-03-17T16:54:45Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231991904))
10:54:57.788 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder9 (lastModifiedTime: 2023-03-17T16:54:52Z, lastAccessTime: 2023-03-17T16:54:52Z, creationTime: 2023-03-17T16:54:52Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231990928))
10:54:58.644 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder10 (lastModifiedTime: 2023-03-17T16:55:00Z, lastAccessTime: 2023-03-17T16:55:00Z, creationTime: 2023-03-17T16:55:00Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231989952))
10:54:59.490 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder11 (lastModifiedTime: 2023-03-17T16:51:40Z, lastAccessTime: 2023-03-17T16:51:40Z, creationTime: 2023-03-17T16:51:40Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231988976))
10:55:00.362 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder12 (lastModifiedTime: 2023-03-17T16:51:46Z, lastAccessTime: 2023-03-17T16:51:46Z, creationTime: 2023-03-17T16:51:46Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231988000))
10:55:01.284 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder13 (lastModifiedTime: 2023-03-17T16:55:05Z, lastAccessTime: 2023-03-17T16:55:05Z, creationTime: 2023-03-17T16:55:05Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231987024))
10:55:02.230 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder14 (lastModifiedTime: 2023-03-17T16:52:00Z, lastAccessTime: 2023-03-17T16:54:22Z, creationTime: 2023-03-17T16:52:00Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231986048))
10:55:02.855 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder15 (lastModifiedTime: 2023-03-17T16:52:10Z, lastAccessTime: 2023-03-17T16:54:06Z, creationTime: 2023-03-17T16:52:10Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231985104))
10:55:03.784 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder16 (lastModifiedTime: 2023-03-17T16:52:26Z, lastAccessTime: 2023-03-17T16:54:02Z, creationTime: 2023-03-17T16:52:26Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231983360))
10:55:04.669 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder17 (lastModifiedTime: 2023-03-17T16:52:38Z, lastAccessTime: 2023-03-17T16:52:38Z, creationTime: 2023-03-17T16:52:38Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231982384))
10:55:05.484 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder18 (lastModifiedTime: 2023-03-17T16:55:10Z, lastAccessTime: 2023-03-17T16:55:10Z, creationTime: 2023-03-17T16:55:10Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231981408))
10:55:06.309 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder19 (lastModifiedTime: 2023-03-17T16:55:12Z, lastAccessTime: 2023-03-17T16:55:12Z, creationTime: 2023-03-17T16:55:12Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231980432))
10:55:07.141 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder20 (lastModifiedTime: 2023-03-17T16:55:16Z, lastAccessTime: 2023-03-17T16:55:16Z, creationTime: 2023-03-17T16:55:16Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231979456))

...
10:58:05.329 [Thread-23] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder107 (lastModifiedTime: 2023-03-17T17:01:38Z, lastAccessTime: 2023-03-17T17:01:38Z, creationTime: 2023-03-17T17:01:38Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231890544))
10:58:05.601 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder108 (lastModifiedTime: 2023-03-17T17:01:44Z, lastAccessTime: 2023-03-17T17:01:44Z, creationTime: 2023-03-17T17:01:44Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231889808))
10:58:05.863 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder110 (lastModifiedTime: 2023-03-17T17:02:24Z, lastAccessTime: 2023-03-17T17:02:24Z, creationTime: 2023-03-17T17:02:24Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231888336))
10:58:06.127 [Thread-22] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder106 (lastModifiedTime: 2023-03-17T17:01:18Z, lastAccessTime: 2023-03-17T17:01:18Z, creationTime: 2023-03-17T17:01:18Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231891280))
10:58:06.408 [Thread-26] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder109 (lastModifiedTime: 2023-03-17T17:02:04Z, lastAccessTime: 2023-03-17T17:02:04Z, creationTime: 2023-03-17T17:02:04Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231889072))
10:58:07.869 [Thread-17] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder111 (lastModifiedTime: 2023-03-17T17:04:25Z, lastAccessTime: 2023-03-17T17:04:25Z, creationTime: 2023-03-17T17:04:25Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231833104))
10:58:08.145 [Thread-21] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz/folder112 (lastModifiedTime: 2023-03-17T17:04:05Z, lastAccessTime: 2023-03-17T17:04:05Z, creationTime: 2023-03-17T17:04:05Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 0, fileKey: (dev=4f,ino=94331231832912))
10:58:09.549 [Thread-24] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo (lastModifiedTime: 2023-03-17T16:50:54Z, lastAccessTime: 2023-03-20T09:50:55Z, creationTime: 2023-03-17T16:50:54Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 160, fileKey: (dev=4f,ino=94331232095504))
10:58:10.660 [Thread-25] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar (lastModifiedTime: 2023-03-17T16:50:56Z, lastAccessTime: 2023-03-20T09:50:54Z, creationTime: 2023-03-17T16:50:56Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 160, fileKey: (dev=4f,ino=94331232093808))
10:58:11.506 [Thread-14] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar/baz (lastModifiedTime: 2023-03-17T17:04:35Z, lastAccessTime: 2023-03-20T09:54:49Z, creationTime: 2023-03-17T17:04:35Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 7272, fileKey: (dev=4f,ino=94331232002688))
10:58:11.788 [Thread-23] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo (lastModifiedTime: 2023-03-17T16:50:54Z, lastAccessTime: 2023-03-20T09:50:55Z, creationTime: 2023-03-17T16:50:54Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 160, fileKey: (dev=4f,ino=94331232095504))
10:58:12.084 [Thread-15] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr /foo/bar (lastModifiedTime: 2023-03-17T16:50:56Z, lastAccessTime: 2023-03-20T09:50:54Z, creationTime: 2023-03-17T16:50:56Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 160, fileKey: (dev=4f,ino=94331232093808))
10:58:12.085 [Thread-16] TRACE o.c.frontend.fuse.ReadOnlyAdapter - getattr / (lastModifiedTime: 2023-03-17T16:50:40Z, lastAccessTime: 2023-03-20T09:50:55Z, creationTime: 2023-03-17T16:50:40Z, isRegularFile: false, isDirectory: true, isSymbolicLink: false, isOther: false, size: 224, fileKey: (dev=4f,ino=94331232097280))
```

### Anything else?

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.