summaryrefslogtreecommitdiff
path: root/doc/bugs/Missing_automounts_block_every_command.mdwn
blob: 12a3463e8f7de7880b4adb69ac5589a3b09bd085 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
### Please describe the problem.
When a remote is located on a device (network) that systemd is configured to automount but fails to do so, every git-annex command blocks/waits until the automount times out.

Commands that have to access such a remote (e.g., `sync`, `move`) are are allowed to block, but commands that only operate on the local repository (e.g., `version`, `add`, `calckey`, `find`) or another one (`sync not-doesnotexist`, `move --to=not-doesnotexist`) should not.

The Bash completion is also affected and blocks at every tab.

Probably related: git-annex causes **not missing** idle hard drives (as remotes) to spin up for no reason – even for local commands and completions.

### What steps will reproduce the problem?
Add a non-existing mount point to `/etc/fstab`:

    /dev/sdoesnotexist  /mnt/doesnotexist  ext4  defaults,noauto,x-systemd.automount,x-systemd.device-timeout=10  0  0

Add a remote pointing to a path on `/mnt/doesnotexist`:

    $ git remote add doesnotexist /mnt/doesnotexist/path/to/repository

Use any git-annex command and wait for at least `x-systemd.device-timeout`:

    $ time git-annex version > /dev/null
    real    0m10.433s
    user    0m0.171s
    sys     0m0.028s

### What version of git-annex are you using? On what operating system?

    git-annex version: 6.20171214-g61b515d71d                                                                                                                                                     
    build flags: Assistant Webapp Pairing Testsuite S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify ConcurrentOutput TorrentParser MagicMime Feeds
    dependency versions: aws-0.18 bloomfilter-2.0.1.0 cryptonite-0.24 DAV-1.3.1 feed-1.0.0.0 ghc-8.2.2 http-client-0.5.7.1 persistent-sqlite-2.6.4 torrent-10000.1.1 uuid-1.3.13 yesod-1.4.5      
    key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 SHA1E SHA1 MD5E MD5 WORM URL
    remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
    local repository version: 5
    supported repository versions: 3 5 6
    upgrade supported from repository versions: 0 1 2 3 4 5
    operating system: linux x86_64

### Please provide any additional information below.

`strace` always includes a call to `stat("/mnt/doesnotexist/path/to/repository")`.

### Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

I’m very happy with git-annex (thanks) and use it frequently enough to notice this behavior.