Re: Programme hängen beim Zugriff auf CIFS-Mount

From: Polytropon <freebsd(at)edvax.de>
Date: Wed, 25 Nov 2015 17:56:18 +0100

On Wed, 25 Nov 2015 17:40:45 +0100 (CET), Oliver Fromme wrote:
> Polytropon wrote:
> > On Tue, 24 Nov 2015 09:17:30 +0100, Alexander Klein wrote:
> > > [...]
> > > Wenn ich truss auf die verklemmten Prozesse ansetze, dann bekomme ich
> > > eine Flut von Meldungen folgender Art:
> > >
> > > open("?A?($??(??.db",O_CLOEXEC,00) = 5 (0x5)
> >
> > Wenn mein Systemprogrammier-Gehirnstaub noch nicht zu sehr
> > eingetrocknet ist, hängt die Ausführung aus folgendem Grund:
> > Es wird open() mit der Option "close on exit" aufgerufen,
>
> "close on exec" (war wohl nur ein Typo)

Ja, das war ein Fehler im parallel betriebenen Denksprechschreiber. :-)

> > was bewirkt, daß bei einem execve() die Dateien geschlossen
> > werden; der Normalfall ist, daß sie dies "überleben". Dieser
> > Aufruf wird mit Fehlercode 5 quittiert, das ist EIO, also
>
> Nein, mit EIO bist Du auf der falschen Fährte, fürchte ich.
>
> Die Zahl auf der rechten Seite ist der Rückgabewert des Calls,
> nicht der Inhalt von errno. Das heißt, der open()-Call ist
> durchaus erfolgreich und liefert einen File-handle mit der
> Nummer 5 zurück.

Aha! Das ist ein deutliches Zeichen für Hirnverfall meinerseits. :-)

Gut, ist aber auch logisch - wenn man sich den Funktionsprototyp
zu open() anschaut, daß es dann der Rückgabewert der Funktion ist.
Ich erinnere mich jetzt auch daran, daß lesende Funktionen die
Zahl der gelesenen Bytes als Ergebnis zurückliefern, schreibende
Funktionen analog, mit z. B. 0 oder -1 zur Signalisierung des
Fehlerfalls und _dann_ errno-Setzung.

Also nochmal danke für die Korrektur meiner inneren Einstellung.
Ich werde es zukünftig wohlfein bedenken. :-)

> Aber wo jetzt das Problem liegt, kann ich anhand der vorlie-
> genden Informationen leider auch nicht sagen. Mein Verdacht
> wäre auch, dass es etwas mit dem Locking zu tun haben könnte.

Das würde zu "mal geht's, mal nicht" passen - z. B. ein zu den
jeweiligen Zeitpunkten unterschiedlicher Verbrauch an System-
ressourcen oder sonstigen "Sperren", wo auch immer diese dann
liegen mögen - im VFS unter FreeBSD, auf dem "Server" selbst,
im Netzwerk-Stack..., der Möglichkeiten gibt es leider viele.

-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 25 Nov 2015 - 17:56:27 CET

search this site