Merge branch 'master' of ssh://git-annex.branchable.com

This commit is contained in:
Joey Hess 2021-12-09 13:38:32 -04:00
commit 5f1f6d0cec
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 161 additions and 0 deletions

View file

@ -0,0 +1,74 @@
Due to the type change of `tryMakeLockHandle` in commit ef3ab0769, compilation of git-annex is currently failing on Windows with the below error. I am unsure of the best way to fix it.
[[!format txt """
Utility\LockPool\Windows.hs:25:19: error:
* Couldn't match type `(LockHandle, t1)' with `LockHandle'
Expected type: IO (Maybe LockHandle)
Actual type: IO (Maybe (LockHandle, t1))
* In the expression:
tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockShared)
(\ f _ -> fmap mk <$> F.lockShared f)
In an equation for `lockShared':
lockShared file
= tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockShared)
(\ f _ -> fmap mk <$> F.lockShared f)
|
25 | lockShared file = tryMakeLockHandle P.lockPool file
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Utility\LockPool\Windows.hs:27:18: error:
* Couldn't match type `FileLockOps' with `(FileLockOps, t1)'
Expected type: IO (Maybe (FileLockOps, t1))
Actual type: IO (Maybe FileLockOps)
* In the expression: fmap mk <$> F.lockShared f
In the fourth argument of `tryMakeLockHandle', namely
`(\ f _ -> fmap mk <$> F.lockShared f)'
In the expression:
tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockShared)
(\ f _ -> fmap mk <$> F.lockShared f)
|
27 | (\f _ -> fmap mk <$> F.lockShared f)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
Utility\LockPool\Windows.hs:36:22: error:
* Couldn't match type `(LockHandle, t0)' with `LockHandle'
Expected type: IO (Maybe LockHandle)
Actual type: IO (Maybe (LockHandle, t0))
* In the expression:
tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockExclusive)
(\ f _ -> fmap mk <$> F.lockExclusive f)
In an equation for `lockExclusive':
lockExclusive file
= tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockExclusive)
(\ f _ -> fmap mk <$> F.lockExclusive f)
|
36 | lockExclusive file = tryMakeLockHandle P.lockPool file
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
Utility\LockPool\Windows.hs:38:18: error:
* Couldn't match type `FileLockOps' with `(FileLockOps, t0)'
Expected type: IO (Maybe (FileLockOps, t0))
Actual type: IO (Maybe FileLockOps)
* In the expression: fmap mk <$> F.lockExclusive f
In the fourth argument of `tryMakeLockHandle', namely
`(\ f _ -> fmap mk <$> F.lockExclusive f)'
In the expression:
tryMakeLockHandle
P.lockPool file (\ p f -> P.tryTakeLock p f LockExclusive)
(\ f _ -> fmap mk <$> F.lockExclusive f)
|
38 | (\f _ -> fmap mk <$> F.lockExclusive f)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
"""]]
[[!meta author=jwodder]]
[[!tag projects/datalad]]

View file

