Allow translog durability mode to be configurable for initial reindexing
### Summary
This feature request is to allow the translog durability setting during advanced search reindexing tasks to be configurable, instead of hard set to `async`.
### Current behavior
During reindexing tasks for advanced search, it looks like the client on GitLab's side is hard-coded to set translog durability to `async` during reindexing.
- https://gitlab.com/gitlab-org/gitlab/-/blob/0a1e4debf64fa2e46ab5918afdc2f647c94d326a/ee/app/services/search/elastic/cluster_reindexing_service.rb#L12
I was looking for some history on this, and found the following re: changes used to speed up reindexing:
- https://web.archive.org/web/20201021073325/https://about.gitlab.com/blog/2020/04/28/elasticsearch-update/
> Set translog.durability to async on the destination index. This will allow the cluster to sync the updates to disk asynchronously. It does come with some risk of data loss if a hard disk fails during reindexing, but does come with the advantage of speeding up the process, and when we finish, we can switch this back to the default.
You can follow some of the logic of this in:
- https://gitlab.com/gitlab-com/gl-infra/production/-/issues/1907
If I've understood correctly, it looks like for reindexing tasks specifically, we attempt to set the translog durability to `async`, but it's changed back to `request` afterwards/otherwise.
In cases where an Elasticsearch/Opensearch cluster has set `cluster.remote_store.index.restrict.async-durability=true` - the following errors will be generated within the sidekiq logs whenever the `ElasticClusterReindexingCronWorker` runs.
```json
{
"severity": "WARN",
"time": "2025-06-26T21:00:03.149Z",
"retry": 0,
"queue": "default",
"version": 0,
"store": null,
"queue_namespace": "cronjob",
"args": [],
"class": "ElasticClusterReindexingCronWorker",
"jid": "0a8a72376327f9b455e42fee",
"created_at": "2025-06-26T21:00:02.875Z",
"trace_propagation_headers": {
"sentry-trace": "4d6b6e74777a444cacd2138234e8c517-19031bcb164f4e38",
"baggage": "sentry-trace_id=4d6b6e74777a444cacd2138234e8c517,sentry-environment=,sentry-release=ceb07b24cb0"
},
"meta.caller_id": "Cronjob",
"correlation_id": "59aa9029b75364226aabf3b023aca3cd",
"meta.root_caller_id": "Cronjob",
"meta.feature_category": "global_search",
"worker_data_consistency": "always",
"worker_data_consistency_per_db": {
"main": "always",
"ci": "always"
},
"idempotency_key": "resque:gitlab:duplicate:default:9e734f481aa54dc1eff5db65a0a485ee1437ff5275e4a2e5cd305bfe0db4e17a",
"size_limiter": "validated",
"enqueued_at": "2025-06-26T21:00:02.879Z",
"job_size_bytes": 2,
"pid": 1309971,
"sidekiq_tid": "7vkjf",
"sidekiq_thread_name": "sidekiq.default/processor",
"message": "ElasticClusterReindexingCronWorker JID-0a8a72376327f9b455e42fee: fail: 0.260323 sec",
"job_status": "fail",
"queue_duration_s": 0.009591,
"scheduling_latency_s": 0.009606,
"redis_calls": 8,
"redis_duration_s": 0.052654,
"redis_read_bytes": 122,
"redis_write_bytes": 1016,
"redis_feature_flag_calls": 1,
"redis_feature_flag_duration_s": 0.0001,
"redis_feature_flag_read_bytes": 115,
"redis_feature_flag_write_bytes": 87,
"redis_queues_metadata_calls": 4,
"redis_queues_metadata_duration_s": 0.015811,
"redis_queues_metadata_read_bytes": 4,
"redis_queues_metadata_write_bytes": 531,
"redis_shared_state_calls": 3,
"redis_shared_state_duration_s": 0.036743,
"redis_shared_state_read_bytes": 3,
"redis_shared_state_write_bytes": 398,
"elasticsearch_calls": 4,
"elasticsearch_duration_s": 0.176597,
"elasticsearch_timed_out_count": 0,
"db_count": 5,
"db_write_count": 0,
"db_cached_count": 2,
"db_txn_count": 0,
"db_replica_txn_count": 0,
"db_primary_txn_count": 0,
"db_replica_count": 0,
"db_primary_count": 5,
"db_replica_write_count": 0,
"db_primary_write_count": 0,
"db_replica_cached_count": 0,
"db_primary_cached_count": 2,
"db_replica_wal_count": 0,
"db_primary_wal_count": 0,
"db_replica_wal_cached_count": 0,
"db_primary_wal_cached_count": 0,
"db_replica_txn_max_duration_s": 0.0,
"db_primary_txn_max_duration_s": 0.0,
"db_replica_txn_duration_s": 0.0,
"db_primary_txn_duration_s": 0.0,
"db_replica_duration_s": 0.0,
"db_primary_duration_s": 0.038,
"db_main_txn_count": 0,
"db_ci_txn_count": 0,
"db_main_replica_txn_count": 0,
"db_ci_replica_txn_count": 0,
"db_main_count": 5,
"db_ci_count": 0,
"db_main_replica_count": 0,
"db_ci_replica_count": 0,
"db_main_write_count": 0,
"db_ci_write_count": 0,
"db_main_replica_write_count": 0,
"db_ci_replica_write_count": 0,
"db_main_cached_count": 2,
"db_ci_cached_count": 0,
"db_main_replica_cached_count": 0,
"db_ci_replica_cached_count": 0,
"db_main_wal_count": 0,
"db_ci_wal_count": 0,
"db_main_replica_wal_count": 0,
"db_ci_replica_wal_count": 0,
"db_main_wal_cached_count": 0,
"db_ci_wal_cached_count": 0,
"db_main_replica_wal_cached_count": 0,
"db_ci_replica_wal_cached_count": 0,
"db_main_txn_max_duration_s": 0.0,
"db_ci_txn_max_duration_s": 0.0,
"db_main_replica_txn_max_duration_s": 0.0,
"db_ci_replica_txn_max_duration_s": 0.0,
"db_main_txn_duration_s": 0.0,
"db_ci_txn_duration_s": 0.0,
"db_main_replica_txn_duration_s": 0.0,
"db_ci_replica_txn_duration_s": 0.0,
"db_main_duration_s": 0.038,
"db_ci_duration_s": 0.0,
"db_main_replica_duration_s": 0.0,
"db_ci_replica_duration_s": 0.0,
"cpu_s": 0.020548,
"mem_objects": 12455,
"mem_bytes": 768360,
"mem_mallocs": 3678,
"mem_total_bytes": 1266560,
"worker_id": "sidekiq_0",
"rate_limiting_gates": [],
"exclusive_lock_requested_count": 1,
"exclusive_lock_wait_duration_s": 0.012261438,
"exclusive_lock_hold_duration_s": 0.196655761,
"duration_s": 0.260323,
"completed_at": "2025-06-26T21:00:03.148Z",
"load_balancing_strategy": "primary",
"exception.class": "Elasticsearch::Transport::Transport::Errors::BadRequest",
"exception.message": "[400] {\"error\":{\"root_cause\":[{\"type\":\"illegal_argument_exception\",\"reason\":\"index setting [index.translog.durability=async] is not allowed as cluster setting [cluster.remote_store.index.restrict.async-durability=true]\"}],\"type\":\"illegal_argument_exception\",\"reason\":\"index setting [index.translog.durability=async] is not allowed as cluster setting [cluster.remote_store.index.restrict.async-durability=true]\"},\"status\":400}",
"exception.backtrace": [
"elasticsearch-transport (7.17.11) lib/elasticsearch/transport/transport/base.rb:218:in `__raise_transport_error'",
"elasticsearch-transport (7.17.11) lib/elasticsearch/transport/transport/base.rb:341:in `perform_request'",
"elasticsearch-transport (7.17.11) lib/elasticsearch/transport/transport/http/faraday.rb:36:in `perform_request'",
"elasticsearch-transport (7.17.11) lib/elasticsearch/transport/client.rb:197:in `perform_request'",
"lib/gitlab/instrumentation/elasticsearch_transport.rb:12:in `perform_request'",
"elasticsearch (7.17.11) lib/elasticsearch.rb:41:in `method_missing'",
"elasticsearch-api (7.17.11) lib/elasticsearch/api/namespace/common.rb:38:in `perform_request'",
"elasticsearch-api (7.17.11) lib/elasticsearch/api/actions/indices/create.rb:48:in `create'",
"ee/lib/gitlab/elastic/helper.rb:465:in `create_index'",
"ee/lib/gitlab/elastic/helper.rb:173:in `block in create_standalone_indices'",
"ee/lib/gitlab/elastic/helper.rb:169:in `each'",
"ee/lib/gitlab/elastic/helper.rb:169:in `each_with_object'",
"ee/lib/gitlab/elastic/helper.rb:169:in `create_standalone_indices'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:138:in `load_alias_info'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:114:in `block (2 levels) in indexing_paused!'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:111:in `each'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:111:in `each_with_index'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:111:in `block in indexing_paused!'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:107:in `each'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:107:in `indexing_paused!'",
"ee/app/services/search/elastic/cluster_reindexing_service.rb:24:in `execute'",
"ee/app/workers/elastic_cluster_reindexing_cron_worker.rb:26:in `block in perform'",
"lib/gitlab/exclusive_lease_helpers.rb:43:in `block in in_lock'",
"lib/gitlab/exclusive_lease_helpers.rb:53:in `with_instrumentation'",
"lib/gitlab/exclusive_lease_helpers.rb:42:in `in_lock'",
"ee/app/workers/elastic_cluster_reindexing_cron_worker.rb:20:in `perform'",
"ee/app/workers/concerns/geo/skip_secondary.rb:14:in `perform'",
"sentry-ruby (5.23.0) lib/sentry/cron/monitor_check_ins.rb:21:in `perform'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:220:in `execute_job'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:180:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"ee/lib/gitlab/sidekiq_middleware/set_session/server.rb:21:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/identity/restore.rb:12:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/resource_usage_limit/middleware.rb:16:in `perform'",
"lib/gitlab/sidekiq_middleware/resource_usage_limit/server.rb:8:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb:35:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/skip_jobs.rb:51:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/concurrency_limit/middleware.rb:37:in `perform'",
"lib/gitlab/sidekiq_middleware/concurrency_limit/server.rb:8:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb:31:in `perform'",
"lib/gitlab/sidekiq_middleware/pause_control/strategy_handler.rb:22:in `perform'",
"lib/gitlab/sidekiq_middleware/pause_control/server.rb:8:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"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'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/click_house/migration_support/sidekiq_middleware.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/application_context.rb:173:in `block in use'",
"gitlab-labkit (0.37.0) lib/labkit/context.rb:35:in `with_context'",
"lib/gitlab/application_context.rb:173:in `use'",
"lib/gitlab/sidekiq_middleware/worker_context.rb:11:in `wrap_in_optional_context'",
"lib/gitlab/sidekiq_middleware/worker_context/server.rb:19:in `block in call'",
"lib/gitlab/application_context.rb:173:in `block in use'",
"gitlab-labkit (0.37.0) lib/labkit/context.rb:35:in `with_context'",
"lib/gitlab/application_context.rb:173:in `use'",
"lib/gitlab/application_context.rb:96:in `with_context'",
"lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_status/server_middleware.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_versioning/middleware.rb:9:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `block in call'",
"lib/gitlab/database/query_analyzer.rb:83:in `within'",
"lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/admin_mode/server.rb:14:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/set_ip_address.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:9:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/batch_loader.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/server_metrics.rb:111:in `block in call'",
"lib/gitlab/sidekiq_middleware/server_metrics.rb:139:in `block in instrument'",
"lib/gitlab/metrics/background_transaction.rb:33:in `run'",
"lib/gitlab/sidekiq_middleware/server_metrics.rb:139:in `instrument'",
"lib/gitlab/sidekiq_middleware/server_metrics.rb:110:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/request_store_middleware.rb:8:in `block in call'",
"gems/gitlab-safe_request_store/lib/gitlab/safe_request_store.rb:66:in `enabling_request_store'",
"gems/gitlab-safe_request_store/lib/gitlab/safe_request_store.rb:59:in `ensure_request_store'",
"lib/gitlab/sidekiq_middleware/request_store_middleware.rb:7:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"gitlab-labkit (0.37.0) lib/labkit/middleware/sidekiq/server.rb:21:in `block in call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:180:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"gitlab-labkit (0.37.0) lib/labkit/middleware/sidekiq/context/server.rb:16:in `block in call'",
"gitlab-labkit (0.37.0) lib/labkit/context.rb:35:in `with_context'",
"gitlab-labkit (0.37.0) lib/labkit/middleware/sidekiq/context/server.rb:15:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:173:in `invoke'",
"gitlab-labkit (0.37.0) lib/labkit/middleware/sidekiq/server.rb:20:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"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'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/shard_awareness_validator.rb:10:in `block in call'",
"lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'",
"lib/gitlab/sidekiq_middleware/shard_awareness_validator.rb:9:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"lib/gitlab/sidekiq_middleware/size_limiter/server.rb:13:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"marginalia (1.11.1) lib/marginalia/sidekiq_instrumentation.rb:9:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"sentry-sidekiq (5.23.0) lib/sentry/sidekiq/sentry_context_middleware.rb:54:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"vendor/gems/sidekiq/lib/sidekiq/job/interrupt_handler.rb:9:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'",
"vendor/gems/sidekiq/lib/sidekiq/metrics/tracking.rb:26:in `track'",
"vendor/gems/sidekiq/lib/sidekiq/metrics/tracking.rb:134:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:182:in `traverse'",
"vendor/gems/sidekiq/lib/sidekiq/middleware/chain.rb:173:in `invoke'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:184:in `block (3 levels) in process'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/job_retry.rb:118:in `local'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/rails.rb:27:in `block in call'",
"activesupport (7.1.5.1) lib/active_support/reloader.rb:77:in `block in wrap'",
"activesupport (7.1.5.1) lib/active_support/execution_wrapper.rb:92:in `wrap'",
"activesupport (7.1.5.1) lib/active_support/reloader.rb:74:in `wrap'",
"vendor/gems/sidekiq/lib/sidekiq/rails.rb:26:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:281:in `stats'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'",
"lib/gitlab/sidekiq_logging/structured_logger.rb:21:in `call'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/job_retry.rb:85:in `global'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:132:in `block in dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/job_logger.rb:40:in `prepare'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:131:in `dispatch'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:182:in `handle_interrupt'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:182:in `block in process'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:181:in `handle_interrupt'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:181:in `process'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:86:in `process_one'",
"vendor/gems/sidekiq/lib/sidekiq/processor.rb:76:in `run'",
"vendor/gems/sidekiq/lib/sidekiq/component.rb:10:in `watchdog'",
"vendor/gems/sidekiq/lib/sidekiq/component.rb:19:in `block in safe_thread'"
],
"db_duration_s": 0.038315,
"urgency": "throttled",
"target_duration_s": 300,
"target_scheduling_latency_s": null
}
```
In certain Elasticsearch/Opensearch cluster use cases, such as when using AWS Opensearch, it may not be possible to configure `cluster.remote_store.index.restrict.async-durability=false` - in which case the Sidekiq logs will fill up with noise from these errors.
### What is the desired behavior?
The desired behavior would be to have less noise within the Sidekiq logs when the Elasticsearch/Opensearch cluster being used with GitLab can't use the `async` translog durability mode. This might be possible by making this setting configurable, or perhaps by other means if sensible.
issue