This appears to be a new issue introduced at 2.44.0. It only occurs on NonStop ia64 but not on x86. I am not sure why this is happening although 1Mb exceeds the single I/O size on this machine. expecting success of 7704.9 '--max-cruft-size with pruning': git init max-cruft-size-prune && ( cd max-cruft-size-prune && test_commit base && foo="$(generate_random_blob foo $((1024*1024)))" && bar="$(generate_random_blob bar $((1024*1024)))" && baz="$(generate_random_blob baz $((1024*1024)))" && test-tool chmtime -10000 "$objdir/$(test_oid_to_path "$foo")" && git repack -d --cruft --max-cruft-size=1M && # backdate the mtimes of all cruft packs to validate # that they were rewritten as a result of pruning ls $packdir/pack-*.mtimes | sort >cruft.before && for cruft in $(cat cruft.before) do mtime="$(test-tool chmtime --get -10000 "$cruft")" && echo $cruft $mtime >>mtimes || return 1 done && # repack (and prune) with a --max-cruft-size to ensure # that we appropriately split the resulting set of packs git repack -d --cruft --max-cruft-size=1M \ --cruft-expiration=10.seconds.ago && ls $packdir/pack-*.mtimes | sort >cruft.after && for cruft in $(cat cruft.after) do old_mtime="$(grep $cruft mtimes | cut -d" " -f2)" && new_mtime="$(test-tool chmtime --get $cruft)" && test $old_mtime -lt $new_mtime || return 1 done && test_line_count = 3 cruft.before && test_line_count = 2 cruft.after && test_must_fail git cat-file -e $foo && git cat-file -e $bar && git cat-file -e $baz ) Initialized empty Git repository in /home/ituglib/randall/jenkins/.jenkins/workspace/Git_Pipeline/t/trash directory.t7704-repack-cruft/max-cruft-size-prune/.git/ [master (root-commit) d1ff1c9] base Author: A U Thor mailto:author@xxxxxxxxxxx 1 file changed, 1 insertion(+) create mode 100644 base.t Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Enumerating cruft objects: 6, done. Counting objects: 100% (3/3), done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), done. Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Writing objects: 100% (3/3), done. Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 (from 0) ls: cannot access '.git/objects/pack/pack-*.mtimes': No such file or directory test_line_count: line count for cruft.after != 2 not ok 9 - --max-cruft-size with pruning # # git init max-cruft-size-prune && # ( # cd max-cruft-size-prune && # # test_commit base && # foo="$(generate_random_blob foo $((1024*1024)))" && # bar="$(generate_random_blob bar $((1024*1024)))" && # baz="$(generate_random_blob baz $((1024*1024)))" && # # test-tool chmtime -10000 "$objdir/$(test_oid_to_path "$foo")" && # # git repack -d --cruft --max-cruft-size=1M && # # # backdate the mtimes of all cruft packs to validate # # that they were rewritten as a result of pruning # ls $packdir/pack-*.mtimes | sort >cruft.before && # for cruft in $(cat cruft.before) # do # mtime="$(test-tool chmtime --get -10000 "$cruft")" && # echo $cruft $mtime >>mtimes || return 1 # done && # # # repack (and prune) with a --max-cruft-size to ensure # # that we appropriately split the resulting set of packs # git repack -d --cruft --max-cruft-size=1M \ # --cruft-expiration=10.seconds.ago && # ls $packdir/pack-*.mtimes | sort >cruft.after && # # for cruft in $(cat cruft.after) # do # old_mtime="$(grep $cruft mtimes | cut -d" " -f2)" && # new_mtime="$(test-tool chmtime --get $cruft)" && # test $old_mtime -lt $new_mtime || return 1 # done && # # test_line_count = 3 cruft.before && # test_line_count = 2 cruft.after && # test_must_fail git cat-file -e $foo && # git cat-file -e $bar && # git cat-file -e $baz # ) # 1..9 -- Brief whoami: NonStop&UNIX developer since approximately UNIX(421664400) NonStop(211288444200000000) -- In real life, I talk too much.