Hello!
I wrote a multithreaded server using OpenSSL v 0.9.7a (running on a RH
Enterprise Linux
2.6.9-55.0.2.ELsmp).
The problem is my server is crashing at random times (it could stay alive for
24 hours or can crash
within 4 hours). Inspecting the cores file I found that it crashes in the same
location every time
#0 0x00ba503f in CRYPTO_add_lock () from /lib/libcrypto.so.4
I defined the two needed callbacks (according to crypto man page) like this:
struct CRYPTO_dynlock_value
{
pthread_mutex_t mutex;
};
static pthread_mutex_t *mutex_buf = NULL;
static void locking_function(int mode, int n, const char *file, int line)
{
if (mode & CRYPTO_LOCK) {
pthread_mutex_lock(&mutex_buf[n]);
} else {
pthread_mutex_unlock(&mutex_buf[n]);
}
}
static unsigned long id_function(void)
{
return ((unsigned long) pthread_self());
}
The core dump (some lines where trimmed) looks something like this:
Core was generated by '/foo/bar -args'.
Program terminated with signal 11, Segmentation fault.
............................................
............................................
............................................
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
#0 0x00ba503f in CRYPTO_add_lock () from /lib/libcrypto.so.4
(gdb) bt
#0 0x00ba503f in CRYPTO_add_lock () from /lib/libcrypto.so.4
#1 0x00be368c in BIO_free () from /lib/libcrypto.so.4
#2 0x00c9d1f5 in SSL_free () from /lib/libssl.so.4
#3 0x0805b29f in wns::ServerPort::EndPort (this=0x8f5ad08) at serverport.cpp:57
#4 0x0805de03 in wns::ServerPort::CloseSocket (this=0x8f5ad08) at
serverport.cpp:186
#5 0x0805d144 in wns::ServerPort::disconnect (this=0x8f5ad08) at
serverport.cpp:153
#6 0x0058a28c in ost::SocketService::run (this=0x8db48d0) at socketport.cpp:743
#7 0x00e7113d in ccxx_exec_handler (th=0x8db48d0) at thread.cpp:1097
#8 0x00a813cc in start_thread () from /lib/tls/libpthread.so.0
#9 0x003bac3e in clone () from /lib/tls/libc.so.6
What can be the problem of this crashes? Should I update to 0.9.8g?
Please advice!
Thanks!
__________________________________
Whozin - Are you in?
We pay you to read your own e-mail!
Primul webmail adevărat în limba română !