Ich habe einen Multithread-Prozess auf RHEL6.x (64bit) ausgeführt.Verwenden von Strace-Fixes hängen Speicherproblem
Ich finde, dass der Prozess hängt und einige Threads (des gleichen Prozesses) die meiste Zeit abstürzen, wenn ich versuche, den Prozess zu starten. Einige Threads warten auf gemeinsamen Speicher zwischen den Threads zu erstellen (ich kann sehen, dass alles nicht erstellt wird).
Aber wenn ich Strace verwende, hängt der Prozess nicht und es funktioniert gut (der gesamte Speicher, der erstellt werden soll, wird erstellt). Selbst wenn strace unterbrochen wird, nachdem der Speicher erstellt wurde, bleibt der Prozess für immer in Ordnung.
Ich habe diese Zeilen lesen:
, die mir eine Idee tat geben. Ich bin aber immer noch unklar, da die von ihnen verwendete RHEL-Version nicht erwähnt wird.
Ein weiterer Punkt ist, dass das Ändern des Kernels zu einem fedora (kompatiblen) Kernel das Problem nicht verursachte.
Also möchte ich nur wissen, wie genau strace einen Prozess beeinflusst? (Oder ist es nur der Stack, der wie im Link gezeigt, zum Kernel zurückkehrt)?
Ich habe das gleiche Problem. Ein Prozess, der normalerweise an einem select() -Aufruf hängt, wird fortgesetzt, wenn ich ihn an strace anschließe. Wenn ich es nicht an strace anhefte, bleibt es einfach für immer dort hängen. – ernesto