2011-11-17 21:51:55 +00:00
|
|
|
Killing a migration from WORM to SHA256 with ^C breaks things; future attempts to do the migration fail:
|
|
|
|
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
BASE=/tmp/migrate-bug
|
|
|
|
|
|
|
|
set -x
|
|
|
|
|
|
|
|
chmod -R +w $BASE
|
|
|
|
rm -rf $BASE
|
|
|
|
mkdir -p $BASE
|
|
|
|
cd $BASE
|
|
|
|
|
|
|
|
# create annex
|
|
|
|
git init .
|
|
|
|
git annex init
|
|
|
|
|
|
|
|
# make a big (sparse) file and add it
|
|
|
|
dd if=/dev/zero of=bigfile bs=1 count=0 seek=1G
|
|
|
|
git annex add --backend WORM bigfile
|
|
|
|
git commit -m 'added bigfile'
|
|
|
|
|
|
|
|
# look at status
|
|
|
|
git annex status
|
|
|
|
|
|
|
|
# now migrate it, but kill migration during checksum
|
|
|
|
# Simulate ^C by making a new process group and sending SIGINT
|
|
|
|
setsid git annex migrate --backend SHA256 bigfile &
|
|
|
|
PID=$!
|
|
|
|
sleep 1
|
|
|
|
kill -INT -$PID
|
|
|
|
wait
|
|
|
|
|
|
|
|
# look at status
|
|
|
|
git annex status
|
|
|
|
|
|
|
|
# this migration fails
|
|
|
|
git annex migrate --backend SHA256 bigfile
|
|
|
|
|
|
|
|
# but fsck says everything's OK
|
|
|
|
git annex fsck
|
|
|
|
|
|
|
|
The error:
|
|
|
|
|
|
|
|
migrate bigfile
|
|
|
|
git-annex: /tmp/migrate-bug/.git/annex/objects/K9/V1/WORM-s1073741824-m1321566308--bigfile/WORM-s1073741824-m1321566308--bigfile: createLink: already exists (File exists)
|
|
|
|
failed
|
|
|
|
git-annex: migrate: 1 failed
|
|
|
|
|
2011-11-17 22:29:28 +00:00
|
|
|
> Fixed it to delete the stale temp file. [[done]]
|
|
|
|
>
|
|
|
|
> Thanks for making such clear test cases, Jim! --[[Joey]]
|