Error locking state: Error acquiring the state lock: state blob is already locked

Descripción del Problema

Al trabajar con Terraform, es posible encontrarse con el siguiente error al intentar ejecutar un plan, aplicar cambios o cualquier otra operación que requiera acceso al estado compartido:

Error: Error locking state: Error acquiring the state lock: state blob is already locked
Lock Info:
  ID:        XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
  Path:      /env/dev/appservice/app/front/terraform.tfstate
  Operation: OperationTypePlan
  Who:       rokitoj@redorbita
  Version:   0.14.7
  Created:   2024-06-06 07:14:42.492117293 +0000 UTC
  Info:

Este mensaje indica que Terraform no puede adquirir el bloqueo de estado porque otro proceso ya lo tiene. Esto ocurre para evitar que múltiples usuarios escriban en el estado simultáneamente, lo que podría causar corrupción de datos.

Solución

Para resolver este problema, podemos utilizar Terragrunt o Terraform para forzar el desbloqueo del estado. A continuación, se describen los pasos para hacerlo.

Paso a Paso para Desbloquear el Estado

  1. Identificar el ID del bloqueo: En el mensaje de error, se proporciona el ID del bloqueo. En este caso, el ID es XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.
  2. Usar Terragrunt/Terraform para forzar el desbloqueo: Terragrunt/Terraform proporciona una opción para forzar el desbloqueo del estado. Ejecuta el siguiente comando en tu terminal, reemplazando el ID con el proporcionado en el mensaje de error:
terraform force-unlock XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Do you really want to force-unlock?
  Terraform will remove the lock on the remote state.
  This will allow local Terraform commands to modify this state, even though it
  may be still be in use. Only 'yes' will be accepted to confirm.

  Enter a value: yes

Terraform state has been successfully unlocked!

The state has been unlocked, and Terraform commands should now be able to
obtain a new lock on the remote state.

Este comando forzará el desbloqueo del estado, permitiendo que puedas continuar con tus operaciones de Terraform.

Precauciones

  • Verifica antes de forzar el desbloqueo: Antes de forzar el desbloqueo, asegúrate de que ningún otro proceso legítimo esté utilizando el estado. Forzar el desbloqueo mientras otro proceso está activo puede causar inconsistencias en tu infraestructura.

  • Evitar el uso de -lock=false: Aunque Terraform permite desactivar el bloqueo de estado utilizando el flag -lock=false, no se recomienda hacerlo porque aumenta el riesgo de que se produzcan escrituras concurrentes y corrupción del estado.

:wq!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *