Skip to content

Restore transaction block while extracting sync job

What does this MR do and why?

Restore transaction block while extracting sync job into its own service. Remove existing merge_request approval rules aligned with the project related ones.

Related event in sentry: https://sentry.gitlab.net/gitlab/gitlabcom/issues/3407702/events/108313567

Related issue: #370808 (closed)

Related payload in Kibana
{
  "_index": "pubsub-sidekiq-inf-gprd-002867",
  "_type": "_doc",
  "_id": "SshYooIBw0or6pHyO7Y8",
  "_version": 1,
  "_score": 1,
  "_source": {
    "@timestamp": "2022-08-15T16:31:07.083Z",
    "type": "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw",
    "kubernetes": {
      "pod_ip": "10.222.78.28",
      "host": "gke-gprd-gitlab-gke-sidekiq-catchall--7af543dc-h5d4",
      "container_name": "sidekiq",
      "pod_name": "gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c",
      "container_image": "dev.gitlab.org:5005/gitlab/charts/components/images/gitlab-sidekiq-ee:15-3-202208150921-72cc0377272",
      "region": "us-east1",
      "namespace_name": "gitlab"
    },
    "publish_time": "2022-08-15T16:31:06.946Z",
    "json": {
      "db_ci_replica_cached_count": 0,
      "correlation_id": "7f5c74979d2ce20229068283a14fccd0",
      "tag": "gitlab-sidekiq-catchall.var.log.containers.gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c_gitlab_sidekiq-751b0dc434a3047af036e4ba7f19c0a2719d810cb164148e3ec92fecdea022a3.log",
      "idempotency_key": "resque:gitlab:duplicate:default:42673576854b32821c89eec6f9f7a7daf4a8582b7543d19e5ad73c710d2bddf1",
      "redis_shared_state_write_bytes": 4124,
      "db_replica_count": 0,
      "worker_data_consistency": "always",
      "exception.class": "ActiveRecord::RecordInvalid",
      "db_write_count": 292,
      "rate_limiting_gates": [],
      "db_main_wal_count": 0,
      "mem_bytes": 21740016,
      "db_main_wal_cached_count": 0,
      "redis_queues_read_bytes": 513,
      "tier": "sv",
      "db_replica_wal_cached_count": 0,
      "failed_at": "2022-08-13T14:40:06.442Z",
      "shard": "catchall",
      "db_ci_count": 18,
      "type": "sidekiq",
      "worker_id": "sidekiq_0",
      "job_size_bytes": 5,
      "error_message": "Validation failed: Name has already been taken",
      "redis_write_bytes": 16944,
      "db_main_duration_s": 3.112,
      "mem_objects": 778959,
      "environment": "gprd",
      "scheduling_latency_s": 0.001612,
      "redis_cache_write_bytes": 299,
      "db_main_replica_wal_count": 0,
      "gitaly_duration_s": 0.05411,
      "created_at": "2022-08-13T14:40:01.345Z",
      "mem_total_bytes": 52898376,
      "stage": "main",
      "db_main_count": 1039,
      "db_main_replica_cached_count": 0,
      "redis_cache_read_bytes": 338,
      "gitaly_calls": 2,
      "redis_read_bytes": 1347,
      "time": "2022-08-15T16:30:59.363Z",
      "retry_count": 15,
      "redis_shared_state_read_bytes": 496,
      "db_ci_cached_count": 0,
      "db_primary_wal_cached_count": 0,
      "db_ci_replica_wal_cached_count": 0,
      "db_ci_duration_s": 0.018,
      "duration_s": 5.328311,
      "exception.backtrace": [
        "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
        "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
        "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
        "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
        "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
        "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
        "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
        "ee/app/models/approval_project_rule.rb:72:in `apply_report_approver_rules_to'",
        "ee/app/models/ee/merge_request.rb:304:in `block in synchronize_approval_rules_from_target_project'",
        "ee/app/models/ee/merge_request.rb:303:in `synchronize_approval_rules_from_target_project'",
        "ee/app/services/merge_requests/sync_report_approver_approval_rules.rb:15:in `execute'",
        "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:15:in `block (2 levels) in execute'",
        "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:12:in `block in execute'",
        "app/models/concerns/each_batch.rb:99:in `block (2 levels) in each_batch'",
        "app/models/concerns/each_batch.rb:99:in `block in each_batch'",
        "app/models/concerns/each_batch.rb:69:in `step'",
        "app/models/concerns/each_batch.rb:69:in `each_batch'",
        "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:11:in `execute'",
        "ee/app/workers/concerns/update_orchestration_policy_configuration.rb:30:in `update_policy_configuration'",
        "ee/app/workers/security/sync_scan_policies_worker.rb:18: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:58: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:110:in `block in use'",
        "lib/gitlab/application_context.rb:110:in `use'",
        "lib/gitlab/application_context.rb:52: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:49: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'"
      ],
      "jid": "d0178f2b682519a94c7ffa2a",
      "redis_queues_write_bytes": 12521,
      "db_main_replica_count": 0,
      "db_main_cached_count": 8,
      "meta.feature_category": "security_orchestration",
      "retried_at": "2022-08-15T02:24:45.726Z",
      "db_replica_wal_count": 0,
      "redis_cache_duration_s": 0.001235,
      "db_ci_replica_count": 0,
      "error_class": "ActiveRecord::RecordInvalid",
      "version": 0,
      "db_replica_cached_count": 0,
      "class": "Security::SyncScanPoliciesWorker",
      "db_primary_cached_count": 8,
      "job_status": "fail",
      "exception.message": "Validation failed: Name has already been taken",
      "enqueued_at": "2022-08-15T16:30:54.033Z",
      "redis_duration_s": 0.001235,
      "db_cached_count": 8,
      "db_replica_duration_s": 0,
      "severity": "WARN",
      "retry": 25,
      "db_count": 1057,
      "pid": 36,
      "cpu_s": 2.208156,
      "db_ci_wal_count": 0,
      "args": [
        "133"
      ],
      "db_primary_duration_s": 3.13,
      "redis_cache_calls": 3,
      "load_balancing_strategy": "primary",
      "queue": "default",
      "db_ci_replica_wal_count": 0,
      "size_limiter": "validated",
      "db_primary_count": 1057,
      "db_main_replica_duration_s": 0,
      "db_ci_wal_cached_count": 0,
      "meta.root_caller_id": "Cronjob",
      "meta.client_id": "ip/",
      "message": "Security::SyncScanPoliciesWorker JID-d0178f2b682519a94c7ffa2a: fail: 5.328311 sec",
      "db_duration_s": 3.078495,
      "db_primary_wal_count": 0,
      "db_main_replica_wal_cached_count": 0,
      "mem_mallocs": 112124,
      "redis_calls": 3,
      "meta.caller_id": "Security::CreateOrchestrationPolicyWorker",
      "completed_at": "2022-08-15T16:30:59.363Z",
      "db_ci_replica_duration_s": 0
    },
    "host": {
      "name": "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw"
    }
  },
  "fields": {
    "json.type.keyword": [
      "sidekiq"
    ],
    "json.idempotency_key": [
      "resque:gitlab:duplicate:default:42673576854b32821c89eec6f9f7a7daf4a8582b7543d19e5ad73c710d2bddf1"
    ],
    "json.db_replica_wal_cached_count": [
      0
    ],
    "json.mem_mallocs": [
      112124
    ],
    "json.redis_duration_s": [
      0.001235
    ],
    "host.name.keyword": [
      "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw"
    ],
    "json.db_primary_cached_count": [
      8
    ],
    "json.db_replica_count": [
      0
    ],
    "json.mem_total_bytes": [
      52898376
    ],
    "type": [
      "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw"
    ],
    "json.db_main_wal_count": [
      0
    ],
    "json.redis_cache_read_bytes": [
      338
    ],
    "json.mem_bytes": [
      21740016
    ],
    "json.redis_cache_write_bytes": [
      299
    ],
    "json.exception.class.keyword": [
      "ActiveRecord::RecordInvalid"
    ],
    "publish_time": [
      "2022-08-15T16:31:06.946Z"
    ],
    "json.redis_queues_read_bytes": [
      513
    ],
    "json.db_primary_wal_cached_count": [
      0
    ],
    "json.worker_data_consistency": [
      "always"
    ],
    "json.meta.caller_id": [
      "Security::CreateOrchestrationPolicyWorker"
    ],
    "json.version": [
      0
    ],
    "json.class": [
      "Security::SyncScanPoliciesWorker"
    ],
    "json.args.keyword": [
      "133"
    ],
    "json.jid.keyword": [
      "d0178f2b682519a94c7ffa2a"
    ],
    "json.queue": [
      "default"
    ],
    "json.size_limiter": [
      "validated"
    ],
    "json.exception.message.keyword": [
      "Validation failed: Name has already been taken"
    ],
    "json.db_replica_cached_count": [
      0
    ],
    "json.db_ci_replica_count": [
      0
    ],
    "json.db_ci_cached_count": [
      0
    ],
    "json.environment": [
      "gprd"
    ],
    "json.db_primary_duration_s": [
      3.13
    ],
    "json.size_limiter.keyword": [
      "validated"
    ],
    "kubernetes.pod_ip": [
      "10.222.78.28"
    ],
    "json.type": [
      "sidekiq"
    ],
    "json.load_balancing_strategy": [
      "primary"
    ],
    "json.job_status": [
      "fail"
    ],
    "json.meta.feature_category": [
      "security_orchestration"
    ],
    "json.redis_shared_state_read_bytes": [
      496
    ],
    "json.db_main_wal_cached_count": [
      0
    ],
    "json.message.keyword": [
      "Security::SyncScanPoliciesWorker JID-d0178f2b682519a94c7ffa2a: fail: 5.328311 sec"
    ],
    "json.worker_id.keyword": [
      "sidekiq_0"
    ],
    "json.environment.keyword": [
      "gprd"
    ],
    "json.exception.message": [
      "Validation failed: Name has already been taken"
    ],
    "json.duration_s": [
      5.328311
    ],
    "json.queue.keyword": [
      "default"
    ],
    "json.redis_read_bytes": [
      1347
    ],
    "json.gitaly_duration_s": [
      0.05411
    ],
    "json.gitaly_calls": [
      2
    ],
    "json.meta.feature_category.keyword": [
      "security_orchestration"
    ],
    "kubernetes.namespace_name.keyword": [
      "gitlab"
    ],
    "json.redis_cache_duration_s": [
      0.001235
    ],
    "json.redis_calls": [
      3
    ],
    "json.meta.client_id.keyword": [
      "ip/"
    ],
    "json.db_ci_replica_wal_count": [
      0
    ],
    "json.db_primary_count": [
      1057
    ],
    "json.db_main_replica_duration_s": [
      0
    ],
    "json.db_main_cached_count": [
      8
    ],
    "json.severity": [
      "WARN"
    ],
    "json.db_write_count": [
      292
    ],
    "json.redis_shared_state_write_bytes": [
      4124
    ],
    "json.shard.keyword": [
      "catchall"
    ],
    "@timestamp": [
      "2022-08-15T16:31:07.083Z"
    ],
    "json.worker_id": [
      "sidekiq_0"
    ],
    "json.redis_queues_write_bytes": [
      12521
    ],
    "json.db_ci_duration_s": [
      0.018
    ],
    "json.exception.class": [
      "ActiveRecord::RecordInvalid"
    ],
    "kubernetes.pod_name": [
      "gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c"
    ],
    "json.idempotency_key.keyword": [
      "resque:gitlab:duplicate:default:42673576854b32821c89eec6f9f7a7daf4a8582b7543d19e5ad73c710d2bddf1"
    ],
    "json.job_size_bytes": [
      5
    ],
    "json.db_replica_duration_s": [
      0
    ],
    "json.db_main_count": [
      1039
    ],
    "json.completed_at": [
      "2022-08-15T16:30:59.363Z"
    ],
    "json.db_main_replica_wal_count": [
      0
    ],
    "json.scheduling_latency_s": [
      0.001612
    ],
    "json.retry": [
      25
    ],
    "json.enqueued_at": [
      "2022-08-15T16:30:54.033Z"
    ],
    "json.worker_data_consistency.keyword": [
      "always"
    ],
    "kubernetes.container_image.keyword": [
      "dev.gitlab.org:5005/gitlab/charts/components/images/gitlab-sidekiq-ee:15-3-202208150921-72cc0377272"
    ],
    "json.db_main_replica_wal_cached_count": [
      0
    ],
    "json.redis_cache_calls": [
      3
    ],
    "type.keyword": [
      "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw"
    ],
    "kubernetes.container_image": [
      "dev.gitlab.org:5005/gitlab/charts/components/images/gitlab-sidekiq-ee:15-3-202208150921-72cc0377272"
    ],
    "json.db_cached_count": [
      8
    ],
    "json.args": [
      "133"
    ],
    "host.name": [
      "pubsubbeat-pubsub-sidekiq-inf-gprd-6d78dd68cd-th8jw"
    ],
    "json.db_ci_wal_cached_count": [
      0
    ],
    "kubernetes.host.keyword": [
      "gke-gprd-gitlab-gke-sidekiq-catchall--7af543dc-h5d4"
    ],
    "json.tier.keyword": [
      "sv"
    ],
    "json.tag": [
      "gitlab-sidekiq-catchall.var.log.containers.gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c_gitlab_sidekiq-751b0dc434a3047af036e4ba7f19c0a2719d810cb164148e3ec92fecdea022a3.log"
    ],
    "kubernetes.container_name": [
      "sidekiq"
    ],
    "json.severity.keyword": [
      "WARN"
    ],
    "kubernetes.pod_ip.keyword": [
      "10.222.78.28"
    ],
    "json.db_replica_wal_count": [
      0
    ],
    "kubernetes.container_name.keyword": [
      "sidekiq"
    ],
    "json.pid": [
      36
    ],
    "json.db_primary_wal_count": [
      0
    ],
    "json.exception.backtrace.keyword": [
      "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
      "ee/app/models/approval_project_rule.rb:72:in `apply_report_approver_rules_to'",
      "ee/app/models/ee/merge_request.rb:304:in `block in synchronize_approval_rules_from_target_project'",
      "ee/app/models/ee/merge_request.rb:303:in `synchronize_approval_rules_from_target_project'",
      "ee/app/services/merge_requests/sync_report_approver_approval_rules.rb:15:in `execute'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:15:in `block (2 levels) in execute'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:12:in `block in execute'",
      "app/models/concerns/each_batch.rb:99:in `block (2 levels) in each_batch'",
      "app/models/concerns/each_batch.rb:99:in `block in each_batch'",
      "app/models/concerns/each_batch.rb:69:in `step'",
      "app/models/concerns/each_batch.rb:69:in `each_batch'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:11:in `execute'",
      "ee/app/workers/concerns/update_orchestration_policy_configuration.rb:30:in `update_policy_configuration'",
      "ee/app/workers/security/sync_scan_policies_worker.rb:18: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:58: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:110:in `block in use'",
      "lib/gitlab/application_context.rb:110:in `use'",
      "lib/gitlab/application_context.rb:52: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:49: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'"
    ],
    "json.stage": [
      "main"
    ],
    "json.db_count": [
      1057
    ],
    "json.db_main_replica_count": [
      0
    ],
    "json.retry_count": [
      15
    ],
    "kubernetes.region": [
      "us-east1"
    ],
    "json.redis_write_bytes": [
      16944
    ],
    "json.meta.caller_id.keyword": [
      "Security::CreateOrchestrationPolicyWorker"
    ],
    "json.error_message": [
      "Validation failed: Name has already been taken"
    ],
    "json.meta.root_caller_id": [
      "Cronjob"
    ],
    "json.jid": [
      "d0178f2b682519a94c7ffa2a"
    ],
    "json.cpu_s": [
      2.208156
    ],
    "json.load_balancing_strategy.keyword": [
      "primary"
    ],
    "json.tag.keyword": [
      "gitlab-sidekiq-catchall.var.log.containers.gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c_gitlab_sidekiq-751b0dc434a3047af036e4ba7f19c0a2719d810cb164148e3ec92fecdea022a3.log"
    ],
    "json.error_class.keyword": [
      "ActiveRecord::RecordInvalid"
    ],
    "json.failed_at": [
      "2022-08-13T14:40:06.442Z"
    ],
    "json.time": [
      "2022-08-15T16:30:59.363Z"
    ],
    "json.error_class": [
      "ActiveRecord::RecordInvalid"
    ],
    "json.db_main_duration_s": [
      3.112
    ],
    "kubernetes.host": [
      "gke-gprd-gitlab-gke-sidekiq-catchall--7af543dc-h5d4"
    ],
    "json.db_main_replica_cached_count": [
      0
    ],
    "kubernetes.pod_name.keyword": [
      "gitlab-sidekiq-catchall-v2-7cfc4dd7f5-lx42c"
    ],
    "json.exception.backtrace": [
      "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:120:in `block in write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:115:in `block in read_write'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:191:in `retry_with_backoff'",
      "lib/gitlab/database/load_balancing/load_balancer.rb:111:in `read_write'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:119:in `write_using_load_balancer'",
      "lib/gitlab/database/load_balancing/connection_proxy.rb:71:in `transaction'",
      "ee/app/models/approval_project_rule.rb:72:in `apply_report_approver_rules_to'",
      "ee/app/models/ee/merge_request.rb:304:in `block in synchronize_approval_rules_from_target_project'",
      "ee/app/models/ee/merge_request.rb:303:in `synchronize_approval_rules_from_target_project'",
      "ee/app/services/merge_requests/sync_report_approver_approval_rules.rb:15:in `execute'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:15:in `block (2 levels) in execute'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:12:in `block in execute'",
      "app/models/concerns/each_batch.rb:99:in `block (2 levels) in each_batch'",
      "app/models/concerns/each_batch.rb:99:in `block in each_batch'",
      "app/models/concerns/each_batch.rb:69:in `step'",
      "app/models/concerns/each_batch.rb:69:in `each_batch'",
      "ee/app/services/security/security_orchestration_policies/sync_opened_merge_requests_service.rb:11:in `execute'",
      "ee/app/workers/concerns/update_orchestration_policy_configuration.rb:30:in `update_policy_configuration'",
      "ee/app/workers/security/sync_scan_policies_worker.rb:18: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:58: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:110:in `block in use'",
      "lib/gitlab/application_context.rb:110:in `use'",
      "lib/gitlab/application_context.rb:52: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:49: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'"
    ],
    "json.mem_objects": [
      778959
    ],
    "json.shard": [
      "catchall"
    ],
    "json.stage.keyword": [
      "main"
    ],
    "json.correlation_id.keyword": [
      "7f5c74979d2ce20229068283a14fccd0"
    ],
    "json.job_status.keyword": [
      "fail"
    ],
    "json.correlation_id": [
      "7f5c74979d2ce20229068283a14fccd0"
    ],
    "json.db_ci_replica_cached_count": [
      0
    ],
    "json.retried_at": [
      "2022-08-15T02:24:45.726Z"
    ],
    "kubernetes.region.keyword": [
      "us-east1"
    ],
    "json.db_ci_replica_wal_cached_count": [
      0
    ],
    "json.db_ci_count": [
      18
    ],
    "json.message": [
      "Security::SyncScanPoliciesWorker JID-d0178f2b682519a94c7ffa2a: fail: 5.328311 sec"
    ],
    "json.db_ci_replica_duration_s": [
      0
    ],
    "json.tier": [
      "sv"
    ],
    "json.created_at": [
      "2022-08-13T14:40:01.345Z"
    ],
    "json.class.keyword": [
      "Security::SyncScanPoliciesWorker"
    ],
    "kubernetes.namespace_name": [
      "gitlab"
    ],
    "json.meta.root_caller_id.keyword": [
      "Cronjob"
    ],
    "json.db_duration_s": [
      3.078495
    ],
    "json.db_ci_wal_count": [
      0
    ],
    "json.error_message.keyword": [
      "Validation failed: Name has already been taken"
    ],
    "json.meta.client_id": [
      "ip/"
    ]
  }
}

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Zamir Martins

Merge request reports

Loading