Geo sync fails with error: "Cannot find a handler for Gitlab::Geo Downloader for object_type = 'issuable_metric_image'"
Summary
There doesn't appear to be a handler available for object_type: issuable_metric_image.
issuable_metric_image
s are uploads for Incident metrics that was introduced by the MR: Resolve "Upload metrics images to the metrics tab on incidents", under the issue: Upload metrics images to the metrics tab on incidents.
Steps to reproduce
- Create an incident under a project.
- Upload an image under the incident's
Metrics
tab. - Wait for Geo to attempt sync.
Example Project
What is the current bug behavior?
Geo won't sync incident metrics images.
What is the expected correct behavior?
Geo should sync incident metrics images.
Relevant logs and/or screenshots
{
"severity": "ERROR",
"time": "2021-04-16T13:13:39.000Z",
"correlation_id": "redacted",
"class": "Geo::FileDownloadService",
"host": "redacted",
"message": "Cannot find a handler for Gitlab::Geo Downloader for object_type = 'issuable_metric_image'",
"job_id": "redacted",
"object_type": "issuable_metric_image",
"object_db_id": 6759
}
{
"severity": "WARN",
"time": "2021-04-16T13:13:39.009Z",
"class": "Geo::FileDownloadWorker",
"args": [
"issuable_metric_image",
"6759"
],
"retry": 3,
"queue": "geo:geo_file_download",
"version": 0,
"queue_namespace": "geo",
"dead": false,
"jid": "redacted",
"created_at": "2021-04-16T13:13:02.859Z",
"meta.caller_id": "Geo::FileDownloadDispatchWorker",
"meta.feature_category": "geo_replication",
"correlation_id": "redacted",
"enqueued_at": "2021-04-16T13:13:38.994Z",
"failed_at": "2021-04-16T13:13:02.872Z",
"retry_count": 0,
"pid": 1005,
"message": "Geo::FileDownloadWorker JID-redacted: fail: 0.012864 sec",
"job_status": "fail",
"scheduling_latency_s": 0.001351,
"job_size_bytes": 599,
"cpu_s": 0.002859,
"mem_objects": 928,
"mem_bytes": 38464,
"mem_mallocs": 182,
"redis_calls": 4,
"redis_duration_s": 0.00212,
"redis_read_bytes": 1119,
"redis_write_bytes": 496,
"redis_cache_calls": 1,
"redis_cache_duration_s": 0.000348,
"redis_cache_read_bytes": 1116,
"redis_cache_write_bytes": 35,
"redis_queues_calls": 1,
"redis_queues_duration_s": 0.000337,
"redis_queues_read_bytes": 1,
"redis_queues_write_bytes": 127,
"redis_shared_state_calls": 2,
"redis_shared_state_duration_s": 0.001435,
"redis_shared_state_read_bytes": 2,
"redis_shared_state_write_bytes": 334,
"db_count": 0,
"db_write_count": 0,
"db_cached_count": 0,
"duration_s": 0.012864,
"completed_at": "2021-04-16T13:13:39.008Z",
"error_message": "Cannot find a handler for Gitlab::Geo Downloader for object_type = 'issuable_metric_image'",
"error_class": "NotImplementedError",
"error_backtrace": [
"ee/app/services/geo/base_file_service.rb:32:in `fail_unimplemented_klass!'",
"ee/app/services/geo/file_download_service.rb:43:in `downloader_klass'",
"ee/app/services/geo/file_download_service.rb:33:in `downloader'",
"ee/app/services/geo/file_download_service.rb:20:in `block in execute'",
"app/services/concerns/exclusive_lease_guard.rb:29:in `try_obtain_lease'",
"ee/app/services/geo/file_download_service.rb:17:in `execute'",
"ee/app/workers/geo/file_download_worker.rb:12: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/sidekiq_middleware/worker_context.rb:9:in `wrap_in_optional_context'",
"lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `block in call'",
"lib/gitlab/application_context.rb:63:in `block in use'",
"lib/gitlab/application_context.rb:63:in `use'",
"lib/gitlab/application_context.rb:24: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: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:38:in `block in call'",
"lib/gitlab/metrics/background_transaction.rb:30:in `run'",
"lib/gitlab/sidekiq_middleware/server_metrics.rb:38: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:19:in `call'"
],
"db_duration_s": 0
}
Output of checks
Results of GitLab environment info
Observed on Gitlab 13.10.3.
Results of GitLab application Check
All checks passed. Please refer to ZD(internal) for more details.