Try adding something like this to the initialization section of your test
program.
CRYPTO_set_id_callback((unsigned long (*)()) pthreads_thread_id);
> -----Original Message-----
> From: Bill Rebey [mailto:[EMAIL PROTECTED]]
> Sent: Monday, August 07, 2000 2:25 PM
> To: Openssl-Dev (E-mail)
> Subject: Crash bug exemplified
>
>
> The attached program is about as small as I can make a test app that
> exemplifies the problem that my server application is having.
> I have posted
> about it repeatedly with no results, probably because nobody
> can (or wants
> to <g>) reproduce it. This little test program is only about
> 160 lines long
> with comments. It just tries to keep a bunch of transient
> threads going at
> once (the threads don't do anything - they just exit after
> sleeping for a
> millisecond).
>
> <<comp>> <<link>> <<tst.cpp>>
> This problem happens on SPARC Solaris. This program demonstrates the
> problem very quickly (usually within a minute) on both a
> SPARC Ultra-2 with
> Solaris 2.6, and a SPARC Ultra-60 with Solaris 2.8. My
> "real" app doesn't
> crash nearly this fast, as it doesn't put nearly the
> stress-test on OpenSSL
> that the test app does - but it most certainly crashes every
> time I test it;
> it just takes hours instead of seconds.
>
> Can anyone reproduce this and fix it? I'm in a VERY bad spot
> here because I
> can't ship my product until I get OpenSSL to work. My
> company pretty much
> threw sand in RSA's face in favor of using OpenSSL, on my
> recommendation,
> and now I can't make OpenSSL work and we can't ship my
> product. This is
> hardly a great career move for me. If anyone can identify
> and fix this bug,
> I would greatly appreciate it. I look pretty stupid right
> now to the folks
> in upper management, and I feel like my hands are tied. I'm
> trying to use
> Purify to determine the problem, but I've never used it
> before and will
> probably be slow to figure out how to make it work and
> understand exactly
> what it's telling me.
>
> If anyone sees any obvious misuse problem, PLEASE let me
> know. I would LOVE
> to hear "you're doing it wrong - you forgot to make this
> function call!" and
> be done with it, but as far as I can tell, I'm obeying the
> OpenSSL usage
> laws to the letter.
>
> If you run the "comp" and "link" scripts to build this little
> test program,
> then run the resultant "tst" executable, it should crash
> after a short time
> and if you run dbx against the resultant core, you should get
> the following
> stack in response to the dbx "where" command:
>
> core file header read successfully
> Reading ld.so.1
> Reading libsocket.so.1
> Reading libCrun.so.1
> Reading libm.so.1
> Reading libw.so.1
> Reading libthread.so.1
> Reading libc.so.1
> Reading libnsl.so.1
> Reading libdl.so.1
> Reading libmp.so.2
> Reading libc_psr.so.1
> detected a multithreaded program
> t@3937 (l@48) terminated by signal BUS (invalid address alignment)
> Current function is ThreadMain
> 100 int iErr = ERR_get_error ();
> (/opt/SUNWspro/bin/../WS6/bin/sparcv9/dbx) where
> current thread: t@3937
> [1] t_delete(0x9, 0xff2b6000, 0x150, 0x65300, 0x651a8, 0x150), at
> 0xff241798
> [2] realfree(0x9, 0xff2bc7b0, 0xff2b6000, 0x65300, 0x153,
> 0x65308), at
> 0xff241420
> [3] cleanfree(0x0, 0xff2b6000, 0xff2bc724, 0xff2bc7a4,
> 0xff2bc730, 0x0),
> at 0xff241cb4
> [4] _malloc_unlocked(0x60, 0x0, 0xff2b6000, 0x60, 0x5,
> 0x0), at 0xff240e20
> [5] malloc(0x60, 0x60, 0x62798, 0x150, 0x0, 0x0), at 0xff240d3c
> [6] CRYPTO_malloc(0x5a5b0, 0x470d0, 0x77, 0x5a400, 0x470d0,
> 0x60), at
> 0x17070
> [7] lh_new(0x1cba0, 0x1cbb8, 0x470d0, 0x2be, 0x1cbb8,
> 0x14c), at 0x34604
> [8] ERR_get_state(0x5a400, 0x0, 0x673e0, 0x430d8, 0x673e0,
> 0xf7509b28), at
> 0x1ce6c
> [9] get_error_values(0x1, 0x0, 0x0, 0x0, 0x0, 0x0), at 0x1c4a0
> =>[10] ThreadMain(pNothing = (nil)), line 100 in "tst.cpp"
> (/opt/SUNWspro/bin/../WS6/bin/sparcv9/dbx) quit
>
> Thanks for your help,
>
> Bill Rebey
>
>
>
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]