Re: 1.1.1b crash (RUN_ONCE problem?)

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

 



> On Mar 4, 2019, at 11:29 PM, Norm Green <norm.green@xxxxxxxxxxxxxxxxxx> wrote:
> 
> Yes I'm sure the build process is correct.
> Turns out this problem was cause by one thread calling exit() while another thread was doing SSL_write().  The SSL exit handler triggered by exit() was causing the lock in question to be freed AFAIKT.
> So it would seem that threads either need to exit with pthread_exit() or return to a known state such that no SSL calls are in progress in any thread before the process can safely exit().

Yes, main() must not exit while threads are running code from
libraries with exit handlers.  This is issue is not unique to
OpenSSL.  I've observed the same problem with threading running
code in MIT's GSSAPI library.

Some users want libraries to be unloadable without memory leaks,
others want safe exit() while threads are running...  Serving
both is hard.

A multi-threaded program that wants to exit before all the
threads are done, should probably call _exit(), and skip
the exit handlers (when none of those are doing anything
critical, like flushing stdio buffers).

Alternatively arrange for a way to ask threads to terminate
promptly, and wait for them to do that.

-- 
-- 
	Viktor.





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

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux