Repository Graph loads slowly with refs that point to large blobs
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=20074) </details> <!--IssueSummary end--> ### Summary When a repo has a ref that points directly to a large blob, the Repository Graph loads slowly. ### Steps to reproduce Add two refs, a tag that points to a blob 1GiB of zeros, and refs/blobs/big2 that points to 1GiB of random data. ``` dd if=/dev/zero bs=1M count=1024 of=/tmp/thing sha=`git hash-object -w /tmp/thing` git tag big1 "$sha" dd if=/dev/urandom bs=1M count=1024 of=/tmp/thing sha=`git hash-object -w /tmp/thing` git tag big2 "$sha" mkdir .git/refs/blobs mv .git/refs/tags/big2 .git/refs/blobs/ git push --tags git push 'refs/blobs/*:refs/blobs/*' ``` Then go to gitlab and try to look at the repository graph. It takes much longer than before adding these objects. ### Example Project https://gitlab.com/rigel314/test-large-blob ### What is the current *bug* behavior? Repository graph loads slowly. ### What is the expected *correct* behavior? Repository graph ignores refs that aren't commits and loads quickly. ### Relevant logs and/or screenshots I expect it is trying to place all refs on the graph view. But it should only do that for refs that point to commits. ``` $ git cat-file -t refs/tags/big1 blob $ git cat-file -t refs/heads/master commit ``` ### Output of checks This bug happens on GitLab.com This bug also happens with GitLab Community Edition (10.1.0)
issue