[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: problem (bug?) with glibc' exec function



plazmakeks@stonerrock.net a écrit :
> hi,
> 
> i got the following settings:
> 
> 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
> 
> i got a java application from which i start os processes using c/c++
> via JNI. every 'job' consists of a 'wrap script' and an 'application
> script'. my c function forks the current process and replaces the
> image
> with the execl() function, in which the 'wrap script' is called as a
> bash script. the 'wrap script' then calls the 'application script' and
> does other stuff.
> 
> i did some masstests the last days. i started about 1000 'jobs' in a
> loop.
> 
> execl() definition says, that the function replaces the current
> process image with the delivered one. if the function succeeds it
> doesnt return, if it fails it will return. however if i start lots of
> jobs concurrently there are some 'jobs' which's process image isnt
> replaced by the delivered bash script call to execl(), you can see it
> by using the 'ps ax' command in the shell which shows several jvm
> instances running, related to the number of failed-started 'jobs'. but
> if the execl() function fails and the process image isnt replaced, the
> execl() function neither returns a value. so i guess there is a bug.
> any suggestions?

execl is just a wrapper around the execve syscall. This is most likely a
problem of resources on your system.

Just check errno to see what happens exactly.

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net


Reply to: