[go: up one dir, main page]

Skip to content

ActiveRecord::RecordNotUnique: duplicate key value violates unique constraint "index_lfs_objects_on_oid"

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Errors

Sentry errors

1st Sentry error: internal link

2nd Sentry error: internal link

All sentry errors related to the controller action: internal link

Error logs

PG::UniqueViolation: ERROR:  duplicate key value violates unique constraint "index_lfs_objects_on_oid"
DETAIL:  Key (oid)=(07c292e2cc499555cb89489a8761b380e1d550b7947120e90f746e5265648936) already exists.

  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `exec_params'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
  from activesupport (7.0.8.1) lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
  from activesupport (7.0.8.1) lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract_adapter.rb:752:in `block in log'
  from activesupport (7.0.8.1) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract_adapter.rb:743:in `log'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'
  from marginalia (1.11.1) lib/marginalia.rb:91:in `execute_and_clear_with_marginalia'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql/database_statements.rb:54:in `exec_query'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/database_statements.rb:132:in `exec_insert'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/postgresql/database_statements.rb:88:in `exec_insert'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/database_statements.rb:167:in `insert'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `insert'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
  from lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'
  from lib/gitlab/database/load_balancing/load_balancer.rb:235:in `retry_with_backoff'
  from lib/gitlab/database/load_balancing/load_balancer.rb:130:in `read_write'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:61:in `block (2 levels) in <class:ConnectionProxy>'
  from activerecord (7.0.8.1) lib/active_record/persistence.rb:496:in `_insert_record'
  from activerecord (7.0.8.1) lib/active_record/persistence.rb:1098:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/counter_cache.rb:166:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/locking/optimistic.rb:84:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/attribute_methods/dirty.rb:222:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/callbacks.rb:459:in `block in _create_record'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:107:in `run_callbacks'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:929:in `_run_create_callbacks'
  from activerecord (7.0.8.1) lib/active_record/callbacks.rb:459:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/timestamp.rb:108:in `_create_record'
  from activerecord (7.0.8.1) lib/active_record/persistence.rb:1069:in `create_or_update'
  from activerecord (7.0.8.1) lib/active_record/callbacks.rb:455:in `block in create_or_update'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:118:in `block in run_callbacks'
  from activerecord (7.0.8.1) lib/active_record/autosave_association.rb:370:in `around_save_collection_association'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:127:in `block in run_callbacks'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:138:in `run_callbacks'
  from activesupport (7.0.8.1) lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
  from activerecord (7.0.8.1) lib/active_record/callbacks.rb:455:in `create_or_update'
  from activerecord (7.0.8.1) lib/active_record/timestamp.rb:126:in `create_or_update'
  from activerecord (7.0.8.1) lib/active_record/persistence.rb:648:in `save!'
  from activerecord (7.0.8.1) lib/active_record/validations.rb:53:in `save!'
  from activerecord (7.0.8.1) lib/active_record/transactions.rb:302:in `block in save!'
  from activerecord (7.0.8.1) lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
  from activesupport (7.0.8.1) lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
  from activerecord (7.0.8.1) lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `public_send'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:127:in `block in write_using_load_balancer'
  from lib/gitlab/database/load_balancing/load_balancer.rb:141:in `block in read_write'
  from lib/gitlab/database/load_balancing/load_balancer.rb:235:in `retry_with_backoff'
  from lib/gitlab/database/load_balancing/load_balancer.rb:130:in `read_write'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:126:in `write_using_load_balancer'
  from lib/gitlab/database/load_balancing/connection_proxy.rb:78:in `transaction'
  from activerecord (7.0.8.1) lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
  from activerecord (7.0.8.1) lib/active_record/transactions.rb:302:in `save!'
  from activerecord (7.0.8.1) lib/active_record/suppressor.rb:54:in `save!'
  from activerecord (7.0.8.1) lib/active_record/persistence.rb:55:in `create!'
  from app/services/lfs/finalize_upload_service.rb:53:in `create_file!'
  from app/services/lfs/finalize_upload_service.rb:42:in `store_file!'
  from app/services/lfs/finalize_upload_service.rb:17:in `execute'
  from app/controllers/repositories/lfs_storage_controller.rb:51:in `upload_finalize'

Suggestion

We need to investigate this error and discover why we are trying to create a duplicate objects in the database.

Resources

Docs

Developer docs for LFS

Relevant files

LfsStorageController

FinalizeUploadService

Edited by 🤖 GitLab Bot 🤖