Skip to content

Using redis shared state for export states

Aishwarya Subramanian requested to merge export-state-fix into master

What does this MR do?

This MR addresses the following problem:

Users can check the current state of the project export job using the Export status api.

The current state of a project export is currently determined by checking for the presence of lock files in (an assumed) shared volume.

The node on which the background job for the project export operation is done is not same as the web server node that processes the api request. Thus, checking for lock files to determine the state of export job is not accurate, as in reality, they are not stored in a shared volume.

Solution:

The state of the export job (started, after_export_action, finished) is stored in a shared redis state, and is used to retrieve and return to the user the current state.

Mentions #32203 (closed)

Screenshots

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 🤖 GitLab Bot 🤖

Merge request reports