aboutsummaryrefslogtreecommitdiff
path: root/doc/bugs/wrong_permissions_of_unused__44___badunused_and_tmpunused__63__.mdwn
blob: e03ea396a8fe2cc103dfe4259d06b124169df4f2 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
The files `unused`, `badunused` and `tmpunused` in `.git/annex/` do not have the correct permissions when the git repository is set to `--shared=group`. Such files are `600`, while they should be `660`, as other files in `.git/annex`.

For this reason, when those files are created, they are accessibile only to one user (the owner), triggering errors when other users in the group attempt things like `git annex unused` or `git annex dropunused`. At least this occurs with git-annex 6.20171018+gitgbb20b1ed3-1~ndall+1 .

To reproduce the problem:

    git init --shared=group
    git annex init
    echo test > test
    git annex add test
    git commit -m test
    git rm test
    git commit -m removed
    git annex unused

you get:

    unused . (checking for unused data...) (checking master...) 
      Some annexed data is no longer used by any files:
        NUMBER  KEY
        1       SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2
      (To see where data was previously used, try: git log --stat -S'KEY')
      
      To remove unwanted data: git-annex dropunused NUMBER
      
    ok


Conversely, from another user of the group you get:

    > git annex unused
    unused . (checking for unused data...) (checking master...) 
      Some annexed data is no longer used by any files:
        NUMBER  KEY
        1       SHA256E-s5--f2ca1bb6c7e907d06dafe4687e579fce76b37e4e93b7605022da52e6ccc26fd2
      (To see where data was previously used, try: git log --stat -S'KEY')
      
      To remove unwanted data: git-annex dropunused NUMBER
      
    
    git-annex: .git/annex/unused: openFile: permission denied (Permission denied)
    failed
    git-annex: unused: 1 failed

Moreover:

    > git annex dropunused 1
    git-annex: .git/annex/misctmp/mergedrefs.0: createDirectory: permission denied (Permission denied)


This is somewhat expected, because the permissions of `unused`, `badunused` and `tmpunused` are `600`:

    > ll .git/annex/
    total 40
    drwxrwsr-x 5 ele testgroup 4096 dic 19 14:50 ./
    drwxrwsr-x 9 ele testgroup 4096 dic 19 14:50 ../
    -rw------- 1 ele testgroup    0 dic 19 14:50 badunused
    -rw-rw-r-- 1 ele testgroup  345 dic 19 14:49 index
    -rw-rw-r-- 1 ele testgroup   41 dic 19 14:49 index.lck
    drwxrwsr-x 2 ele testgroup 4096 dic 19 14:49 journal/
    -rw-rw---- 1 ele testgroup    0 dic 19 14:49 journal.lck
    -rw-rw-r-- 1 ele testgroup   62 dic 19 14:49 mergedrefs
    drwxrwsr-x 2 ele testgroup 4096 dic 19 14:49 misctmp/
    drwxrwsr-x 3 ele testgroup 4096 dic 19 14:49 objects/
    -rw-rw---- 1 ele testgroup    0 dic 19 14:49 precommit.lck
    -rw-rw-r-- 1 ele testgroup    0 dic 19 14:49 sentinal
    -rw-rw-r-- 1 ele testgroup   21 dic 19 14:49 sentinal.cache
    -rw------- 1 ele testgroup    0 dic 19 14:50 tmpunused
    -rw------- 1 ele testgroup  101 dic 19 14:50 unused

If this is the intended behavior, could you please explain me how to use `git annex unused` and `dropunused` in a shared repository?

> Fixed all of this I was able to reproduce. [[done]] --[[Joey]]