我们在多线程环境中使用1.0.2h
版libssl.so
进行服务。
第一个线程运行阻止读取,另一个线程进行定期写入。
它有时会在SSL_write
函数的SSL_write
内部某个地方崩溃。代码调用SSL
看起来绝对合法,它与在调用函数堆栈上分配的缓冲区一起运行。另外,撞车非常罕见,这表明可能是比赛条件。
我发现以下article表示,在两个线程中使用单个CRYPTO_set_locking_callback
对象,尽管设置了mutex
,但每个线程用于读取和写入并不安全。那是对的吗?如果是,那么建议的解决方法是什么?如果我在阻塞读取中阻塞 import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import Header from './Includes/Header'
import Footer from './Includes/Footer'
import Index from './Index'
import Routings from './Includes/Routings'
export default class Main extends Component {
render() {
return (
<div>
<Header/>
<Index/>
<Routings/>
<Footer/>
</div>
);
}
}
if (document.getElementById('app')) {
ReactDOM.render(<Main />, document.getElementById('app'));
}
,将无法写入。
答案 0 :(得分:0)
我们建议修改超时阈值。
跟踪和调试竞争条件很困难,最终您将不得不更改超时和/或缓冲区参数。现在最好研究一下这些参数。