Log expected errors related to conflicts in RebaseWorker without tracking in Sentry
There are a lot of events in Sentry from Rebaseworker
For example: https://new-sentry.gitlab.net/organizations/gitlab/issues/1520647
Gitlab::Git::Repository::GitError: 9:rebasing commits: rebase: commit "29f9c69f180a6eb4d576a148b58c9f23a7541ed8": there are conflicting files.
from lib/gitlab/gitaly_client/operation_service.rb:422:in `rescue in rebase'
from lib/gitlab/gitaly_client/operation_service.rb:413:in `rebase'
from lib/gitlab/git/repository.rb:959:in `block in rebase'
from lib/gitlab/git/wraps_gitaly_errors.rb:7:in `wrapped_gitaly_errors'
from lib/gitlab/git/repository.rb:958:in `rebase'
from app/models/repository.rb:1158:in `rebase'
from app/services/merge_requests/rebase_service.rb:34:in `rebase'
from app/services/merge_requests/rebase_service.rb:26:in `execute'
from app/workers/rebase_worker.rb:22:in `perform'
from sidekiq/processor.rb:220:in `execute_job'
from sidekiq/processor.rb:185:in `block (4 levels) in process'
from sidekiq/middleware/chain.rb:180:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from gitlab/sidekiq_middleware/set_session/server.rb:21:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/identity/restore.rb:12:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/resource_usage_limit/middleware.rb:16:in `perform'
from lib/gitlab/sidekiq_middleware/resource_usage_limit/server.rb:8:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/database/load_balancing/sidekiq_server_middleware.rb:35:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/skip_jobs.rb:51:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/concurrency_limit/middleware.rb:37:in `perform'
from lib/gitlab/sidekiq_middleware/concurrency_limit/server.rb:8:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/pause_control/strategies/base.rb:31:in `perform'
from lib/gitlab/sidekiq_middleware/pause_control/strategy_handler.rb:22:in `perform'
from lib/gitlab/sidekiq_middleware/pause_control/server.rb:8:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/until_executing.rb:16:in `perform'
from lib/gitlab/sidekiq_middleware/duplicate_jobs/duplicate_job.rb:44:in `perform'
from lib/gitlab/sidekiq_middleware/duplicate_jobs/server.rb:8:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/click_house/migration_support/sidekiq_middleware.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/worker_context.rb:9:in `wrap_in_optional_context'
from lib/gitlab/sidekiq_middleware/worker_context/server.rb:19:in `block in call'
from lib/gitlab/application_context.rb:173:in `block in use'
from labkit/context.rb:35:in `with_context'
from lib/gitlab/application_context.rb:173:in `use'
from lib/gitlab/application_context.rb:96:in `with_context'
from lib/gitlab/sidekiq_middleware/worker_context/server.rb:17:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_status/server_middleware.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_versioning/middleware.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `block in call'
from lib/gitlab/database/query_analyzer.rb:83:in `within'
from lib/gitlab/sidekiq_middleware/query_analyzer.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/admin_mode/server.rb:14:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/set_ip_address.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/instrumentation_logger.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/batch_loader.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/extra_done_log_metadata.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/server_metrics.rb:111:in `block in call'
from lib/gitlab/sidekiq_middleware/server_metrics.rb:139:in `block in instrument'
from lib/gitlab/metrics/background_transaction.rb:33:in `run'
from lib/gitlab/sidekiq_middleware/server_metrics.rb:139:in `instrument'
from lib/gitlab/sidekiq_middleware/server_metrics.rb:110:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/request_store_middleware.rb:8:in `block in call'
from gitlab/safe_request_store.rb:66:in `enabling_request_store'
from gitlab/safe_request_store.rb:59:in `ensure_request_store'
from lib/gitlab/sidekiq_middleware/request_store_middleware.rb:7:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from labkit/middleware/sidekiq/server.rb:21:in `block in call'
from sidekiq/middleware/chain.rb:180:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from labkit/middleware/sidekiq/context/server.rb:16:in `block in call'
from labkit/context.rb:35:in `with_context'
from labkit/middleware/sidekiq/context/server.rb:15:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:173:in `invoke'
from labkit/middleware/sidekiq/server.rb:20:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/monitor.rb:10:in `block in call'
from lib/gitlab/sidekiq_daemon/monitor.rb:46:in `within_job'
from lib/gitlab/sidekiq_middleware/monitor.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/shard_awareness_validator.rb:10:in `block in call'
from lib/gitlab/sidekiq_sharding/validator.rb:42:in `enabled'
from lib/gitlab/sidekiq_middleware/shard_awareness_validator.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from lib/gitlab/sidekiq_middleware/size_limiter/server.rb:13:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from marginalia/sidekiq_instrumentation.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from sentry/sidekiq/sentry_context_middleware.rb:54:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from sidekiq/job/interrupt_handler.rb:9:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:183:in `block in traverse'
from sidekiq/metrics/tracking.rb:26:in `track'
from sidekiq/metrics/tracking.rb:134:in `call'
from sidekiq/middleware/chain.rb:182:in `traverse'
from sidekiq/middleware/chain.rb:173:in `invoke'
from sidekiq/processor.rb:184:in `block (3 levels) in process'
from sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
from sidekiq/job_retry.rb:118:in `local'
from sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
from sidekiq/rails.rb:27:in `block in call'
from active_support/reloader.rb:77:in `block in wrap'
from active_support/execution_wrapper.rb:92:in `wrap'
from active_support/reloader.rb:74:in `wrap'
from sidekiq/rails.rb:26:in `call'
from sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
from sidekiq/processor.rb:281:in `stats'
from sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
from lib/gitlab/sidekiq_logging/structured_logger.rb:21:in `call'
from sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
from sidekiq/job_retry.rb:85:in `global'
from sidekiq/processor.rb:132:in `block in dispatch'
from sidekiq/job_logger.rb:40:in `prepare'
from sidekiq/processor.rb:131:in `dispatch'
from sidekiq/processor.rb:183:in `block (2 levels) in process'
from sidekiq/processor.rb:182:in `handle_interrupt'
from sidekiq/processor.rb:182:in `block in process'
from sidekiq/processor.rb:181:in `handle_interrupt'
from sidekiq/processor.rb:181:in `process'
from sidekiq/processor.rb:86:in `process_one'
from sidekiq/processor.rb:76:in `run'
from sidekiq/component.rb:10:in `watchdog'
from sidekiq/component.rb:19:in `block in safe_thread'
These are handled gracefully here by logging the error and tracking in Sentry: https://gitlab.com/gitlab-org/gitlab/-/blob/master/app/services/merge_requests/rebase_service.rb#L37-39
Proposal:
- Only log the error without also tracking in Sentry reduce noise in Sentry
Edited by 🤖 GitLab Bot 🤖