Skip to content

Explicitly destroy webhooks and logs before the project deletion [RUN ALL RSPEC] [RUN AS-IF-FOSS]

What does this MR do?

Problem

There are foreign keys with DELETE CASCADE option defined for web_hooks and web_hook_logs tables. Database tries to delete them in the scope of delete project query. For some cases, the query duration exceeds the statement_timeout setting. As the result, the project is stuck in a half-deleted state.

Solution

Run WebHooks::DestroyService before project.destroy call and ensure that we delete webhooks efficiently in batches.

Screenshots (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Vasilii Iakliushin

Merge request reports

Loading