Merge branch 'master' of ssh://git-annex.branchable.com into master
This commit is contained in:
commit
2ab574a72f
7 changed files with 285 additions and 0 deletions
|
@ -0,0 +1,110 @@
|
|||
### Please describe the problem.
|
||||
|
||||
the goal was to have files unlocked (no symlinks) and gain "efficient" clone which would not consume more space through hardlinks.
|
||||
But if mode is thin in the clone - we get a copy within the clone
|
||||
|
||||
### What steps will reproduce the problem?
|
||||
|
||||
[[!format sh """
|
||||
|
||||
#!/bin/bash
|
||||
|
||||
export PS4='> '
|
||||
set -x
|
||||
set -eu
|
||||
cd "$(mktemp -d ${TMPDIR:-/tmp}/dl-XXXXXXX)"
|
||||
|
||||
git annex version | head -n 1
|
||||
(
|
||||
mkdir src
|
||||
cd src
|
||||
git init
|
||||
git annex init
|
||||
git commit --allow-empty -m empty
|
||||
|
||||
git annex adjust --unlock
|
||||
git config annex.thin true
|
||||
|
||||
touch 123
|
||||
git annex add 123
|
||||
git commit -m 123 123
|
||||
)
|
||||
|
||||
git clone --shared src dest
|
||||
|
||||
(
|
||||
cd dest
|
||||
# without it it would stall in "get" call
|
||||
# https://git-annex.branchable.com/bugs/get_is_stuck_unless_a_clone_was_previously_explicitly___34__annex_init__34__ed/
|
||||
git annex init
|
||||
git config annex.thin true
|
||||
git annex get 123
|
||||
)
|
||||
|
||||
: are inodes the same?
|
||||
ls -lLi {dest,src}/{123,.git/annex/objects/*/*/*/*}
|
||||
"""]]
|
||||
|
||||
|
||||
### Please provide any additional information below.
|
||||
|
||||
[[!format sh """
|
||||
$> bash check-annex-thin-hardlink.sh
|
||||
> set -eu
|
||||
>> mktemp -d /home/yoh/.tmp/dl-XXXXXXX
|
||||
> cd /home/yoh/.tmp/dl-je8JzWt
|
||||
> git annex version
|
||||
> head -n 1
|
||||
git-annex version: 8.20200810+git47-g27329f0bb-1~ndall+1
|
||||
> mkdir src
|
||||
> cd src
|
||||
> git init
|
||||
Initialized empty Git repository in /home/yoh/.tmp/dl-je8JzWt/src/.git/
|
||||
> git annex init
|
||||
init (scanning for unlocked files...)
|
||||
ok
|
||||
(recording state in git...)
|
||||
> git commit --allow-empty -m empty
|
||||
[master (root-commit) be447d9] empty
|
||||
> git annex adjust --unlock
|
||||
adjust
|
||||
Switched to branch 'adjusted/master(unlocked)'
|
||||
ok
|
||||
> git config annex.thin true
|
||||
> touch 123
|
||||
> git annex add 123
|
||||
add 123
|
||||
ok
|
||||
(recording state in git...)
|
||||
> git commit -m 123 123
|
||||
[adjusted/master(unlocked) c5db915] 123
|
||||
1 file changed, 1 insertion(+)
|
||||
create mode 100644 123
|
||||
> git clone --shared src dest
|
||||
Cloning into 'dest'...
|
||||
done.
|
||||
> cd dest
|
||||
> git annex init
|
||||
init (merging origin/git-annex into git-annex...)
|
||||
(recording state in git...)
|
||||
(scanning for unlocked files...)
|
||||
|
||||
Repository was cloned with --shared; setting annex.hardlink=true and making repository untrusted.
|
||||
ok
|
||||
(recording state in git...)
|
||||
> git config annex.thin true
|
||||
> git annex get 123
|
||||
get 123 (from origin...)
|
||||
(checksum...) ok
|
||||
(recording state in git...)
|
||||
> : are inodes the 'same?'
|
||||
> ls -lLi dest/123 dest/.git/annex/objects/pX/ZJ/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 src/123 src/.git/annex/objects/pX/ZJ/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
49711952 -rw------- 2 yoh yoh 0 Aug 25 11:04 dest/123
|
||||
49711952 -rw------- 2 yoh yoh 0 Aug 25 11:04 dest/.git/annex/objects/pX/ZJ/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
49711742 -rw------- 2 yoh yoh 0 Aug 25 11:04 src/123
|
||||
49711742 -rw------- 2 yoh yoh 0 Aug 25 11:04 src/.git/annex/objects/pX/ZJ/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855/SHA256E-s0--e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||
|
||||
"""]]
|
||||
|
||||
[[!meta author=yoh]]
|
||||
[[!tag projects/datalad]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="kyle"
|
||||
avatar="http://cdn.libravatar.org/avatar/7d6e85cde1422ad60607c87fa87c63f3"
|
||||
subject="comment 1"
|
||||
date="2020-08-25T15:20:45Z"
|
||||
content="""
|
||||
I believe this is by design. See ecd0684bf (avoid hard linking object
|
||||
from other repository when annex.thin is set, 2016-01-13).
|
||||
"""]]
|
|
@ -0,0 +1,76 @@
|
|||
### Please describe the problem.
|
||||
|
||||
A very basic operation is stuck (isn't there a unit-test?)
|
||||
|
||||
### What steps will reproduce the problem?
|
||||
|
||||
[[!format sh """
|
||||
#!/bin/bash
|
||||
|
||||
export PS4='> '
|
||||
set -x
|
||||
set -eu
|
||||
cd "$(mktemp -d ${TMPDIR:-/tmp}/dl-XXXXXXX)"
|
||||
|
||||
(
|
||||
mkdir src
|
||||
cd src
|
||||
git init
|
||||
git annex init
|
||||
|
||||
|
||||
touch 123
|
||||
git add 123
|
||||
git commit -m 123 123
|
||||
)
|
||||
|
||||
#git clone --shared src dest
|
||||
git clone src dest
|
||||
|
||||
(
|
||||
cd dest
|
||||
#git annex init
|
||||
# would stall unless we git annex init above with 8.20200810+git5-gb41f77445-1~ndall+1
|
||||
git annex get 123
|
||||
)
|
||||
|
||||
ls -lLi {dest,src}/123
|
||||
"""]]
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
|
||||
8.20200810+git47-g27329f0bb-1~ndall+1
|
||||
|
||||
### Please provide any additional information below.
|
||||
|
||||
[[!format sh """
|
||||
$> bash check-annex-hardlink.sh
|
||||
> set -eu
|
||||
>> mktemp -d /home/yoh/.tmp/dl-XXXXXXX
|
||||
> cd /home/yoh/.tmp/dl-sgm3azv
|
||||
> mkdir src
|
||||
> cd src
|
||||
> git init
|
||||
Initialized empty Git repository in /home/yoh/.tmp/dl-sgm3azv/src/.git/
|
||||
> git annex init
|
||||
init (scanning for unlocked files...)
|
||||
ok
|
||||
(recording state in git...)
|
||||
> touch 123
|
||||
> git add 123
|
||||
> git commit -m 123 123
|
||||
[master (root-commit) 8e97f2f] 123
|
||||
1 file changed, 0 insertions(+), 0 deletions(-)
|
||||
create mode 100644 123
|
||||
> git clone src dest
|
||||
Cloning into 'dest'...
|
||||
done.
|
||||
> cd dest
|
||||
> git annex get 123
|
||||
(merging origin/git-annex into git-annex...)
|
||||
(scanning for unlocked files...)
|
||||
^C
|
||||
"""]]
|
||||
|
||||
[[!meta author=yoh]]
|
||||
[[!tag projects/datalad]]
|
|
@ -0,0 +1,8 @@
|
|||
[[!comment format=mdwn
|
||||
username="yarikoptic"
|
||||
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
|
||||
subject="comment 1"
|
||||
date="2020-08-25T15:01:16Z"
|
||||
content="""
|
||||
FWIW:ha ha -- just now spotted that I have used `git add` instead of `git annex add` (not that `get` should have stuck)
|
||||
"""]]
|
|
@ -0,0 +1,9 @@
|
|||
[[!comment format=mdwn
|
||||
username="kyle"
|
||||
avatar="http://cdn.libravatar.org/avatar/7d6e85cde1422ad60607c87fa87c63f3"
|
||||
subject="comment: works on my end"
|
||||
date="2020-08-25T15:02:43Z"
|
||||
content="""
|
||||
Your script doesn't stall on my end. I tried with the last git-annex
|
||||
release 8.20200810 and the commit you report (27329f0bb).
|
||||
"""]]
|
|
@ -0,0 +1,47 @@
|
|||
[[!comment format=mdwn
|
||||
username="yarikoptic"
|
||||
avatar="http://cdn.libravatar.org/avatar/f11e9c84cb18d26a1748c33b48c924b4"
|
||||
subject="pidlock to blame!"
|
||||
date="2020-08-25T16:27:08Z"
|
||||
content="""
|
||||
Thank you Kyle! your comment reminded me that yesterday while I was trying to reproduce [stalling issue on NFS (not yet reported here)]() I have set globally pidlock=true!
|
||||
|
||||
<details>
|
||||
<summary>Here is an adjusted script which sets it in the clone and causes the stall (also changed to use git annex add instead of git add)</summary>
|
||||
|
||||
```shell
|
||||
#!/bin/bash
|
||||
|
||||
export PS4='> '
|
||||
set -x
|
||||
set -eu
|
||||
cd \"$(mktemp -d ${TMPDIR:-/tmp}/dl-XXXXXXX)\"
|
||||
|
||||
(
|
||||
mkdir src
|
||||
cd src
|
||||
git init
|
||||
git annex init
|
||||
|
||||
|
||||
touch 123
|
||||
git annex add 123
|
||||
git commit -m 123 123
|
||||
)
|
||||
|
||||
#git clone --shared src dest
|
||||
git clone src dest
|
||||
|
||||
(
|
||||
cd dest
|
||||
#git annex init
|
||||
# would stall unless we git annex init above with 8.20200810+git5-gb41f77445-1~ndall+1
|
||||
git config annex.pidlock true
|
||||
git annex get 123
|
||||
)
|
||||
|
||||
ls -lLi {dest,src}/123
|
||||
|
||||
```
|
||||
</details>
|
||||
"""]]
|
|
@ -0,0 +1,26 @@
|
|||
### Please describe the problem.
|
||||
|
||||
I am establishing running daily tests on annex on NFS mounted partition (one run with NFS as TMPDIR -- passes, another with NFS for HOME).
|
||||
|
||||
### What version of git-annex are you using? On what operating system?
|
||||
|
||||
as of now git-annex-standalone_8.20200810+git47-g27329f0bb-1~ndall+1_amd64.deb
|
||||
|
||||
### Please provide any additional information below.
|
||||
|
||||
[full build/log](https://github.com/datalad/datalad-extensions/pull/29/checks?check_run_id=1024502537)
|
||||
|
||||
[[!format sh """
|
||||
...
|
||||
All 840 tests passed (707.87s)
|
||||
.t/gpgtmp/7: removePathForcibly:removePathForcibly:removePathForcibly:removeDirectory: unsatisfied constraints (Directory not empty)
|
||||
sleeping 10 seconds and will retry directory cleanup
|
||||
git-annex: .t/gpgtmp/7/.nfs0000000000669ff400000a6b: removePathForcibly:removePathForcibly:removePathForcibly:removePathForcibly:removeLink: resource busy (Device or resource busy)
|
||||
##[error]Process completed with exit code 1.
|
||||
"""]]
|
||||
|
||||
so it seems to relate to gpg, and not unlikely to be out of git-annex control, but I wondered if it could potentially be some non-clean termination of underlying gpg process or alike which could/should actually be addressed on git-annex side?
|
||||
|
||||
[[!meta author=yoh]]
|
||||
[[!tag projects/datalad]]
|
||||
|
Loading…
Add table
Reference in a new issue