Please describe the problem.
Git annex finds problems with the repository after only adding and syncing a single empty file to the repository.
What steps will reproduce the problem?
- Create one repository each on devices
A
andB
via webapp - Pair with a passphrase via webapp
- Wait until full sync
- Make sure
git annex repair
finds no problems - Create an empty file
test.sh
on deviceA
- Wait until both webapps show sync and transfer has completed
Both repositories are now in a bad state.
git annex repair
reports error coderepair: 1 failed
,--force
seems to repair, but the nextgit annex repair
always fails again withrepair: 1 failed
- This is true for both repositories
What version of git-annex are you using? On what operating system?
Linux 5.17.3-arch1-1 #1 SMP PREEMPT x86_64 GNU/Linux
device A
Linux 5.17.4-arch1-1 #1 SMP PREEMPT x86_64 GNU/Linux
device B
Version provided from package manager:
git-annex version: 10.20220322-g959beeea9
build flags: Assistant Webapp Pairing Inotify DBus DesktopNotify TorrentParser MagicMime Feeds Testsuite S3 WebDAV
dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.30 DAV-1.3.4 feed-1.3.2.1 ghc-9.0.2 http-client-0.7.11 persistent-sqlite-2.13.0.3 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.2
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
operating system: linux x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 0 1 2 3 4 5 6 7 8 9 10
Please provide any additional information below.
The bug is very easy to reproduce. This happens in a bigger repository of mine, where I git annex repair
doesn't seem to do anything. I narrowed it down to this example and I hope it's the same cause.
Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)
Using it daily, with small-sized repositories.
I have managed to further reduce the setup to generate this bug. No connection to another device necessary.
Steps:
git annex webapp
exec.zip
Now the repository is broken.
The log shows nothing interesting, as far as errors go.
Why causes a single file
git annex repair
to fail?Fast reproducible example:
Thank you, your "Reproducible Example" worked for me to reproduce it! Great work finding this and tracking down an easy way to reproduce it.
So the root of the problem is refs/annex/last-index, which contains a tree object, not a commit object. That is unusual for a ref, but git-annex has a good reason to record a tree's ref there.
Fixed