0

我们在多线程环境中有使用openSSL版本的服务。1.0.2h

第一个线程运行阻塞读取,另一个线程正在执行定期写入。

它不时libssl.soSSL_write功能内部的某个地方崩溃。代码调用SSL_write看起来绝对合法,它使用分配在调用函数堆栈上的缓冲区进行操作。崩溃也非常罕见,这表明它可能是竞争条件。

我发现下面的文章说,在两个线程中使用一个SSL对象,一个用于读取和写入的线程是不安全的,尽管CRYPTO_set_locking_callback已设置。那是对的吗?如果是,那么解决此问题的建议方法是什么?如果我阻止mutex阻塞读取,我将无法写入。

4

1 回答 1

0

我们建议修改超时阈值。

跟踪和调试竞态条件很困难,最终您将不得不更改超时和/或缓冲区参数。现在就更好地研究这些参数。

于 2019-04-08T23:10:39.543 回答