I applied the required changed from 0.9.7-stable. This ticket is now resolved.
[[EMAIL PROTECTED] - Sun Aug 18 12:30:48 2002]: > Here is some info on this subject > > In crypto/rand/rand_win.c > > RegQueryValueEx(HKEY_PERFORMANCE_DATA, "Global", ... > > is called. This call lock registry access > (_PredefinedHandleTableCriticalSection) and than load perfomance > dll using LoadLibraryEx and GetProcessAddress (requires > _LoadCriticalSection). > > If another thread in this time is calling ODBC initialization, the > process became deadlocked. > > This happen due to DllMain of ODBCCP32.DLL, which calls > ReQueryValueEx(HKEY_LOCAL_MACHINE, .. > > In deadlock situation the DllMain of ODBCCP32.DLL has lock on > _LoadCriticalSection, and is waiting on > _PredefinedHandleTableCriticalSection. But call from rand_win.c > has lock on _PredefinedHandleTableCriticalSection and is waiting on > critical section _LoadCriticalSection. > > _LoadCriticalSection is in this place (is probably same object in all > threads) > mov eax,fs:[00000018] > mov eax,dword ptr [eax+30h] > push dword ptr [eax+0A0h] - ptr to CriticalSectionObject > > I dont know if this is problem of calling RegQueryValueEx in DllMain > or RegQueryValueEx holding lock on registry during Perfomance Dll > initialization. This must be solve by Microsoft. > > Here are some comments about this in crypto/rand/rand_win.c from 0.9.7 > snapshot > > / * It appears like this can cause an exception deep within > ADVAPI32.DLL > * at random times on Windows 2000. Reported by Jeffrey Altman. > * Only use it on NT. > */ > /* Wolfgang Marczy <[EMAIL PROTECTED]> reports that > * the RegQueryValueEx call below can hang on NT4.0 (SP6). > * So we don't use this at all for now. */ > #if 0 > if ( osverinfo.dwPlatformId == VER_PLATFORM_WIN32_NT && > > This #if 0 must be used in 0.9.6 to use openssl in multithreaded ODBC > apllication. Without this my apllication became deadlocked every > time I reboot computer (every computer with NT4.0 SP6 MDAC2.6 I > tried) and sometimes during heavy disk usage. > > Please make some FAQ of this (calls to RAND_poll must be serialized) > or don't use RegQueryValueEx(HKEY_PERFORMANCE_DATA) at all. > > Milan Dadok > e-mail: [EMAIL PROTECTED] > -- Richard Levitte ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List [EMAIL PROTECTED] Automated List Manager [EMAIL PROTECTED]