Duplicate key errors and timeout importing from Bitbucket
Summary
Customer (ZD Ticket - internal) is unable to complete an import from Bitbucket (Cloud) to GitLab.com. The import produces Postgres duplicate key errors and times out after 24 hours.
Steps to reproduce
Attempt to import specific customer project from Bitbucket to GitLab.
What is the current bug behavior?
During import the following error is logged (approx. 18k):
PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_merge_requests_on_target_project_id_and_iid"
DETAIL: Key (target_project_id, iid)=(<redacted>, 1234) already exists.
There appear to be no log messages produced for around 12 hours until the import eventually times out.
Similar issues:
- PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_issues_on_project_id_and_iid"
- Unable to create Merge Requests after importing from GitHub
What is the expected correct behavior?
Complete and full import of Bitbucket project.
Relevant logs and/or screenshots
Other significant log messages:
The Lfs import process failed. 4:Deadline Exceeded. debug_error_string:{"created":"@1682062741.000354496","description":"Deadline Exceeded","file":"src/core/ext/filters/deadline/deadline_filter.cc","file_line":81,"grpc_status":4}
The Lfs import process failed. 4:Deadline Exceeded. debug_error_string:{"created":"@1682081068.000831984","description":"Deadline Exceeded","file":"src/core/ext/filters/deadline/deadline_filter.cc","file_line":81,"grpc_status":4}
The Lfs import process failed. 4:Deadline Exceeded. debug_error_string:{"created":"@1682095469.000188609","description":"Deadline Exceeded","file":"src/core/ext/filters/deadline/deadline_filter.cc","file_line":81,"grpc_status":4}
undefined method `fetch' for nil:NilClass
lib/bitbucket/representation/pull_request.rb:7:in `author', lib/gitlab/bitbucket_import/importer.rb:188:in `import_pull_request', lib/gitlab/bitbucket_import/importer.rb:182:in `block in import_pull_requests', lib/bitbucket/collection.rb:8:in `<<', lib/bitbucket/collection.rb:8:in `block (3 levels) in initialize', lib/bitbucket/collection.rb:8:in `each', lib/bitbucket/collection.rb:8:in `block (2 levels) in initialize', lib/bitbucket/collection.rb:7:in `loop', lib/bitbucket/collection.rb:7:in `block in initialize', lib/gitlab/bitbucket_import/importer.rb:181:in `each', lib/gitlab/bitbucket_import/importer.rb:181:in `each', lib/gitlab/bitbucket_import/importer.rb:181:in `import_pull_requests', lib/gitlab/bitbucket_import/importer.rb:25:in `execute', app/services/projects/import_service.rb:137:in `import_data', app/services/projects/import_service.rb:25:in `execute', app/workers/repository_import_worker.rb:28:in `perform', ee/app/workers/ee/repository_import_worker.rb:9:in `perform', lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb:26:in `call', lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing.rb:16:in `perform', lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb:44:in `perform', lib/gitlab/sidekiq_middleware/duplicate_jobs/server.rb:8:in `call', lib/gitlab/sidekiq_middleware/worker_context.rb:9:in `wrap_in_optional_context', lib/gitlab/sidekiq_middleware/worker_context/server.rb:19:in `block in call', lib/gitlab/application_context.rb:118:in `block in use', lib/gitlab/application_context.rb:118:in `use', lib/gitlab/application_context.rb:57:in `with_context', lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `call', lib/gitlab/sidekiq_status/server_middleware.rb:7:in `call', lib/gitlab/sidekiq_versioning/middleware.rb:9:in `call', lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `block in call', lib/gitlab/database/query_analyzer.rb:37:in `within', lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `call', lib/gitlab/sidekiq_middleware/admin_mode/server.rb:14:in `call', lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:9:in `call', lib/gitlab/sidekiq_middleware/batch_loader.rb:7:in `call', lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb:7:in `call', lib/gitlab/sidekiq_middleware/request_store_middleware.rb:10:in `block in call', lib/gitlab/with_request_store.rb:17:in `enabling_request_store', lib/gitlab/with_request_store.rb:10:in `with_request_store', lib/gitlab/sidekiq_middleware/request_store_middleware.rb:9:in `call', lib/gitlab/sidekiq_middleware/server_metrics.rb:76:in `block in call', lib/gitlab/sidekiq_middleware/server_metrics.rb:103:in `block in instrument', lib/gitlab/metrics/background_transaction.rb:33:in `run', lib/gitlab/sidekiq_middleware/server_metrics.rb:103:in `instrument', lib/gitlab/sidekiq_middleware/server_metrics.rb:75:in `call', lib/gitlab/sidekiq_middleware/monitor.rb:10:in `block in call', lib/gitlab/sidekiq_daemon/monitor.rb:46:in `within_job', lib/gitlab/sidekiq_middleware/monitor.rb:9:in `call', lib/gitlab/sidekiq_middleware/size_limiter/server.rb:13:in `call', lib/gitlab/sidekiq_logging/structured_logger.rb:21:in `call'
Error | Count |
---|---|
undefined method `fetch' for nil:NilClass | 1185 |
Failed to open TCP connection to api.bitbucket.org:443 (execution expired) | 2 |
"PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_merge_requests_on_target_project_id_and_iid" DETAIL: Key (target_project_id, iid)=(45371635, 1) already exists." | 2 |
"PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_merge_requests_on_target_project_id_and_iid" DETAIL: Key (target_project_id, iid)=(45371635, 10) already exists." | 2 |
"PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_merge_requests_on_target_project_id_and_iid" DETAIL: Key (target_project_id, iid)=(45371635, 100) already exists." | 2 |
"PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_merge_requests_on_target_project_id_and_iid" DETAIL: Key (target_project_id, iid)=(45371635, ...) already exists." | 17937 |
Edited by Chris Stone