Robert Hiltibidal wrote:
>
>[...]
> I have a bit of frustration here. Whenever I use https to connect to the
> browser, either and any, will time out.
>
> I can connect to port 80 just fine.
[...]
> Any ideas?
>
Earlier this week I tracked down this problem with the browsers hanging
(on Win32). It turns out to be something with locking. The problem
occurs
in ssl_engine_rand.c, in function ssl_rand_seed(). At one point or
another, that function calls RAND_seed() in the OpenSSL library. It in
its turn locks a critical section, calling CRYPTO_lock(), which in it's
turn calls the win32_locking_callback() function in ssl_util.c. The
WaitForSingleObject(lock_cs[type], INFINITE) call in that function never
return. That's why the browsers hang. The call to CRYPTO_lock that gives
the problem is the one on line 202 in md_rand.c. Commenting out the
WaitForSingleObject and it't release counterpart makes mod_ssl work just
fine again.
But don't ask me why the WaitForSingleObject doesn't return.
WaitForSingleObject waits until it can lock the mutex. The only reason
why it wouldn't be able to lock it, is because someone else has a lock
on it. But in that case someone must have locked the mutex without the
win32_locking_callback(), otherwise it would have shown up in my trace.
The win32_locking_callback() acquires and properly releases the lock
many times prior to the moment when it no longer returns.
Another possibility, although I don't really see how, is that it would
be a threading problem.
Regards,
Jan Dries
______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl) www.modssl.org
User Support Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]