This is the mail archive of the
mailing list for the glibc project.
Re: [RFC PATCH v4 3/5] support record failure: flush stdout, use _exit ()
----- On Nov 21, 2018, at 1:52 PM, Mathieu Desnoyers email@example.com wrote:
> ----- On Nov 21, 2018, at 1:50 PM, Florian Weimer firstname.lastname@example.org wrote:
>> * Mathieu Desnoyers:
>>> Using "exit ()" from pthread_atfork handlers hangs the process. It is
>>> therefore not a good way to exit when reporting a testing error.
>>> Use _exit () instead, which directly exits the process. However,
>>> considering that the buffered stdout is used to output test failure
>>> messages, we first need to flush stdout before exiting.
>> This is not correct; we need the atexit handlers for cleaning up
>> temporary files.
>> It should be possible to call support_record_failure and rely on the
>> shared memory segment to register the test failure, so that it is
>> eventually reflected in the exit state (even if the failure happens in
>> the subprocess).
> Calling exit() from a pthread_atfork handler unfortunately seems to hang
> the process :-/
> What would you recommend to deal with that situation ?
Or do you mean _not_ exiting from the pthread_atfork handlers, but just
record the error there, and continue normally, then catch the error in
the parent ?
> Mathieu Desnoyers
> EfficiOS Inc.