Re: konkurrierende Dateizugriffe

From: Marc Santhoff <M.Santhoff(at)t-online.de>
Date: Tue, 01 Mar 2005 17:48:36 +0100

Am Di, den 01.03.2005 schrieb Bernd Walter um 17:00:
> On Tue, Mar 01, 2005 at 03:53:27PM +0100, Marc Santhoff wrote:
> > Hi,
> >
> > was passiert eigentlich, wenn ein Prozeß ein Verzeichnis anlegt und dort
> > Dateien reinschreibt und ein anderer Prozeß dieses Verzeichnis
> > gleichzeitig mit "rm -r" löscht?
>
> Kommt darauf an was der schreibende Prozess offen hat.
> Dateien und Verzeichnisse, die er offen hat kann keiner löschen.
> Es können zwar alle Verzeichnisseintrþage gelöscht werden, aber
> solange es noch eine Referenz zu dem Objekt gibt bleibt es physikalisch
> auf der Platte bestehen.
> Per Filename kann der schreibende Prozess diese allerdings nicht
> mehr referieren, da diese ja weg sind, allerdings kann er durchaus
> Filedescriptoren zu den noch offenen Objekten an andere Prozesse
> übergeben.

Das heißt irgendwelche Merkwürdigkeiten bezüglich vergebener oder schon
wieder leerer Sektoren treten nicht auf weil der Prozeß selbst ja
(normalerweise) für's Schreiben exklusiv sperrt.

Der einzige kritische Fall ist, wenn eine Datei geschrieben wird, diese
gleichzeitig gelöscht wird (das geht trotz Lock?) und dann am Ende der
schreibende Prozeß den Verzeichniseintrag aktualisieren will.

> > Der schreibende Prozeß schert sich i.d.F. nicht um das Vorhandensein von
> > Verzeichnissen, wenn sie fehlen legt er sie neu an.
>
> Dann hast du zum Schluß halt nur noch die neuen Verzeichnisse.

Damit kann ich leben.

> > Kann es dadurch gefährliche Situationen bzw. ein inkonsistentes
> > Dateisystem geben?
>
> Nein - wäre ja auch schrecklich, wenns so wäre.

Ja eben. ;)

> Das einzige was passiert ist, dass du Objekte ohne Referenz im
> Filesystem hast, welche nach einem unsauberen shutdown erst durch
> den fsck gefunden werden - derartige Inkonsistenzen treten aber
> grundsätzlich im normalen Betrieb auf und sind absolut harmlos.

Das beruhigt mich sehr. Ich hatte eben ein tar-Archiv ausgepackt und
schon angefangen, Teile davon wegzulöschen, obwohl das Auspacken
nochlief ... das brachte mich zu der prinzipiellen Frage.

Grüße,
Marc

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 01 Mar 2005 - 17:50:06 CET

search this site