Skip to content

GitLab Next

    • GitLab: the DevOps platform
    • Explore GitLab
    • Install GitLab
    • How GitLab compares
    • Get started
    • GitLab docs
    • GitLab Learn
  • Pricing
  • Talk to an expert
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Menu
    Projects Groups Snippets
  • Get a free trial
  • Sign up
  • Login
  • Sign in / Register
  • GitLab FOSS GitLab FOSS
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Code review
    • Insights
    • Issue
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar

GitLab 15.0 is launching on May 22! This version brings many exciting improvements, but also removes deprecated features and introduces breaking changes that may impact your workflow. To see what is being deprecated and removed, please visit Breaking changes in 15.0 and Deprecations.

  • GitLab.org
  • GitLab FOSSGitLab FOSS
  • Merge requests
  • !11449
Project 'gitlab-org/gitlab-ce' was moved to 'gitlab-org/gitlab-foss'. Please update any links and bookmarks that may still have the old path.
Merged
Created May 17, 2017 by Bob Van Landuyt@reprazent🔶Maintainer7 of 9 tasks completed7/9 tasks
  • Review changes

  • Download
  • Email patches
  • Plain diff

Circuitbreaker for storage paths

  • Overview 249
  • Commits 11
  • Pipelines 71
  • Changes 44

What does this MR do?

In this MR, all access to the repository is wrapped in a a safeguard (CircuitBreaker). When an access to the repository fails because the the storage is not available (for example NFS not responding), this is logged. Subsequent requests will be blocked if they are too soon after the last failure, or if there have been too many failures, since that probably means that there is something wrong.

The amount of failures per storage are visible in the admin dashboard.

  • Circuitbreaker for storage access. And all access wrapped in it
  • Configuration of threshold for storage failures
  • Storage report in admin panel.
  • Reset failure counters from admin panel to unblock access.

Are there points in the code the reviewer needs to double check?

How do we define the thresholds for for blocking access to storage, currently hardcoded, but maybe it should be configured per storage in gitlab.yml.

Why was this MR needed?

This is needed to avoid GitLab marking repositories as missing.

https://gitlab.com/gitlab-org/gitlab-ce/issues/32207

Screenshots

GitLab blocking indefinitely:

Screen_Shot_2017-07-28_at_15.32.55

GitLab blocking temporarily:

Screen_Shot_2017-07-28_at_15.30.24

There was a recent failure, but the next attempt will be allowed:

Screen_Shot_2017-07-28_at_15.31.24

Does this MR meet the acceptance criteria?

  • Changelog entry added, if necessary
  • API support added
  • Tests
    • Added for this feature/bug
    • All builds are passing
  • Squashed related commits together

What are the relevant issue numbers?

Closes #32207 (closed) Closes #33117 (closed) Closes https://gitlab.com/gitlab-com/infrastructure/issues/1946 Closes https://gitlab.com/gitlab-com/infrastructure/issues/1775

First step in https://gitlab.com/gitlab-org/gitlab-ce/issues/33220

Second attempt of: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/10971

Omnibus Config changes: omnibus-gitlab!1749 (merged)

Edited Aug 02, 2017 by Bob Van Landuyt
Assignee
Assign to
Reviewer
Request review from
Time tracking
Source branch: bvl-nfs-circuitbreaker