Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading SSL_accept出现阻塞15秒_Multithreading_Ssl_Openssl - Fatal编程技术网

Multithreading SSL_accept出现阻塞15秒

Multithreading SSL_accept出现阻塞15秒,multithreading,ssl,openssl,Multithreading,Ssl,Openssl,我有一个SSL服务器,它突然停止处理客户端请求 我看到以下错误 SSL_获取_新建_会话:SSL会话id回调失败 我迄今的观察结果: SSL\u accept恰好在15秒后返回(套接字是非阻塞的) 以下代码表示在生成会话id时抛出错误“会话id回调失败” CRYPTO_r_lock(CRYPTO_LOCK_SSL_CTX); if(s->generate_session_id) cb = s->generate_session_id;

我有一个SSL服务器,它突然停止处理客户端请求

我看到以下错误

SSL_获取_新建_会话:SSL会话id回调失败

我迄今的观察结果:

SSL\u accept
恰好在15秒后返回(套接字是非阻塞的)

以下代码表示在生成会话id时抛出错误“会话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\U accept延迟返回


否则,会话id回调失败,据我所知,这是由于为会话id生成“随机”时出现问题。这里会出现什么问题?

假设所有其他情况都正确,听起来您可能需要(1)重新启动服务器;或者(2)重新编译服务器以使用发行版提供的最新OpenSSL源代码。对于(2),OpenSSL共享对象可能已更改。@jww,是,应用程序重新启动解决了此问题。但是我担心,它可能会再次发生。对15秒的超时有什么想法吗?每次正好15秒?我不知道为什么应用程序会出现这种状态。我猜有两件事。。。(1) 意外ABI中断(即结构布局已更改);或(2)程序内存错误。任何一个都可能已损坏状态并无意中重新配置了套接字。如果这是一个ABI更改,那么通过重新加载共享对象,您可能会很幸运。如果这是一个记忆错误,并且你运气好,那么你就会崩溃,从而在事情上站稳脚跟。