Please describe the problem.
Running git annex init
on an unRAID server results in an annex created with crippledfilesystem = true
and direct = true
. I understand from reading this that it occurs when git annex init
performs a probe to determine if all of the following are supported:
- symlinks
- hard links
- unix permissions
Although unRAID disks are formatted with xfs, and therefore support all three of the above, I'm assuming that unRAID's method of combining multiple disks into one "share" is the cause of the problem (hardlinks still work on a single disk, but not on shares that span multiple disks). Symlinks and unix permissions work normally in the unRAID-created shares.
Is there any way to allow the use of 'indirect' mode with multi-disk shares? As I mentioned, symlinks and unix permissions work normally--it's only the hardlinks that won't work across the multi-disk shares.
I can create a 'normal' annex as long as I cd
to a single disk drive first--what would happen if the annex was later moved onto a multi-disk share? Would it still work? Would it fail gracefully? Would it cause data loss?
What steps will reproduce the problem?
cd /mnt/user/NameOfShare
git init
git annex init
The following will result in the creation of a 'normal' indirect share:
cd /mnt/disk1
git init
git annex init
What version of git-annex are you using? On what operating system?
git-annex version: 6.20161211-gc3ab3c668
build flags: Assistant Webapp Pairing Testsuite S3(multipartupload)(storageclasses) WebDAV Inotify DBus DesktopNotify XMPP ConcurrentOutput TorrentParser MagicMime Feeds Quvi
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 SHA1E SHA1 MD5E MD5 WORM URL
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav tahoe glacier ddar hook external
Please provide any additional information below.
# If you can, paste a complete transcript of the problem occurring here.
# If the problem is with the git-annex assistant, paste in .git/annex/daemon.log
# End of transcript or log.
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)
Has been working great, so far, except for the above.
done; I think this just doesn't support permissions correcectly, and there does not appear to be a git-annex bug. --Joey
Lack of support for hard links does not make git-annex enable crippled filesystem mode. Lack of support for either symlinks or unix permissions are the only things that cause that.
I assume that you've checked that you can create symlinks on the UnRaid.
Unix permissions may seem to work, eg they can be set. However, git-annex checks if they actually work, by creating a file, removing the write bit, and trying to write to it. If the write succeeds, the filesystem is not actually honoring permissions.
Using git-annex in indirect mode with such a filesystem can result in data loss. For example:
Here the echo follows the symlink to the single copy of the file in .git/annex/objects/ and ignoring the permissions that don't allow writing it it, overwrites it with other data.
git annex fsck
will then tell you that you've lost the old content of the file.So, I don't recommend trying to bypass git-annex's check for crippled filesystems.