bug in execl? (glibc)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
plazmakeks
Beiträge: 1
Registriert: 04.04.2008 14:46:53

bug in execl? (glibc)

Beitrag von plazmakeks » 04.04.2008 15:17:43

hallo,

folgende situation:

os: Linux blubb 2.6.15-1-686 #2 Mon Mar 6 15:27:08 UTC 2006 i686 GNU/Linux
g++: gcc version 4.0.4 20060507 (prerelease) (Debian 4.0.3-3)
java: java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)
glibc: 2.7

ich habe eine java anwendung die mittels JNI in c/c++ prozesse forkt und deren image mittels execl ersetzt. die ersetzenden prozess images sind verschachtelte bash scripte. ein 'wrap script' ruft ein anwendungsscript auf indem verschiedene befehle bzw anwendung ausgeführt werden.

ich spiele grad einige lasttests durch bei denen bis zu 1000 'wrap scripts' in einer schleife aufgerufen werden. laut definition der execl funktion ersetzt diese das aktuelle prozess image mit dem übergebene. in meinem fall ist das übergebene halt das 'wrap script'. falls die execl funktion fehlschlägt gibt sie einen rückgabe wert zurück falls nicht halt nichts. bei einer hohen zahl an gestarten 'wrap scripts' (in meinem fall > 700) ersetzt die execl funktion die images aber nicht, liefert jedoch auch keinen wert zurück. ps sagt, wie zu erwarten, dass mehrer jvm instanzen laufen, jedoch nicht meine 'wrap script'.

der fehler tritt allerdings nicht immer auf. wie gesagt bei einer anzahl an 'wrap scripts' über 700 warens in meinem fall so 0-5, bei steigender anzahl (so 1000) wurdens dann auch so je nach test 0-10. die restlichen prozesse images wurden korrekt ersetzt.

kann das irgendjemand erklären? meiner meinung nach liegt da anscheindend ein fehler in der 'execl' funktion vor. andere meinung bzw verbesserungsvorschläge?

Antworten