Nextcloud: Fichero bloqueado, como desbloquearlo

2 minutos de lectura

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.

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

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

Cambiamos la linea a 'maintenance' => true,

nextcloud es el nombre del contenedor

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

1
2docker exec -it nextclouddb bash

nextclouddb es el nombre del contenedor de MariaDB

 1
 2root@OMV1:/ mysql -uroot -p
 3Enter password:
 4Welcome to the MariaDB monitor.  Commands end with ; or \g.
 5Your MariaDB connection id is 8737
 6Server version: 10.1.34-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04
 7
 8Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
 9
10Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
11
12MariaDB [(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

 1
 2MariaDB [(none)]> show databases;
 3+--------------------+
 4| Database           |
 5+--------------------+
 6| information_schema |
 7| mysql              |
 8| nextcloud          |
 9| performance_schema |
10+--------------------+
114 rows in set (0.05 sec)
12
13MariaDB [(none)]> use nextcloud;
14Reading table information for completion of table and column names
15You can turn off this feature to get a quicker startup with -A
16
17Database changed
18MariaDB [nextcloud]>
19
20MariaDB [nextcloud]> DELETE FROM oc_file_locks WHERE 1;
21Query OK, 275 rows affected (0.18 sec)
22
23MariaDB [nextcloud]> DELETE FROM oc_file_locks WHERE 1;
24Query OK, 275 rows affected (0.18 sec)
25
26root@OMV1:/ exit
27exit

Desactivar modo mantenimiento

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

1
2docker exec -it nextcloud bash
3root@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

Referencia: