Commit graph

13 commits

Author SHA1 Message Date
gfyoung
dfbe5ce435 Enable frozen string literals for app/workers/*.rb 2018-06-27 07:23:28 +00:00
Douwe Maan
0b15570e49 Add ApplicationWorker and make every worker include it 2017-12-05 11:59:39 +01:00
Stan Hu
32b688e785 Enable 5 lines of Sidekiq backtrace lines to aid in debugging
Customers often have Sidekiq jobs that failed without much context. Without
Sentry, there's no way to tell where these exceptions were hit. Adding
in additional lines adds a bit more Redis storage overhead. This commit
adds in backtrace logging for workers that delete groups/projects and
import/export projects.

Closes #27626
2017-08-25 05:27:42 -07:00
Robert Speicher
24244d03b5 Revert "Merge branch 'sh-sidekiq-backtrace' into 'master'"
This reverts merge request !13813
2017-08-25 01:47:37 +00:00
Stan Hu
38bb92197d Enable 5 lines of Sidekiq backtrace lines to aid in debugging
Customers often have Sidekiq jobs that failed without much context. Without
Sentry, there's no way to tell where these exceptions were hit. Adding
in additional lines adds a bit more Redis storage overhead. This commit
adds in backtrace logging for workers that delete groups/projects and
import/export projects.

Closes #27626
2017-08-24 12:29:50 -07:00
Tiago Botelho
b5bdc55d23 Move exception handling to execute 2017-07-26 12:47:50 +01:00
Tiago Botelho
0aa8249e48 Refactors Project Destroy service and worker code 2017-07-20 09:59:56 +01:00
Tiago Botelho
3491b19a4e Add specs for ProjectDestroyWorker 2017-07-20 09:59:56 +01:00
Timothy Andrew
72a85ae9ac Handle errors while a project is being deleted asynchronously.
1. Rescue all errors that `Projects::DestroyService` might throw, to prevent the
   worker from leaving things in an inconsistent state

2. Unmark the project as `pending_delete`

3. Add a `delete_error` text column to `projects`, and save the error message in
   there, to be shown to the project masters/owners.
2017-07-20 09:56:52 +01:00
Yorick Peterse
97731760d7
Re-organize queues to use for Sidekiq
Dumping too many jobs in the same queue (e.g. the "default" queue) is a
dangerous setup. Jobs that take a long time to process can effectively
block any other work from being performed given there are enough of
these jobs.

Furthermore it becomes harder to monitor the jobs as a single queue
could contain jobs for different workers. In such a setup the only
reliable way of getting counts per job is to iterate over all jobs in a
queue, which is a rather time consuming process.

By using separate queues for various workers we have better control over
throughput, we can add weight to queues, and we can monitor queues
better. Some workers still use the same queue whenever their work is
related. For example, the various CI pipeline workers use the same
"pipeline" queue.

This commit includes a Rails migration that moves Sidekiq jobs from the
old queues to the new ones. This migration also takes care of doing the
inverse if ever needed. This does require downtime as otherwise new jobs
could be scheduled in the old queues after this migration completes.

This commit also includes an RSpec test that blacklists the use of the
"default" queue and ensures cron workers use the "cronjob" queue.

Fixes gitlab-org/gitlab-ce#23370
2016-10-21 18:17:07 +02:00
Stan Hu
443ae8c4e6 Fix skip_repo parameter being ignored when destroying a namespace
When destroying a namespace, the `skip_repo` parameter is supposed
to prevent the repository directory from being destroyed and allow
the namespace after_destroy hook to run. If the namespace fails
to be deleted for some reason, we could be left with repositories
that are deleted with existing projects.
2016-08-03 17:07:38 -07:00
Zeger-Jan van de Weg
1e7116b34d Exclude projects pending deletion from all results 2016-03-31 20:20:18 +02:00
Josh Frye
91b9cbff8d First pass at deleting projects in the background. 2016-01-29 09:14:16 -05:00