Hashed storage: accumulating unpacked objects in old repositories

We’re running a Self Hosted instance, and have been regularly upgrading on a monthly basis as GitLab versions are released. We migrated to hashed storage last year and had no problems with it for months of usage.

Since we upgraded to GitLab 14.3 at the end of September 2021, we’ve
noticed a large increase in the rate of inode allocation on the host’s filesystem. We’re currently on GitLab 14.6 and the increase in usage continues. We recently discovered that old repositories, e.g., user forks untouched since 2017, are getting unpacked in their hashed storage location on the filesystem. It’s as if something is running git unpack-objects on old repositories arbitrarily, but still leaving the original packs on disk too. This is causing a large amount of unnecessary disk usage.

Has anyone else seen this? Is there some kind of long-running migration or maintenance service that’s sweeping through all repositories?

I suspect that the git repack -A -l -d ... executed by housekeeping is leaving behind loose objects that are unreachable. However, I’m not sure what’s causing the repack to run in old repositories to which no pushes have been made. Also, the repack doesn’t seem to ever be followed up by a git gc step to clean out the loose objects from the disk.