This commit is contained in:
		
					parent
					
						
							
								2eef19d19d
							
						
					
				
			
			
				commit
				
					
						4fad4c2068
					
				
			
		
					 1 changed files with 51 additions and 0 deletions
				
			
		| 
						 | 
					@ -0,0 +1,51 @@
 | 
				
			||||||
 | 
					### Please describe the problem.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					During a git annex fsck --fast --from <someexternalremote>, any CHECKPRESENT-SUCCESS responses are considered failures:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fsck file 
 | 
				
			||||||
 | 
					      failed to download file from remote
 | 
				
			||||||
 | 
					    failed
 | 
				
			||||||
 | 
					    (recording state in git...)
 | 
				
			||||||
 | 
					    git-annex: fsck: 1 failed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It doesn't appear that the external protocol is being violated in any way; it occurs both with my special external (https://git.encryptio.com/slime/blob/refs/heads/master:/misc/git-annex-remote-slime/main.go) and with the example external remote. Making these dump their IO to stderr shows they're behaving correctly, as far as I can tell.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					`git annex testremote` passes on these remotes too, so it's not catching the issue (though it probably should.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### What steps will reproduce the problem?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					With https://git-annex.branchable.com/special_remotes/external/example.sh/ installed as "git-annex-remote-externaltest", this script shows the issue:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[[!format sh """
 | 
				
			||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					[ -e "annex-test-dirs/repo/.git/annex/objects" ] && (
 | 
				
			||||||
 | 
					    find "annex-test-dirs/repo/.git/annex/objects" -type f -exec chmod 0644 {} \;
 | 
				
			||||||
 | 
					    find "annex-test-dirs/repo/.git/annex/objects" -type d -exec chmod 0755 {} \;
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					rm -rf annex-test-dirs
 | 
				
			||||||
 | 
					mkdir -p annex-test-dirs/{repo,data}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					cd annex-test-dirs/repo
 | 
				
			||||||
 | 
					git init
 | 
				
			||||||
 | 
					git annex init
 | 
				
			||||||
 | 
					MYPASSWORD=a MYLOGIN=b git annex initremote ext type=external encryption=none externaltype=externaltest directory="$(pwd)/../data"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "data" > file
 | 
				
			||||||
 | 
					git annex add file
 | 
				
			||||||
 | 
					git commit -m message
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git annex copy --to ext
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# this works:
 | 
				
			||||||
 | 
					git annex fsck --from ext
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# but this incorrectly fails and marks the file "not present":
 | 
				
			||||||
 | 
					git annex fsck --fast --from ext
 | 
				
			||||||
 | 
					"""]]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### What version of git-annex are you using? On what operating system?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git-annex 5.20150420-gb0ebb23, from the linux standalone tarball, on linux.
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue