Owncloud/Nextcloud Synchronisierung fehlgeschlagen: file locked

Ungemach bei der Synchronisierung mit Owncloud und Nextcloud. Einzelne Dateien können nicht mehr synchronisiert oder manuell gelöscht werden. Wenn dieser Fehler auftritt, liegt dies sehr wahrscheinlich daran, daß durch einen Zugriff die Datei geschlossen wurde. Dies soll verhindern, daß mehrere Clients gleichzeitig dieselbe Datei manipulieren und es dadurch zu asynchronen Versionsständen kommt. Aus irgendeinem Grund wurde der Zustand jedoch nicht wieder aufgehoben, was das Synchronisieren der Datei verhindert.

In der Dokumentation von Nextcloud wird folgendes Vorgehen geschildert, was in meinem Fall den ärgerlichen Zustand beendet hat:

  • Owncloud/Nextcloud in den Wartungszustand versetzen. Dies geht durch Editieren der entsprechenden Zeile im Verzeichnis config/config.php. Also zum Beispiel über die Kommandozeile mittels

    sudo nano config.php
    ‚maintenance‘ => true,

  • Verbinden mit der Datenbank mittels einem Tool wie phpmyadmin und Inhalte der Tabelle oc_file_locks leeren oder verbinden mit der Datenbank über die Kommandozeile und dann

    use database owncloud;  (wie auch immer eure Datenbank heißt oder seit MariaDB 10.0.x auch)
    use owncloud;
    DELETE FROM oc_file_locks WHERE 1;

  • Wartungsmodus beenden durch Aufrufen der config.php wie oben beschrieben und Zurücksetzen des Werts

    ‚maintenance‘ => false,

Danach sollte die Synchronisation wieder wie gewohnt laufen.

5 Gedanken zu „Owncloud/Nextcloud Synchronisierung fehlgeschlagen: file locked“

  1. Hallo Patrick

    Ich verwende ein Synology NAS und damit ein Linux System. Dort kenne ich die Weboberflächen um die Diskstation und das darin installierte Nextcloud zu warten.
    Der Weg zur Konsole ist mir nicht ganz klar. Theoretisch mittels IP via Putty.
    Ich habe jedoch die config.php einfach mittels Dateimanager überschrieben und dann die oc_file_locks via phpMyAdmin geleert. Uklar bleibt für mich ob das ein/aus für den Wartungsmodus bei der Vorgehensweise überhaupt Wirkung zeigt.
    Leeren konnte ich die Tabelle aber die Synchronisation zeigt dennoch die gesperrten Dateien.

    Vielen Dank für jeden Tipp und Grüße
    Matthias

    Antworten
    • Hallo Matthias,

      was in der Dokumentation zu Nextcloud noch erwähnt wird ist, daß man nach dem Leeren der oc_file_locks sicherstellen solle, daß Crons regelmäßig ausgeführt werden. Crons sind Aufgaben, die in regelmäßigen Abständen automatisch durchgeführt werden. Dazu gehören auch Wartungsarbeiten in Nextcloud. Schau mal deine Einstellungen dazu in Nextcloud an und versuche mal diese url in deinem Browser aufzurufen: http(s)://url-zu-deiner-nextcloud-installation/cron.php
      Wenn das nicht geht könntest du mit dem Kommandozeilentool einen Scan des Dateisystems anstoßen:
      sudo -u www-data php occ files:scan --all
      Vorausgesetzt www-data ist der Benutzer deines Webservers der auf die Nextcloud Installation zugreift und du hast Zugriff auf dein Synology per Kommandozeile. Zugriff auf Synology NAS sollte auch über SSH klappen. Dafür gibt es sicher Anleitungen im Netz, wie diese hier. Hoffe das hilft.

      Antworten
  2. „file locked“ scheint gleichbedeutend damit zu sein, wenn auf einem Windowsrechner für die Datei im Explorer ein weißes Kreuz in einem roten Kreis angezeigt wird. Ebenfalls hat diese Anleitung bewirkt, dass diese Markierung verschwunden ist und die Datei synchronisiert worden ist.

    Antworten
  3. Hallo,
    wie kann ich mich denn mit der Datenbank verbinden? Diese Kurzform des Vorgehens habe ich häufiger gelesen, aber ich weiß halt nicht den genauen Befehl für „use database owncloud; (wie auch immer eure Datenbank heißt) DELETE FROM oc_file_locks WHERE 1;“

    Vielen Dank
    Gruß D

    Antworten
    • Hallo Daniel,

      es kommt darauf an wie du dich mit mySQL verbindest, worauf dein Owncloud läuft. Das Problem ist, daß du noch nicht weißt wie man sich mit mysql verbindet, sehe ich das richtig? Über die Kommandozeile würdest du einfach „mysql“ eingeben (inkl. Optionen, siehe auch hier). Dann mit den Kommandos wie beschrieben vorfahren.Oder man nutzt eben ein Frontend wie phpmyadmin und sucht im Browser nach entsprechenden Tabelleneinträgen.
      Falls du dein Owncloud auf einem shared Hosting betreibst könntest du zum Support Kontakt aufnehmen und auf diesen Artikel verweisen.

      Hoffe ich konnte dir weiterhelfen und falls etwas unklar ist, schreib einfach nochmal.

      Antworten

Schreibe einen Kommentar