So sieht die Meldung aus
OCP\Lock\LockedException: "files/9a3c1e7d/Dokumente/Bericht.docx" is locked, existing lock on file: exclusiveHäufige Ursachen
- File Locking läuft über die Datenbank statt über Redis; Sperren bleiben nach Abbrüchen hängen.
- Abgebrochener Upload oder Sync des Desktop-Clients, PHP-Prozess wurde per Timeout beendet.
- Die Datei ist in Collabora oder OnlyOffice noch geöffnet.
- Hintergrundjobs laufen nicht (kein System-Cron), abgelaufene Sperren werden nicht aufgeräumt.
Prüfen
- Welches Locking-Backend ist konfiguriert?
sudo -u www-data php /var/www/nextcloud/occ config:system:get memcache.locking - Erreichbarkeit von Redis prüfen
redis-cli ping - Anzahl der Sperren in der Datenbank (bei DB-Locking)
mysql -u nextcloud -p nextcloud -e 'SELECT COUNT(*) FROM oc_file_locks WHERE `lock` <> 0;' - Modus der Hintergrundjobs prüfen
sudo -u www-data php /var/www/nextcloud/occ config:app:get core backgroundjobs_mode
Lösung
- Redis als Locking-Backend einrichten:
'memcache.locking' => '\OC\Memcache\Redis'inconfig.php. - Hintergrundjobs auf System-Cron umstellen:
*/5 * * * * php -f /var/www/nextcloud/cron.phpim Crontab von www-data. - Verwaiste DB-Sperren entfernen: Wartungsmodus an,
DELETE FROM oc_file_locks WHERE 1;, Wartungsmodus aus. - Bei Redis laufen Sperren per TTL ab; nur im Notfall die Redis-Datenbank leeren, und nur wenn sie ausschließlich von Nextcloud genutzt wird.
- Danach bei Bedarf
occ files:scan --path="user/files/Ordner"für den betroffenen Pfad ausführen.
Häufige Fragen
Kann ich File Locking einfach abschalten?
Technisch ja (filelocking.enabled auf false), aber dann riskieren Sie beschädigte Dateien bei gleichzeitigen Zugriffen. Besser Redis nutzen.
Warum taucht der Fehler beim Desktop-Client immer wieder auf?
Meist durch große Dateien und kurze PHP-Timeouts: Der Upload bricht ab, die Sperre bleibt. Timeouts erhöhen und Redis-Locking verwenden.