IT-MÜCKE

rsync Fehler code 12

Beitragsdatum 19.07.2023
Letzte Aktualisierung 29.07.2023
Betrifft rsync

Problem

Bei einem lokalen rsync wurde mir nach einiger Laufzeit untypischerweise auf einmal ein Fehler angezeigt, der Job abgebrochen.

Aufruf von rsync wie folgt:

rsync -H -a -P --stats --delete-before /path/to/source/ /path/to/target/

# Nach einiger Laufzeit, da sehr(!) viele Dateien in diesem Pfad enthalten sind, kam immer wieder folgender Fehler:
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.3]

Ursache

Eine genaue Ursache konnte ich nicht verifiziert ermitteln. Code 12 kann idR ausgelöst werden, wenn der Speicherplatz im Zielpfad zu knapp wird, die Version von rsync auf der Gegenseite nicht zur Version auf der Senderseite passt oder die Verbindung zur Gegenseite aufgrund von einem Timer und fehlendem Datenaustausch unterbrochen wird (idle). In diesem Fall konnten die beiden letzten Punkte nicht zutreffen, da ich lokal rsyncen wollte, also keine Verbindung zu einer Gegenseite aufgebaut hatte bzw. keine zwei rsync-Versionen im Einsatz waren.

Ich vermute inzwischen, dass der RAM-Speicher voll lief, da wirklich sehr viele Dateien verglichen werden müssen. Durch die Option --delete-before muss rsync zuerst alle Dateien ermitteln und vergleichen, um dann Dateien zuerst löschen zu können.

Grund für diese Option: der Speicherplatz auf dem Zielverzeichnis könnte sonst zu knapp werden, wenn erst die neuen Daten gesichert und dann die alten Daten entfernt werden.


Lösung

Ich ließ nach mehreren Versuchen und der Erhöhung der verbosity von rsync (Option -vv) das --delete-before aus der oben genannten Vermutung weg. Der RAM-Speicher des Servers war bereits ganz gut ausgelastet - hier könnte es evt. zu Problemen gekommen sein.

Ein Test ergab: jetzt läuft der rsync erstmal wieder durch.

Da nun aber die Dateien nicht zuerst gelöscht werden, könnte es evt. zu einem Problem bzgl. Speicherplatz kommen.
Eine gute Lösung wäre daher, den RAM-Speicher der Maschine zu erhöhen.

Update 29.07.2023:
Nach Aufrüstung des RAM funktioniert die speicherintensive Option --delete-before wieder problemlos. Es lag höchstwahrscheinlich am RAM.


Quellen:


Ähnliche Themen im blog:
rsync


zurück