20201123123400_migrate_issues_to_separate_index migration fails with error 'max must be greater than 1' when shard count is one
Summary
When a single Elasticsearch index is being used, the 20201123123400_migrate_issues_to_separate_index migration will fail with error:
[400] {\"error\":{\"root_cause\":[{\"type\":\"x_content_parse_exception\",\"reason\":\"[1:17] [slice] failed to parse field [max]\"}],\"type\":\"x_content_parse_exception\",\"reason\":\"[1:280] [reindex] failed to parse field [source]\",\"caused_by\":{\"type\":\"x_content_parse_exception\",\"reason\":\"[1:17] [slice] failed to parse field [max]\",\"caused_by\":{\"type\":\"illegal_argument_exception\",\"reason\":\"max must be greater than 1\"}}},\"status\":400}
The number of shards is passed as the 'max' argument in the query, resulting in the error.
Steps to reproduce
- Configure ES to use only one shard
- Execute the
20201123123400_migrate_issues_to_separate_index
migration
What is the current bug behavior?
Migration fails to run.
What is the expected correct behavior?
Migration runs successfully with any number of shards
Relevant logs and/or screenshots
`
"severity": "WARN",
"time": "2021-02-10T16:00:18.156Z",
"error_class": "Elasticsearch::Transport::Transport::Errors::BadRequest",
"error_message": "[400] {\"error\":{\"root_cause\":[{\"type\":\"x_content_parse_exception\",\"reason\":\"[1:17] [slice] failed to parse field [max]\"}],\"type\":\"x_content_parse_exception\",\"reason\":\"[1:280] [reindex] failed to parse field [source]\",\"caused_by\":{\"type\":\"x_content_parse_exception\",\"reason\":\"[1:17] [slice] failed to parse field [max]\",\"caused_by\":{\"type\":\"illegal_argument_exception\",\"reason\":\"max must be greater than 1\"}}},\"status\":400}",
"context": "Job raised exception",
"queue": "cronjob:elastic_migration",
"args": [],
"class": "Elastic::MigrationWorker",
"retry": 0,
"version": 0,
"queue_namespace": "cronjob",
"jid": "f3f14a005ed85db5ecbe62f8",
"created_at": "2021-02-10T16:00:17.102Z",
"meta.caller_id": "Cronjob",
"correlation_id": "d3d4b1d75b912601039537870b1f895d",
"enqueued_at": "2021-02-10T16:00:17.107Z",
"error_backtrace": [
"lib/gitlab/instrumentation/elasticsearch_transport.rb:12:in `perform_request'",
"ee/elastic/migrate/20201123123400_migrate_issues_to_separate_index.rb100in `reindex'",
"ee/elastic/migrate/20201123123400_migrate_issues_to_separate_index.rb:57:in `migrate'",
"ee/app/models/elastic/migration_record.rb:7:in `migrate'",
"ee/app/workers/elastic/migration_worker.rb:60:in `execute_migration'",
"ee/app/workers/elastic/migration_worker.rb:39:in `block in perform'",
"lib/gitlab/exclusive_lease_helpers.rb:38:in `in_lock'",
"ee/app/workers/elastic/migration_worker.rb:19:in `perform'",
"lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing.rb:16:in `perform'",
"lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb:40:in `perform'",
"lib/gitlab/sidekiq_middleware/duplicate_jobs/server.rb:8:in `call'",
"lib/gitlab/application_context.rb:56:in `block in use'",
"lib/gitlab/application_context.rb:56:in `use'",
"lib/gitlab/sidekiq_middleware/worker_context.rb:11:in `wrap_in_optional_context'",
"lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `block in call'",
"lib/gitlab/application_context.rb:56:in `block in use'",
"lib/gitlab/application_context.rb:56:in `use'",
"lib/gitlab/application_context.rb:22:in `with_context'",
"lib/gitlab/sidekiq_middleware/worker_context/server.rb:15: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/admin_mode/server.rb:8:in `call'",
"lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:7: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:37:in `call'",
"lib/gitlab/sidekiq_middleware/monitor.rb:8:in `block in call'",
"lib/gitlab/sidekiq_daemon/monitor.rb:49:in `within_job'",
"lib/gitlab/sidekiq_middleware/monitor.rb:7:in `call'",
"lib/gitlab/sidekiq_logging/structured_logger.rb:18:in `call'"
]
}
/cc @terrichu
Edited by Will Chandler (ex-GitLab)