@ -0,0 +1,58 @@
### Please describe the problem.
On a user Windows machine, we get an odd issue of being unable to `annex get` a file from an ssh remote ([https://gin.g-node.org/yarikoptic/test-annex](https://gin.g-node.org/yarikoptic/test-annex)) while using an ssh key with a passphrase. The reason seems to be that 2nd invocation of `ssh` by git-annex does not result in the prompt for the passphrase.
I failed to reproduce locally in Windows VM machine. In my case (probably different setup of ssh etc), I 1). get passphrase prompt via external gui window (not in the same terminal); 2). do get 2nd prompt as well.
[Here you can get a full log](http://www.onerussian.com/tmp/test-annex-output-windows-ssh-passphrase-20211209.txt) where you can see passphrase prompt for initial clone, then within `get` once and not after 2nd ssh call
```
$> grep -1 -e passphrase -e faile -e 'ssh ' test-annex-output-windows-ssh-passphrase-20211209.txt
Cloning into 'test-annex'...
Enter passphrase for key '/c/Users/mvdmlab/.ssh/id_rsa':
remote: Enumerating objects: 58, done.
--
# manually added to grep output for more consistent extract
(NWB) PS D:\NWB\test_annex> cd .\test-annex\
(NWB) PS D:\NWB\test_annex\test-annex> git annex --debug get annexed
--
Disabling ssh connection caching.
[2021-12-09 10:41:16.7006865] (Utility.Process) process [14232] call: git ["--git-dir=.git","--work-tree=.","--literal-pathspecs","-c","annex.debug=true","config","annex.sshcaching","false"]
--
You have enabled concurrency, but git-annex is not able to use ssh connection caching. This may result in multiple ssh processes prompting for passwords at the same time.
annex.sshcaching is not set to true
[2021-12-09 10:41:21.819308] (Utility.Process) process [9560] read: ssh ["git@gin.g-node.org","-n","-T","git-annex-shell 'configlist' '/yarikoptic/test-annex' '--debug'"]
Enter passphrase for key '/c/Users/mvdmlab/.ssh/id_rsa':
[2021-12-09 10:41:32.8083061] (Utility.Process) process [9560] done ExitSuccess
--
You have enabled concurrency, but git-annex is not able to use ssh connection caching. This may result in multiple ssh processes prompting for passwords at the same time.
annex.sshcaching is not set to true
[2021-12-09 10:41:32.8443384] (Utility.Process) process [2248] chat: ssh ["git@gin.g-node.org","-T","git-annex-shell 'p2pstdio' '/yarikoptic/test-annex' '--debug' 'dfff8737-36e2-4a1c-8206-bca071a5294d' --uuid 2a0fa804-1bd6-4298-aa55-4dc2d250eeac"]
[2021-12-09 10:41:34.1335084] (Utility.Process) process [2248] done ExitFailure 255
Transfer failed
--
No other repository is known to contain the file.
failed
[2021-12-09 10:41:34.1405139] (Utility.Process) process [14104] done ExitSuccess
--
[2021-12-09 10:41:34.1475217] (Utility.Process) process [500] done ExitSuccess
get: 1 failed
```
### What version of git-annex are you using? On what operating system?
Windows, 8.20211124-ga8ff96864
[[!meta author=yoh]]
[[!tag projects/dandi]]

View file

@ -0,0 +1,29 @@
[[!comment format=mdwn
username="jasonb@ab4484d9961a46440958fa1a528e0fc435599057"
nickname="jasonb"
avatar="http://cdn.libravatar.org/avatar/c7330f4da122c671b935fc1d58bb02b1"
subject="comment 5"
date="2021-12-09T16:20:48Z"
content="""
Yes, once I saw those errors, I went back and did a `get annex copy --from <remote>` and recovered them. But what happened after that it seems I can't provide evidence of is running `git annex export ...` did not export the recovered files. It puzzlingly showed output that it was copying the files.
(The `git annex sync --no-content` was because I've gotten used to running that for other repos where not doing that will copy files into a repo where I intentionally need them dropped. In this case, the goal was just to make sure the git branches properly reflected any file adds, deletes, and renames.)
But on the target device, there was no evidence that the files were there. I ran an `ls` and they weren't present. I can't fathom why. But further attempts to export the files were unsuccessful. It seems you can't re-export files that already were copied. But they were nonetheless absent. I suppose this sounds fantastical, and somehow it is probably user error.
And this is the remote definition.
```
[remote \"film-depot\"]
annex-directory = /Volumes/WDCGREEN/films
annex-uuid = 59db1192-02ff-440a-86d4-xxxx
skipFetchAll = true
annex-ignore = false
```
In any case, I'd successfully done exports here in the past, and had the files appear at the destination. So I'm doing something wrong, somehow.
Can I just \"reset\" the export remote and start over again fresh?
Thanks.
"""]]