An error occurred while fetching the assigned iteration of the selected issue.
Import of Gitlab export fails with database errors
Setup: self-hosted Gitlab 8.11.0 on Debian 8.5, using the Omnibus package
Steps to reproduce:
- Create a new project with a single-line README
- Create and download a Gitlab export of the project
- Create a new project, enter a name and choose "Gitlab export" as source
- Select the downloaded export and submit it
- The process fails with the error "Failed to replace protected_branches because one or more of the new records could not be saved."
Some observations:
- The import completes successfully with a completely empty project (without any commits)
- On some projects the error appears with "pipelines" instead of "protected_branches", even though they don't have any pipelines set up
- In
/var/log/gitlab/gitlab-rails/production.log
I found the following stacktrace (reformatted):
Import/Export error raised on /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:20:in `rescue in restore': Failed to replace protected_branches because one or more of the new records could not be saved.
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:542:in `replace_records'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:373:in `block in replace'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:183:in `block in transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/transaction.rb:184:in `within_new_transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/transactions.rb:220:in `transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:182:in `transaction'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:373:in `replace'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/collection_association.rb:47:in `writer'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/associations/builder/association.rb:123:in `protected_branches='
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/persistence.rb:240:in `update_attribute'
/opt/gitlab/embedded/service/gitlab-rails/app/models/project.rb:1270:in `append_or_update_attribute'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:50:in `block in create_relations'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:43:in `each'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:43:in `create_relations'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:17:in `block in restore'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/no_touching.rb:29:in `apply_to'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/activerecord-4.2.7.1/lib/active_record/no_touching.rb:22:in `no_touching'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/project_tree_restorer.rb:16:in `restore'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/importer.rb:12:in `each'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/importer.rb:12:in `all?'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/import_export/importer.rb:12:in `execute'
/opt/gitlab/embedded/service/gitlab-rails/app/services/projects/import_service.rb:56:in `import_data'
/opt/gitlab/embedded/service/gitlab-rails/app/services/projects/import_service.rb:19:in `execute'
/opt/gitlab/embedded/service/gitlab-rails/app/workers/repository_import_worker.rb:17:in `perform'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:152:in `execute_job'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:134:in `block (2 levels) in process'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:128:in `block in invoke'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/request_store_middleware.rb:6:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/sidekiq_middleware/memory_killer.rb:17:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/server/active_record.rb:6:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/server/retry_jobs.rb:74:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/server/logging.rb:11:in `block in call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/logging.rb:32:in `with_context'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/server/logging.rb:7:in `call'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:130:in `block in invoke'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/middleware/chain.rb:133:in `invoke'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:129:in `block in process'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:168:in `stats'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:128:in `process'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:80:in `process_one'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/processor.rb:68:in `run'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/util.rb:17:in `watchdog'
/opt/gitlab/embedded/service/gem/ruby/2.3.0/gems/sidekiq-4.1.4/lib/sidekiq/util.rb:25:in `block in safe_thread'