Skip to content

Libéré un fichier locké dans le filesystem

Auteur : Philippe Le Van - @plv@framapiaf.org

Date : 17 novembre 2022

Un fichié locké, c'est quoi ?

Le démarrage d'une base mysql a échoué avec le message suivant dans les logs

1
[ERROR] mysqld: Can't lock aria control file '/var/lib/mysql/aria_log_control' for exclusive use, error: 11. Will retry for 30 seconds

En gros, ça veut dire qu'un process a déjà ouvert le fichier en écriture et qu'un autre process cherche à l'ouvrir également en écriture.

Résoudre le problème

En général le problème revient à savoir quel process a ouvert le fichier en écriture et à le tuer si besoin.

Pour trouver tous les process qui ont ouvert un fichier, il suffit d'utiliser la commande lsof.

1
2
3
4
5
6
# exemple de commande sur un fichier de la base prometheus
sudo lsof queries.active

# le  résultat liste les process qui accèdent à ce fichier. Dans notre cas, c'est logiquement le fichier prometheus.
COMMAND    PID USER  FD   TYPE DEVICE SIZE/OFF     NODE NAME
prometheu 4441 root mem    REG  253,1          30421707 queries.active (stat: No such file or directory)

Dans le cas de ma base, c'était un process qui créait un core dump.