Allow mergeability check when merge_status is already checking
We previously don't perform `MergeRequestMergeabilityCheckWorker` when MR `merge_status` is already `checking`. This is to reduce the number of workers getting enqueued. However, this can cause a MR getting stuck in `checking` state in case the worker failed to update the status (e.g. service failed to obtain a lock). The worker won't be retried because we handle and log this type of errors. Since the worker is idempotent, it's already deduplicated. We also have a lease mechanism in `MergeRequests::MergeabilityCheckService` that will obtain a lock and keep it for a minute. We can rely on these mechanisms instead so we can still allow performing a mergeability check when the `merge_status` is already `checking`. Changelog: fixed
Showing
Please register or sign in to comment