Skip to content

WIP FetchIntoObjectPool: stop creating dangling refs

Jacob Vosmaer requested to merge jv-pool-no-dangle into master

Towards #1900 (closed)

  • stop creating "dangling refs"
  • be careful not to delete unreachable objects during repack

I'm on the fence about this idea. It will make it easier for adminstrators to delete data; after this all you have to do is run git gc in a pool repository. Before this change, the dangling refs prevented git gc from deleting data on its own. On the other hand, having millions of dangling refs after just a few months of using dedup is clearly not what we want. And as we saw on gitlab.com, a determined operator can go in and delete data anyway, even with dangling refs to prevent that.

I think it's more important to widely deploy core.alternateRefsCommand=exit 0 # and !1464 (merged). (Already done)

Having said that, something weird is going on, and we are already in a bad situation (as of 2019-10-21, 1M dangling refs for gitlab-org/gitlab's pool...).

Edited by Jacob Vosmaer

Merge request reports