lkml.org 
[lkml]   [2001]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: pthreads & fork & execve
    Hi!

    I tracked this down to a corrupt jumptable somewhere in the pthreads
    part of the libc (didnt have the source handy at that time, though). So
    I think this is a libc bug (version does not matter) - I even did a
    followup to a similar bug in the libc gnats database (I think I should
    have opened a new one, though...). But I failed to construct a "simple"
    testcase showing the bug (We use rather large amount of threads and
    in one or two doing popen() calls - or handcrafted fork() && execv(),
    the SIGSEGV is during fork()).

    I stopped trying to find out what is going on as this feature is not
    essential (but maybe useful in the future). So I suggest you build a
    libc from source with debugging on and trace it down to the actual
    libc problem - or better try to isolate a simple testcase.

    I like to hear from the results :)

    Richard.

    On Fri, 30 Mar 2001, Dennis Noordsij wrote:

    > Hi,
    >
    > I have question regarding use of pthreads, forks and execve's which appears
    > to not work very well :-) First let me explain the reasoning though
    >
    > We have an app that launches a few other apps and keeps track of their
    > status, resource consumption etc. If one of the apps crashes, it is restarted
    > according to certain parameters.
    >
    > The app uses pthreads, and it's method of (re)starting an application is
    > forking and calling execve.
    >
    > It works fine for all-but-one other app, which core dumps when started this
    > way (from the commandline it works fine) and the core only traces back to
    > int main(int argc, char **argv). It uses both pthreads and -ldl for plugin
    > handling.
    >
    > We have tried changing the linking order (i.e. -ldl -lpthread, -lpthread,
    > -ldl, etc), and even execv'ing a shell script that starts a shell script that
    > starts the app - result is the same, instant core without even running.
    >
    > I can see who forks together with threads and execve's are a messy
    > combination, and a better solution altogether to our approach is appreciated
    > just as much as a way to make the current solution work :-)
    >
    > We have tested both kernels 2.4.2 and 2.2.18.
    >
    > We have tried on different systems, different hardware and slightly different
    > distributions (debian potato, unstable, etc).
    >
    > To sum up: using a pthreaded app to launch another pthreaded app by means of
    > forking and exec(ve)'ng makes the second app core immediately, (at entering
    > main). What to do?
    >
    > Kind regards, and thanks for any help
    > Dennis Noordsij
    > -
    > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    > the body of a message to majordomo@vger.kernel.org
    > More majordomo info at http://vger.kernel.org/majordomo-info.html
    > Please read the FAQ at http://www.tux.org/lkml/
    >

    --
    Richard Guenther <richard.guenther@uni-tuebingen.de>
    WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
    The GLAME Project: http://www.glame.de/

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:22    [W:0.036 / U:31.100 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site