Skip to content

Adding a further troubleshooting step regarding unreachable objects

What does this MR do?

The 'Reducing repository size' page defines a process for reducing the storage use of GitLab repositories.

After completing this process, some users report that their file system usage shown in the UI and directly via terminal does not decrease. This MR adds a troubleshooting step to ensure customers can ensure their storage usage reduction expectations are met.


This issue appears to be related to keep-refs and the unreachable objects that result from executing the outlined process.

This (internal) issue describes the issue thusly:

While the repository statistics are correct, they are only correct in a technical sense as we simply take the size of the complete Git repository. This size thus also takes into account internal bookkeeping done by GitLab and Gitaly:

  • It includes objects referenced by internal references like keep-around refs which cannot actually be controlled by the customer.
  • It includes objects that aren't referenced by anything anymore and which would get pruned after a grace period of two weeks. So even if a customer rewrites their repository so that it is smaller, they would have to wait for two weeks by default until that rewrite is reflected in the repository size.

The issue also notes:

There had been tries to implement accurate repository size calculations that really only take into account what customers can control. But due to some painpoints and incidents caused by it we had to roll back this change.

This customer resolved the issue by executing the 'Prune Unreachable Objects' housekeeping task after completing the documented process on this page.

Related issues

Author's checklist

If you are a GitLab team member and only adding documentation, do not add any of the following labels:

  • ~"frontend"
  • ~"backend"
  • ~"type::bug"
  • ~"database"

These labels cause the MR to be added to code verification QA issues.

Reviewer's checklist

Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.

If you aren't sure which tech writer to ask, use roulette or ask in the #docs Slack channel.

  • If the content requires it, ensure the information is reviewed by a subject matter expert.
  • Technical writer review items:
    • Ensure docs metadata is present and up-to-date.
    • Ensure the appropriate labels are added to this MR.
    • Ensure a release milestone is set.
    • If relevant to this MR, ensure content topic type principles are in use, including:
      • The headings should be something you'd do a Google search for. Instead of Default behavior, say something like Default behavior when you close an issue.
      • The headings (other than the page title) should be active. Instead of Configuring GDK, say something like Configure GDK.
      • Any task steps should be written as a numbered list.
      • If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
  • Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review.

Merge request reports