Hey Sam, Thanks for the response. I think that is the issue here. I was under the impression that configuring using the 'threads' option would be enough to make OpenSSL thread-safe. That was really helpful!!
On Tue, Aug 24, 2010 at 9:23 PM, Sam Jantz <sjan...@gmail.com> wrote: > Have you explicitly made your application thread safe? There are four > functions that you need to implement to make the OpenSSL libraries > themselves thread safe. These are: > > static void locking_function(int mode, int n, const char * file, int line) > static unsigned long id_function(void) > int THREAD_setup(void) > and int THREAD_cleanup > > Once you have these implemented, you call THREAD_setup in the main thread > before you start spawning sub threads, and THREAD_cleanup during shutdown. > This will allow openssl to successfully run the multi threaded. > > For more information on how to implement these functions see the man page > for CRYPTO_set_locking_callback, and CRYPTO_set_id_callback > > I hope that this is new information, and not something you already knew. > > Cheers, > > Sam > > On Tue, Aug 24, 2010 at 6:37 AM, Sayan Chaliha > <sayan.chal...@webyog.com>wrote: > >> Hey all, >> >> Under stressed conditions (multi-threaded apps with several threads using >> OpenSSL at the same time) the function RAND_bytes crashes consistently. >> Anybody have any idea why this is caused and if there's any solution for it? >> >> Attached: >> GDB `disassemble $rip` ourput from core dump. >> >> Stack trace: >> #0 sha1_block_data_order (c=0x2aab118ab4c0, p=<value optimized out>, >> num=288230376151706362) at sha_locl.h:256 >> #1 0x00002b302f4a1e13 in SHA1_Update (c=0x2aab118ab4c0, data_=<value >> optimized out>, len=18446744073709551592) at ../md32_common.h:325 >> #2 0x00002b302f5034ed in ssleay_rand_bytes (buf=0x46d25860 "", num=0) at >> md_rand.c:489 >> #3 0x00002b302f502df6 in ssleay_rand_pseudo_bytes (buf=0x2022a54d0 >> <Address 0x2022a54d0 out of bounds>, num=1933866968) at md_rand.c:533 >> >> OpenSSL version: 1.0.0a >> >> OS: CentOS 5.4 x86_64 >> >> -- >> Regards, >> Sayan Chaliha >> Webyog Softworks Private Limited >> 2nd Floor, Novel Team Building >> #10, 100 Feet Ring Road >> BTM Layout 1st Stage >> Bangalore - 560068 >> >> +91-9743357501 >> > > > > -- > Sam Jantz > Software Engineer > > -- Regards, Sayan Chaliha Webyog Softworks Private Limited 2nd Floor, Novel Team Building #10, 100 Feet Ring Road BTM Layout 1st Stage Bangalore - 560068 +91-9743357501