Re: 32Bit Jail in einer 64Bit Umgebung

From: Michael Gusek <michael.gusek(at)web.de>
Date: Fri, 20 Apr 2007 13:03:03 +0200

Oliver Fromme wrote:
> Michael Gusek wrote:
> > Oliver Fromme wrote:
> > > Michael Gusek wrote:
> > > > [...] Richtig wäre java -version. Diese Aufgabe scheint für
> > > > java so schwer zu sein, dass der Prozess dauerhaft auf 100% geht.
> > >
> > > Das kann sonstwelche Ursachen haben; das muss keineswegs
> > > mit der 32bit-Umgebung zusammenhängen. Man müsste das
> > > natürlich näher untersuchen; für eine Ferndiagnose sind
> > > die vorhandenen Informationen zu dürftig. strace ist
> > > im Falle von Java nicht unbedingt hilfreich, aber wie
> > > gesagt, in solchen Fällen sind Ferndiagnosen schwierig.
> > > Das muss man schon vor Ort debuggen.
> >
> > Wie müsste man denn Vorgehen, um Informationen zu
> > bekommen, die hier hilfreich sind ?
>
> Das kann man nicht so ohne weiteres sagen, weil jeder
> Schritt vom Ergebnis des vorhergehenden abhängt.
>
> Ein strace des hängenden Prozesses wäre zumindest schonmal
> ein einfacher Versuch. Vielleicht versucht er ja irgend-
> einen Syscall (z.B. Öffnen eines Devices oder einer Datei),
> der schiefgeht (not found, permission denied o.ä.), aber
> der Fehler wird nicht korrekt behandelt, so dass es immer
> wieder versucht wird. Solche Fälle hatte ich schon. Das
> sieht man dann im strace, und man kann das Problem beheben
> (Verzeichnis anlegen, Permissions ändern usw.).
>
> Im Worst-case siehst Du im strace gar nichts. Dann ist der
> Prozess einfach in einer Endlosschleife, in der er keine
> Syscalls macht, und strace hilft Dir nicht mehr weiter.
> Evtl. kann man versuchen, herauszufinden, was er unmittel-
> bar davor als letztes tut, z.B. ob er eine bestimmte Datei
> öffnet, deren Inhalt vielleicht aufgrund eines Bugs das
> Verhalten hervorrufen könnte.
>
> Du könntest auch versuchen, den Debug-Level hochzusetzen.
> Vielleicht bringt das etwas zu Tage, vielleicht auch nicht.
>
> Falls Du eine Vergleichsumgebung hast (z.B. auf einem
> 32bit-System), die ansonsten identisch ist und unter der
> das Problem nicht auftritt, könntest Du ein differentielles
> Trace versuchen. D.h. in beiden Umgebungen unter gleichen
> Bedingungen stracen, dann aus der Ausgabe jeweils irrele-
> vante Informationen (z.B. Timestamps, Speicheradressen)
> wegfiltern, und den Rest mit diff(1) vergleichen. Mögli-
> cherweise findet man auf diese Weise den entscheidenden
> Unterschied, der zu dem Fehlverhalten führt.
>
> Übrigens -- fällt mir gerade ein ... Ist vielleicht eine
> banale Sache, aber die einfachsten Dinge übersieht man ja
> manchmal ... Hast Du daran gedacht, in dem chroot ein
> DEVFS auf /dev zu mounten? Ohne das wird es nicht gehen
> (und so einiges andere auch nicht). Ich könnte mir gut
> vorstellen, dass Java so Dinge wie /dev/null, /dev/tty
> und ein paar andere brauchen könnte ...
>
Das devfs ist natürlich da (ohne dem startet das Jail im übrigen auch
nicht). Ansonsten hab ich noch eine binärgleiche
Jail auf einem 32Bit System zu laufen (im Moment ist dies das produktive
Jail), ich kann also Vergleiche anstellen. Ich werd mal sehen, ob ich
übers WE ein strace anwerfen kann und ob ich da was verwertbares finde,
das poste ich dann hier.
> Gruß
> Olli
>
>

Vielen Dank erstmal bis hierher.

Micha

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 20 Apr 2007 - 13:04:16 CEST

search this site