-
Notifications
You must be signed in to change notification settings - Fork 6.5k
fix: the concurrency issue with git detached processing in Repo Server (#25101) #25127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
fix: the concurrency issue with git detached processing in Repo Server (#25101) #25127
Conversation
Configures git options maintenance.autoDetach=false and gc.autoDetach = false when running Git commands using environment variables, which have preference over any file based configurations that can be provided by user. Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
❗ Preview Environment deployment failed on BunnyshellSee: Environment Details | Pipeline Logs Available commands (reply to this comment):
|
|
Please elaborate on the precise problem this addresses. |
Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
Signed-off-by: Eugene Doudine <eugene.doudine@octopus.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #25127 +/- ##
=========================================
Coverage ? 62.24%
=========================================
Files ? 351
Lines ? 49222
Branches ? 0
=========================================
Hits ? 30638
Misses ? 15656
Partials ? 2928 ☔ View full report in Codecov by Sentry. |
Fixes #25101
This PR configures git processes, which are run from Repo Server,
to run repository maintenance/garbage collection in foreground mode,
thus solving the concurrency issue described in #25101.
The PR creates list of mandatory git options (Builtin Git Config)
that will be set for all git processes:
The first one disables background maintenance (including GC) for Git version > 2.46.
The second one disables background garbage collection for earlier Git versions.
By setting the environment variable ARGOCD_GIT_BUILTIN_CONFIG_DISABLED=true
it is possible to disable this mechanism to experiment with background processing or
if this concurrency problem is not an issue in a specific environment.
This PR should be cherry-picked into older supported releases beacause
the problem can potentially happen with older releases (see #25101 for the explanation).
I see that e2e test seems to be flaky and fail for some k8s versions,
do not think this is related to the change.
Checklist: