Merge branch '23223-group-deletion-race-condition' into 'master'
Remove race condition while deleting groups
## What does this MR do?
The intended flow during a group deletion is:
```
Soft-delete group (sync) -> Delete group projects (async) -> Hard-delete group (async)
```
The soft-delete was run in a transaction, which was committed only after
the async job (for hard-deletion) was kicked off. There was a race
condition here - the soft-delete transaction could complete _after_ the
hard delete completed, leaving a soft-deleted record in the database.
This MR removes this race condition. There is no need to run the
soft-delete in a transaction. The soft-delete completes before the async
job is kicked off.
This MR also adds a migration to delete all existing (soft-deleted) groups left in an inconsistent state
due to this bug.
- Closes #23223
- EE merge request: gitlab-org/gitlab-ee!886
See merge request !7528
Showing
spec/support/database_connection_helpers.rb
0 → 100644
Please
register
or
sign in
to comment