Nextcloud: Fichero bloqueado, como desbloquearlo

Introducción

En más de una ocasión Nextcloud me ha producido un error al intentar sincronizar un fichero, lo bloquea e impide su sincronización, incluso aunque borre dicho fichero el error persiste, da igual desde donde lo borre, en la parte del cliente o el servidor, el fichero se queda bloqueado.

file1.png.

La única solución que encontré fue borrar directamente en la base de datos de Nextcloud las entradas de los fichero marcados como bloqueados.

Modo mantenimiento

Actualmente uso un docker de Nextloud, por lo que necesito entrar en la shell del contenedor para poder editar el fichero de configuración y poner Nextcloud en modo Mantenimiento

docker exec -it nextcloud bash
nano -wc /config/www/nextcloud/config/config.php

Cambiamos la linea a 'maintenance' => true,

nextcloud es el nombre del contenedor

file2.png.

Editando la base de datos

También utilizo un contenedor de MariaDB como base de datos de Nextcloud, así que para acceder a la shell para conectarme a la base de datos.c

docker exec -it nextclouddb bash

nextclouddb es el nombre del contenedor de MariaDB

root@OMV1:/ mysql -uroot -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8737
Server version: 10.1.34-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Borramos el contenido de la tabla oc_file_locks, puedes usar alguna herramienta tipo phpmyadmin o también puedes conectar directamente a la base de datos y ejecutar el comando DELETE FROM oc_file_locks WHERE 1

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nextcloud          |
| performance_schema |
+--------------------+
4 rows in set (0.05 sec)

MariaDB [(none)]> use nextcloud;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [nextcloud]>

MariaDB [nextcloud]> DELETE FROM oc_file_locks WHERE 1;
Query OK, 275 rows affected (0.18 sec)

MariaDB [nextcloud]> DELETE FROM oc_file_locks WHERE 1;
Query OK, 275 rows affected (0.18 sec)

root@OMV1:/ exit
exit

Desactivar modo mantenimiento

Una vez vaciada la tabla con la lista de ficheros bloqueados tenemos que desactivar el modo mantenimiento

docker exec -it nextcloud bash
root@OMV1:/$ nano -wc /config/www/nextcloud/config/config.php

Desactivamos el modo mantenimiento deshaciendo el primer paso 'maintenance' => false

Ahora podemos sincronizar los ficheros sin problemas

file3.png.

Referencia: