Out of curiosity, since this bitmap index generation seems to be not playing along with gc, I wonder if there is any way to monitoring something (anything) to actually have data that correlates these cases. Do you think there is any way to monitor this?
I am wondering now if repack.writeBitmaps has more impact than we think. In the code I am working on I want to have repack.writeBitmaps off by default and only turn it on on individual git commands when we want it.
@jacobvosmaer-gitlab yeah, it feels strange to get such an error message with git repack -d and repack.writeBitmaps=true.
Could you try also passing -a or -A to git repack?
I think with repack.writeBitmaps=true, git repack should default to doing -a or -A (that is to pack everything into a single pack) even if they are not explicitly passed, as bitmaps only work with a single pack, but perhaps there is a reason why it has not been implemented.
I created an issue earlier today (https://gitlab.com/gitlab-org/gitlab-ce/issues/23775) to see if we maybe need to GC more often, instead of less. I have a hunch that only collecting once an hour may be a reason for CE being slow. We had more instances of it being slow with everything pointing at the infrastructure side of things (Ceph, etc) being fine. I haven't confirmed this yet though, still looking into it.
Thanks @yorickpeterse . Anecdotally, we had a spell of non-responsiveness on gitlab-ce yesterday which went away after @jnijhof manually ran git gc on that repo on one of our production servers. (I wonder if he could have used the UI button too, because that is on a page that might still load.)
So I am now also thinking we need to have the flexibility to run git gc or one of its friends (git repack) more often. For that it would help to get ExclusiveLease#cancel implemented; @grzesiek has been working on that in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7031 .