Recent comments posted to this site:
I'm not familiar with beegfs, but its documentation such as this https://doc.beegfs.io/latest/architecture/overview.html makes me wonder if it manages to behave consistently as we would expect a filesystem to behave.
In particular, we have a file being moved from one directory to another directory. Beegfs's docs says it will pick a random metadata node for each directory. So there can be two metadata nodes that have to be updated for a move. If one node somehow lags seeing the update, could that result in the file not appearing as present in the destination directory after the move?
I'm only speculating about how beegfs might work, but it seems unlikely that git-annex has a bug that causes it to lose an annexed file when all it's done is move it to the objects directory, that only manifests on this one filesystem.
A good next step might be to try manually adding an annexed file and see
if there is some lag between git-annex add
and being able to read the content
of the symlink. Eg, compare:
echo foo > foo
git-annex add foo; cat foo
echo bar > bar
git-annex add bar; sleep 1m; cat bar
The failures are mostly of two varieties.
type A:
add: FAIL (2.20s)
./Test/Framework.hs:395:
checkcontent foo
expected: "annexed file content"
but got: "could not read file"
type B:
init: OK (1.98s)
add: FAIL (5.90s)
./Test/Framework.hs:92:
unlock failed with unexpected exit code (transcript follows)
unlock sha1foo cp: cannot open '.git/annex/objects/3j/xV/SHA1-s25--ee80d2cec57a3810db83b80e1b320df3a3721ffa/SHA1-s25--ee80d2cec57a3810db83b80e1b320df3a3721ffa' for reading: No such file or directory
In both cases, a git-annex add
is succeeding, but the annex objects
directory is somehow not getting populated. Or at least, a subsequent read
of a file in it has the filesystem not knowing the file that the add put
there is there.
It seems quite likely a lot of other tests would also fail, but they are being skipped because the add tests fail.
In one case, the add tests are succeeding (on an adjusted unlocked branch), but then a subsequent test fails:
git-remote-annex exporttree: FAIL (8.45s)
./Test/Framework.hs:92:
export failed with unexpected exit code (transcript follows)
mv: cannot move '.git/annex/othertmp/89ddefa4-a04c-11.0/89ddefa4-a04c-11' to '.git/annex/export.ex/89ddefa4-a04c-11ef-818d8a-1-c6223d6': Device or resource busy
mv: cannot move '.git/annex/othertmp/89ddefa4-a04c-11.0/89ddefa4-a04c-11' to '.git/annex/export.ex/89ddefa4-a04c-11ef-818d8a-2-c718026': Device or resource busy
git-annex: renamePath:rename '.git/annex/othertmp/89ddefa4-a04c-11.0/89ddefa4-a04c-11' to '.git/annex/export.ex/89ddefa4-a04c-11ef-87b5-e880882a4f98': resource busy (Device or resource busy)
git push
as well, gets stuck on Writing objects: 96% (1855/1932)
. Using newer git (2.45.1) from within a singularity env on client didn't help, so must be connection or target git (running git receive-pack
) related... heh - the costs of upgrades! 
similarly, if I try to get
into server from the originally the client -- similar stall at
[2025-08-25 12:54:34.537964095] (Utility.Process) process [875925] done ExitSuccess
[2025-08-25 12:54:34.538354083] (Utility.Process) process [875929] read: git ["--git-dir=/home/yoh/proj/dandi/zarr-manifests/.git","--work-tree=/home/yoh/proj/dandi/zarr-manifests","--literal-pathspecs","-c","annex.debug=true","show-ref","--hash","refs/annex/last-index"]
[2025-08-25 12:54:34.541389023] (Utility.Process) process [875929] done ExitSuccess
[2025-08-25 12:54:34.542713902] (P2P.IO) [ThreadId 4] P2P > DATA 24576
[2025-08-25 12:54:34.512358033] (P2P.IO) [git-annex-shell connection Just 551102] [ThreadId 4] P2P < DATA 24576
similarly, if I try to get
into server from the originally the client -- similar stall at
[2025-08-25 12:54:34.537964095] (Utility.Process) process [875925] done ExitSuccess
[2025-08-25 12:54:34.538354083] (Utility.Process) process [875929] read: git ["--git-dir=/home/yoh/proj/dandi/zarr-manifests/.git","--work-tree=/home/yoh/proj/dandi/zarr-manifests","--literal-pathspecs","-c","annex.debug=true","show-ref","--hash","refs/annex/last-index"]
[2025-08-25 12:54:34.541389023] (Utility.Process) process [875929] done ExitSuccess
[2025-08-25 12:54:34.542713902] (P2P.IO) [ThreadId 4] P2P > DATA 24576
[2025-08-25 12:54:34.512358033] (P2P.IO) [git-annex-shell connection Just 551102] [ThreadId 4] P2P < DATA 24576
Hi Joey,
thank you very mich for the quick implementation of this feature! I have tested it already successfully
There seems to be an minor issue when I am trying to set encryptonlycreds=yes
via SETCONFIG
, followed by a subsequent SETCREDS
:
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> VERSION 2
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] <-- EXTENSIONS INFO GETGITREMOTENAME UNAVAILABLERESPONSE ASYNC
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> EXTENSIONS INFO
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] <-- LISTCONFIGS
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> CONFIGEND
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] <-- INITREMOTE
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> GETCONFIG encryption
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] <-- VALUE hybrid
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> GETCONFIG onlyencryptcreds
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] <-- VALUE
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> SETCONFIG onlyencryptcreds yes
(Annex.ExternalAddonProcess) git-annex-remote-tape[1] --> SETCREDS key aes256 70482ccb1e0a0b8f8bf6f2603174d2d6f40d940033285d3ae94e7258595dca26
git-annex: getRemoteConfigValue onlyencryptcreds found value of unexpected type PassedThrough. This is a bug in git-annex!
CallStack (from HasCallStack):
error, called at ./Annex/SpecialRemote/Config.hs:209:28 in main:Annex.SpecialRemote.Config
getRemoteConfigValue, called at ./Remote/Helper/Encryptable.hs:297:27 in main:Remote.Helper.Encryptable
failed
initremote: 1 failed
I am not sure if this is even supposed to be supported? Let me know if I am using it in the wrong way
Downloading git-annex...
--2025-08-24 12:49:08-- https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-arm64-ancient.tar.gz
Resolving downloads.kitenet.net (downloads.kitenet.net)... 66.228.36.95, 2600:3c03::f03c:91ff:fe73:b0d2
Connecting to downloads.kitenet.net (downloads.kitenet.net)|66.228.36.95|:443... connected.
HTTP request sent, awaiting response... 403 Forbidden
2025-08-24 12:49:09 ERROR 403: Forbidden.
The Download with the git-annex-install script fail, I guess because the build is failed. see: https://downloads.kitenet.net/git-annex/autobuild/arm64-ancient/
enableremote encryption changes: FAIL (0.73s)
./Test/Framework.hs:92:
initremote failed with unexpected exit code (transcript follows)
initremote baz
git-annex: There is no security benefit to using onlyencryptcreds=yes with encryption=shared
failed
initremote: 1 failed
It would be grate if you could fix that. Thanks in advance.
git reflog
to see previous states of a branch.
3x more allocations now than before. This is probably due to the switch to OsPath, which means extra copying from ByteString.
Thu Aug 21 20:18 2025 Time and Allocation Profiling Report (Final)
git-annex +RTS -p -RTS find
total time = 0.99 secs (989 ticks @ 1000 us, 1 processor)
total alloc = 1,514,545,208 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC %time %alloc
keyFile Annex.Locations Annex/Locations.hs:(790,1)-(806,44) 7.1 12.9
>>=.\ Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:(148,9)-(149,44) 6.9 2.4
>>=.\.succ' Data.Attoparsec.Internal.Types Data/Attoparsec/Internal/Types.hs:148:13-76 5.6 0.7
keyFile.esc Annex.Locations Annex/Locations.hs:(796,9)-(801,32) 5.3 10.7
ifM Utility.Monad Utility/Monad.hs:(62,1)-(64,44) 5.1 8.7
ifM.\ Utility.Monad Utility/Monad.hs:64:9-44 3.5 8.6
hashUpdates.processBlocks Crypto.Hash Crypto/Hash.hs:(103,5)-(112,76) 3.1 0.3
inAnnex'.\ Annex.Content.Presence Annex/Content/Presence.hs:(53,61)-(68,31) 3.1 8.5
keyFile.anyneedesc Annex.Locations Annex/Locations.hs:806:9-44 3.1 1.0
seekFilteredKeys.exists CmdLine.Seek CmdLine/Seek.hs:465:9-92 2.8 0.4
fileKey Annex.Locations Annex/Locations.hs:(814,1)-(824,41) 2.1 1.0
keyPath Annex.Locations Annex/Locations.hs:(834,1)-(836,23) 1.8 5.9