Age | Commit message (Collapse) | Author |
|
When a container registry has many tags, it's easy for the DELETE call to take more
than 60 seconds and fail. This can also leave the registry in a bad state with
null bytes since some of the images have been deleted with tags still pointing to them.
In addition, we have to prevent users from accidentally initiating the delete multiple
times or this could leave the registry with orphaned tags.
This commit also adds a flash message to notify the user the registry is scheduled
for deletion.
Closes #49926, #51063
|
|
|
|
Blacklist the use of destroy_all
See merge request gitlab-org/gitlab-ce!21250
|
|
|
|
This whitelists all existing places where we use "destroy_all".
|
|
Group todos
See merge request gitlab-org/gitlab-ce!20675
|
|
Respond to DB health in background migrations
See merge request gitlab-org/gitlab-ce!20720
|
|
This changes the BackgroundMigration worker so it checks for the health
of the DB before performing a background migration. This in turn allows
us to reduce the minimum interval, without having to worry about blowing
things up if we schedule too many migrations.
In this setup, the BackgroundMigration worker will reschedule jobs as
long as the database is considered to be in an unhealthy state. Once the
database has recovered, the migration can be performed.
To determine if the database is in a healthy state, we look at the
replication lag of any replication slots defined on the primary. If the
lag is deemed to great (100 MB by default) for too many slots, the
migration is rescheduled for a later point in time.
The health checking code is hidden behind a feature flag, allowing us to
disable it if necessary.
|
|
to "for all new and renamed projects""
|
|
Make CreateGpgSignatureWorker backwards compatible with original method signature (CE port)
See merge request gitlab-org/gitlab-ce!20998
|
|
signature
Older versions of GitPushService push a single commit SHA string to the queue,
but Gitaly requires that the parameters sent by CreateGpgSignatureWorker are
an array. It's possible to have old workers using this original signature or
jobs in the retry queue that would fail if CreateGpgSignatureWorker can't
handle the string form.
|
|
|
|
Our friends at GitHub show the programming languages for a long time,
and inspired by that this commit means to create about the same
functionality.
Language detection is done through Linguist, as before, where the
difference is that we cache the result in the database. Also, Gitaly can
incrementaly scan a repository. This is done through a shell out, which
creates overhead of about 3s each run. For now this won't be improved.
Scans are triggered by pushed to the default branch, usually `master`.
However, one exception to this rule the charts page. If we're requesting
this expensive data anyway, we just cache it in the database.
Edge cases where there is no repository, or its empty are caught in the
Repository model. This makes use of Redis caching, which is probably
already loaded.
The added model is called RepositoryLanguage, which will make it harder
if/when GitLab supports multiple repositories per project. However, for
now I think this shouldn't be a concern. Also, Language could be
confused with the i18n languages and felt like the current name was
suiteable too.
Design of the Project#Show page is done with help from @dimitrieh. This
change is not visible to the end user unless detections are done.
|
|
Delete todos when users loses target read permissions
See merge request gitlab-org/gitlab-ce!20665
|
|
|
|
|
|
|
|
|
|
[master] Don't expose project names in various counters
See merge request gitlab/gitlabhq!2418
|
|
`perform_enqueued_jobs` is a Sidekiq method.
Using this method violates the Dependency inversion principle[0].
This commit replaces `perform_enqueued_jobs` with ActiveJob's abstract
method `perform_enqueued_jobs` in specs.
[0]: https://en.wikipedia.org/wiki/Dependency_inversion_principle
|
|
Delete UserActivities and related workers
Closes #43312
See merge request gitlab-org/gitlab-ce!20597
|
|
If you enter the following RFC 2822 compliant address:
`John Doe <john@doe.com>`
Gitlab will attempt to send three emails:
1) John
2) Doe
3) john@doe.com
With this change given the following:
`John Doe <johndoe@example.com>`
`Jane Doe <janedoe@example.com>`
Gitlab will send emails to `johndoe@example.com` and `janedoe@example.com`
|
|
|
|
|
|
|
|
'45592-nomethoderror-undefined-method-commit-for-nil-nilclass-in-sidekiq-caused-by-a-merge-commit-in-a-forked-project-with-upstream-project-deleted' into 'master'
Resolve "NoMethodError: undefined method `commit' for nil:NilClass in sidekiq caused by a merge commit in a forked project with upstream project deleted."
Closes #45592
See merge request gitlab-org/gitlab-ce!20534
|
|
When the Gitaly call failed, the exception handling failed
because `method` is expected to have a parameter.
Closes #49096
|
|
|
|
|
|
|
|
We saw in production that DispatchWorker was running about twice an hour,
which would schedule twice as many jobs as it should.
For some reason, BatchWorker was running 1000 times per hour, possibly
due to Sidekiq RSS kills that caused these jobs to restart.
Adding an ExclusiveLease prevents these jobs from running more
than they should.
Relates to https://gitlab.com/gitlab-com/infrastructure/issues/4526
|
|
|
|
|
|
|
|
'44726-cancel_lease_upon_completion_in_project_cache_worker' into 'master'"
This reverts merge request !20103
|
|
This adds a recurring Sidekiq job that removes up to 50 000 old web hook
logs per hour, if they are older than 90 days. This will prevent the
web_hook_logs table from growing indefinitely.
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/46120
|
|
|
|
|
|
The RepositoryCheck::DispatchWorker will start a
RepositoryCheck::BatchWorker for each healthy shard.
Closes gitlab-org/gitlab-ce#48042
|
|
|
|
|
|
Various counters would expose either project names, or full project
paths (e.g. "gitlab-org/gitlab-ce"). This commit changes various places
where we use "add_event" so we no longer expose (potentially) private
information.
|
|
We need this because `expect_any_instance_of` doesn't work on
prepended models. Now we could use the same code between CE/EE
|
|
Closes https://gitlab.com/gitlab-org/gitaly/issues/817
Closes https://gitlab.com/gitlab-org/gitaly/issues/1236
|
|
Fix queue_name in Rails 5
Closes #47372
See merge request gitlab-org/gitlab-ce!19874
|
|
In Rails 5 DeliveryJob.queue_name may return Proc (probably
if block is used for queue name definition). Instance method
takes handles this already and returns string as expected.
|
|
Move Gitaly RPCs to mandatory
Closes gitaly#217, gitaly#389, gitaly#390, gitaly#220, gitaly#376, and gitaly#354
See merge request gitlab-org/gitlab-ce!19759
|
|
|
|
Closes https://gitlab.com/gitlab-org/gitaly/issues/354
|
|
Find and mark more Git disk access locations, part 2
See merge request gitlab-org/gitlab-ce!19437
|