ulimit scheint das bash-Skript einzufrieren

527
Fernando César

Ich führe ein Bash-Skript aus, das mehrere kleine Apps mit unterschiedlichen Eingaben ausführt. Einige dieser Apps weisen Fehler auf (z. B. nie fertig), und daher verwende ich ulimit, um die Ausgabe oder einen Fehler von allen zu erhalten.

In "pseudo-bash" ist so etwas:

for app in $( find apps ); do for input in $( find inputs ); do  ( ulimit -Sf 150 -St 1 -Sd 1024 -Sv 51200 app < input ) # handle output done  done 

Dies funktioniert gut für die meisten Apps und Eingaben (über 1000 Tests), jedoch haben bestimmte Apps mit bestimmten Eingaben (immer dieselben) Probleme und frieren das Skript ein.

Ich habe dies manuell getestet und festgestellt, dass diejenigen, die einfrieren, Probleme haben (Segmentierungsfehler). Aber das soll passieren. Ich benutze ulimit genau, damit ich einen Fehler bekommen und weitermachen kann.

Beispiele für Fehlermeldungen:

*** glibc detected *** <app name>: malloc(): memory corruption (fast) 0x00000000022de2f1 *** 

.

*** glibc detected *** <app name>: corrupted double-linked list: 0x0000000001cc3120 *** 

.

*** glibc detected *** <app name>: free(): invalid size: 0x00000000017daf20 *** 

Ich habe dies in verschiedenen Maschinen, gcc-Versionen und Linux-Versionen versucht. Ich bekomme Wiederholungen, obwohl in verschiedenen Paaren von App und Eingaben.

Wie kann ich herausfinden, was los ist und es lösen? Oder mache ich etwas falsch?

1

0 Antworten auf die Frage