我有一台SSL服务器,突然停止处理客户端请求。
我看到以下错误。
SSL_GET_NEW_SESSION:ssl会话ID回调失败。
到目前为止我的观察结果:
SSL_accept
在15秒后完全返回(套接字是非阻塞的)。
以下代码表示会话ID"错误"回调失败?在生成session-id。
CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX);
if(s->generate_session_id)
cb = s->generate_session_id;
else if(s->session_ctx->generate_session_id)
cb = s->session_ctx->generate_session_id;
CRYPTO_r_unlock(CRYPTO_LOCK_SSL_CTX);
/* Choose a session ID */
tmp = ss->session_id_length;
if(!cb(s, ss->session_id, &tmp))
{
/* The callback failed */
SSLerr(SSL_F_SSL_GET_NEW_SESSION,
SSL_R_SSL_SESSION_ID_CALLBACK_FAILED);
SSL_SESSION_free(ss);
return(0);
}
有一个线程锁定和释放,之后抛出异常。是否可以获得加密锁定失败并超时(这里有猜测)?
什么可能导致SSL_accept
延迟退货?
否则,session-id回调失败,我理解是由于生成"随机"对于session-id。这里可能出现什么问题?