Hello, I am having an issue with SSL_ConfigMPServerSIDCache on a Fedora Core 5 with 2.6.16 kernel. On a Unix machine, SSL_ConfigMPServerSIDCache calls LaunchLockPoller, which starts LockPoller() in another thread to poll the cache for expired locks. However, the cache pointer that LockPoller receives is NULL. This happens in this situation: I use Apache with mod_nss, start it with 'apachectl start', stop it with 'apachectl stop' and then start it again. Sometimes I need to start and stop two times before I get this error.
Here is the GDB trace: (gdb) bt #0 0x4569988b in LockPoller (arg=0x456ab280) at sslsnce.c:1461 #1 0x453c39da in _pt_root (arg=0x82e98a8) at ../../../../pr/src/pthreads/ptthread.c:220 #2 0x48e943b6 in start_thread () from /lib/libpthread.so.0 #3 0x48aeb33e in clone () from /lib/libc.so.6 And here is what the arg argument passed to LockPoller contains. (gdb) print *(cacheDesc *)arg $1 = {cacheMemSize = 0, numSIDCacheLocks = 0, numSIDCacheSets = 0, numSIDCacheSetsPerLock = 0, numSIDCacheEntries = 0, sidCacheSize = 0, numCertCacheEntries = 0, certCacheSize = 0, numKeyCacheEntries = 0, keyCacheSize = 0, ssl2Timeout = 0, ssl3Timeout = 0, numSIDCacheLocksInitialized = 0, nextCertCacheEntry = 0, stopPolling = 0, everInherited = 0, sidCacheLocks = 0x0, keyCacheLock = 0x0, certCacheLock = 0x0, sidCacheSets = 0x0, sidCacheData = 0x0, certCacheData = 0x0, keyCacheData = 0x0, cacheMem = 0x0, sharedCache = 0x0, cacheMemMap = 0x0, poller = 0x0, shared = 0} When SSL_ConfigMPServerSIDCache invokes LaunchLockPoller, it passes to it a pointer to the global cache: cacheDesc * cache = &globalCache; ... ... #if defined(XP_UNIX) || defined(XP_BEOS) /* Launch thread to poll cache for expired locks on Unix */ LaunchLockPoller(cache); #endif Does anybody know in what situation this pointer to the global cache might be NULL? Peter _______________________________________________ dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto