ProFTPD: Gelöschte Dateien bei abgebrochenem Upload

Geschrieben von Steffen Schultz keine Kommentare
Kategorisiert in : Software Schlüsselwörter : Debian, Linux, OpenSource

Dokumentationen sind gut, eigene Kreativität beim Umsetzen der Anweisungen ist aber auch nicht verkehrt - so jedenfalls meine Erfahrung des gestrigen Abends. Kopfzerbrechen bereitete mir da der ProFTPD-Server, welcher unter Debian Jessie offenbar recht seltsame Voreinstellungen mitbringt.

Ein neuer Server, ein neues Debian, ansonsten aber dieselben Software-Komponenten mit weitgehend identischer Konfiguration, das machte die Migration der Daten relativ einfach. Dann natürlich die vielen Kleinigkeiten und Tweaks, die man sich besser irgendwo notieren sollte, um sie beim nächsten Umzug wieder zur Hand zu haben. Manchmal treten jedoch auch neue Probleme auf, von denen vorher nie eine Rede war. So geschehen, als mich eine Freundin, die bei mir Webseiten und Dateien hostet, darauf aufmerksam machte, dass sie während FTP-Uploads Verbindungsabbrüche erleidet, welche die angefangenen Übertragungen komplett zurücksetzen, sodass sie mit dem Hochladen wieder von vorn anfangen muss. Bei großen Dateien und einer schmalen Bandbreite ist das natürlich ärgerlich. Also kurz gecheckt, ob auf dem Server alles in Ordnung ist. "AllowStoreRestart" war in "/etc/proftpd/proftpd.conf" wie erwartet auf "on" gesetzt, Netzwerkprobleme beim Server waren ebenfalls nicht erkennbar. Kurz noch mit einer eigenen Datei getestet, ob "AllowStoreRestart" tatsächlich greift, dann die Sache mit einem "liegt halt an deiner Verbindung" abgehakt, wie es sich für einen guten Hobby-Admin eben gehört, dessen Fußvolk ohnehin alle Probleme selbst verursacht. :)

Tja, wenn da diese "penetranten" User nicht wären. Die Verbindungsabbrüche blieben, also habe ich im Weltnetz nach möglichen Ursachen und Lösungen geforscht. Jemand schlug vor, ganz einfach die Timeout-Einstellungen auf 0 zu setzen, sodass der Server die Verbindung geöffnet hält. Hmm, wann er unter der Last hunderter offener TCP-Verbindungen wohl zusammenbrechen würde? Nein, das war also keine Option.

Der ausschlaggebende Hinweis kam dann jedoch von meiner Freundin, die dadurch von jeglicher Mitschuld freigesprochen war, sieht man mal davon ab, dass die Verbindungsabbrüche durch ihr wackliges WLAN passierten. Entscheidend zur Problemfindung war, dass nur jene Dateien, die korrekt während des Uploads pausiert wurden, auf dem Server erhalten blieben und später fortgesetzt werden konnten. Wurde eine Verbindung aber unerwartet unterbrochen, verschwanden die bisher hochgeladenen Daten vom Server, und man musste von vorn anfangen. Dies konnte ich zweifelsfrei reproduzieren, also ging die Suche jetzt zielgerichtet weiter.

Fündig wurde ich recht schnell in der ProFTPD-Dokumentation. Die Option "DeleteAbortedStores" sah ganz danach aus, als könnte sie mir weiterhelfen, aber:

The DeleteAbortedStores directive controls whether ProFTPD deletes partially uploaded HiddenStores files if the transfer is stopped via the ABOR command rather than a connection failure.

Diese Option war also nur im Zusammenhang mit der Option "HiddenStores" verwendbar und zudem standardmäßig deaktiviert, wollte man der Dokumentation glauben. "HiddenStores" wiederum sorgt dafür, dass Dateien temporär als versteckte Dotfiles hochgeladen werden, erst nach vollständigem Upload werden sie umbenannt. Ebenfalls eine Option, die standardmäßig deaktiviert ist - und es auf meinem Server auch war, was ich während des Transfers beobachten konnte.

Nun, es vergingen weitere grüblerische Minuten, bis ich mich dann dazu durchringen konnte, diese eigentlich unsinnig erscheinende Option dann doch einfach mal auszuprobieren. Also in der ProFTPD-Konfiguration die Option "DeleteAbortedStores" hinzugefügt und auf "off" gesetzt. Siehe da, nach einem Neustart des Dienstes funktionierten die Uploads wieder so, wie sie sein sollten. Offenbar war die Dokumentation in diesem Punkt schon etwas veraltet, wie ich wenig später herausfand, als ich eine leicht abgewandelte Formulierung in der Dokumentation des Mod_xfer-Moduls fand:

The DeleteAbortedStores directive controls whether ProFTPD deletes partially uploaded files if the transfer is stopped via the FTP ABOR command (as opposed to a connection failure). By default, DeleteAbortedStores is off; however when HiddenStores is enabled, then DeleteAbortedStores is automatically enabled as well.

Hier greift "DeleteAborted"Stores" also nicht ausschließlich im Zusammenhang mit "HiddenStores". Durchaus denkbar, dass sich inzwischen entgegen der Dokumentation auch der Standardwert dieser Option geändert hat. Welchen Sinn es haben könnte, diese Option auf "on" zu setzen, ist mir aber schleierhaft.

Fall erledigt, Freundin wieder glücklich. Das nächste Mal überlege ich mir aber schlagkräftigere Argumente, damit endlich wieder der User die Schuld tragen kann! :)

Über den Autor

Steffen Schultz, ein lichtloser Gelegenheitsblogger aus dem Norden Brandenburgs. Ich bin auf den Betriebssystemen Windows, Linux und Android unterwegs und berichte u. a. über meine Erfahrungen beim Nutzen von Anwendungen mit Zugangstechnologien für Blinde.

Schreiben einen Kommentar

 Angaben merken
Was ist der zweiste Buchstabe des Wortes nqxa9 ?

Kommentare-Feed (RSS) dieses Artikels