Skip to content

Missing tags in compare page

Summary

I'm missing the last few tags in the compare page:
Screenshot_from_2021-05-06_11-40-42_2x

These tags do exist:
Screenshot_from_2021-05-06_11-40-55_2x

If I manually enter the tag through the URL (like: .../compare/0.21.3...master) I can compare as expected.

This happens with a url like: .../compare?from=master&to=master.

However, when I:

  1. Select an older tag
  2. Compare
  3. (I'm redirected to .../compare/0.21.0...master

Now when I search, the tags do show up:
Screenshot_from_2021-05-06_12-10-33_2x

Steps to reproduce

This just started happening in one of our projects. Possibly related to large amount of tags? But I don't have a clear way to reproduce this.

  1. Have more than 100 tags
  2. Go to compare page (.../compare?from=master&to=master)
  3. Open refs dropdown
  4. Type in part of a recent tag

Expected: You see all relevant tags
Actual: You miss the most recent tags

Example Project

This is happening on our self hosted Gitlab instance.

What is the current bug behavior?

You can't find the most recent tags in the dropdowns on the compare page.

What is the expected correct behavior?

You can find all tags in the dropdowns on the compare page.

Output of checks

Results of GitLab environment info

Expand for output related to GitLab environment info
Components:
GitLab 13.9.3 ()
GitLab Shell 13.17.0
GitLab Workhorse v8.63.2
GitLab API v4
Ruby 2.7.2p137
Rails 6.0.3.4
PostgreSQL 12.6
Redis 

Possible fixes

The refs request (.../refs)'s Tags array has precisely 100 items, which makes me think it's limited / capped at 100. I'd expect if this list was limited, when you search for a tag it would need to do a new search like request, but it only seems to rely on what was already retrieved?
When I go to a url with the valid compare (e.g. /compare/0.21.3...master) it does perform search requests and I do get the full list. So for some reason it doesn't do server side searches when on for example .../compare?from=master&to=master?

Edited by Peter Uithoven