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

Reply via email to