Skip to content

UX improvement - NOT syncing all repositories when filtered on 'failed'

Release notes

Problem to solve

Emergency call with customer, we looked into a relatively small number of repositories that had failed to sync. GitLab team members can find out more in the ticket and SF

geofeat2

They had around 28,500 repositories in total.

We drilled into the issues for individual repos, ending up in this view, with 'filer by status' set to 'failed'.

resync

The errors looked to be temporary, so we agreed to trigger a resync for those repos.

Neither the customer or I expected the 'resync all' button to literally resync all 28,500 repositories. Not when filtered on just failed ones.

The customer therefore accidentally triggered a resync of all 28,500 twice - we realised what was going on the second time.

Saw this on 13.6.7 - single node Omnibus (a very large server)

Intended users

User experience goal

In this context, it would be expected (and it would be nice) if the buttons resynced just failed repos.

I guess the rails console instructions in the docs are doing a similar thing, so being able to do it in the UI would be nice?

failed_geo_syncs.each do |fgs|
  registry = Geo::ProjectRegistry.failed.find(fgs)
  registry.update(resync_repository: true, force_to_redownload_repository: false, repository_retry_count: 0)
  Geo::RepositorySyncService.new(registry.project).execute
end

A good first iteration would be to warn that this will resync ALL repos, as if a customer's troubleshooting failed ones, resetting all repos to 'unsynced' is not desirable.

Proposal

Further details

Permissions and Security

Documentation

Availability & Testing

Available Tier

What does success look like, and how can we measure that?

What is the type of buyer?

Is this a cross-stage feature?

Links / references

Edited by Sunjung Park