mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-24 20:16:08 +10:00
Fix bug where projects would appear to be stuck in the forked import state
A race condition existed between when Rails committed the `import_status` to `started` and when the Sidekiq worker forked a project. If this fork was quick, it's possible that the worker would attempt to move into the `finished` state before the `started` state took effect. As mentioned in https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting#cannot-find-modelname-with-id12345, we should delay the worker to ensure the DB has a chance to update. Closes #2736
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.1.0 (unreleased)
|
||||
- Fix bug where projects would appear to be stuck in the forked import state (Stan Hu)
|
||||
- Show CI status on all pages where commits list is rendered
|
||||
- Automatically enable CI when push .gitlab-ci.yml file to repository
|
||||
- Move CI charts to project graphs area
|
||||
|
||||
@@ -276,8 +276,10 @@ class Project < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def add_import_job
|
||||
# Schedule these jobs after 2 seconds to ensure DB changes to import_status
|
||||
# are saved by the time the workers start
|
||||
if forked?
|
||||
unless RepositoryForkWorker.perform_async(id, forked_from_project.path_with_namespace, self.namespace.path)
|
||||
unless RepositoryForkWorker.perform_in(2.seconds, id, forked_from_project.path_with_namespace, self.namespace.path)
|
||||
import_fail
|
||||
end
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user