Il lock è un meccanismo di protezione, non il problema
Terraform usa il lock di stato per evitare scritture concorrenti su backend remoti. Se il blocco fallisce, il comportamento non è un bug di Terraform: è un segnale che la pipeline o l'ambiente di backend non è stabile.
Perché il force-unlock è pericoloso
HashiCorp documenta chiaramente che force-unlock deve essere usato solo quando si è certi che il lock precedente non è più attivo. Il comando richiede un lock ID univoco, perché sbloccare un lock ancora in uso può creare scritture parallele e corrompere lo stato.
Pattern ricorrenti
I casi più frequenti sono: backend remoto che perde connettività proprio durante un apply, processi interrotti da timeout, o pipeline multiple che non rispettano la serializzazione. Anche le configurazioni di backend con timeout troppo bassi aumentano la probabilità di lock falliti.
Come ridurre il rischio
Stabilisci una pratica chiara: usa backend supportati, controlla lo stato del lock prima dell'apply, aumenta i timeout di acquisizione quando necessario e riserva force-unlock solo per incidenti verificati. In un processo ben governato, il lock fallito è un input per migliorare la pipeline, non un motivo per bypassare la sicurezza.
