Can you also include the stack trace from the CHECK failure? On Tue, Jun 26, 2018 at 11:25 PM, Suteng <sut...@huawei.com> wrote:
> F0622 11:22:30.985245 16127 libevent_ssl_socket.cpp:190] Check failed: > 'self->bev' Must be non NULL > > Try<Nothing> LibeventSSLSocketImpl::shutdown(int how) > > CHECK_NOTNULL(self->bev) > > > > Test case: > > A server is non-ssl, B server is enable downgrade, B frequent link > reconnect to A, then will generate this error, very low probability. It’s > looks like bev is already free, than call shutdown again. > > > > class OpensslProcess : public ProtobufProcess<OpensslProcess> > > { > > public: > > OpensslProcess() > > : ProcessBase("OpensslProcess"), sendCnt(0), recvCnt(0) {} > > > > ~OpensslProcess() {} > > > > virtual void initialize() > > { > > install<UdpMessage>(&OpensslProcess::HandleMessage); > > install("ping", &OpensslProcess::pong); > > //SendMessage(); > > } > > void SendMessage() > > { > > string data = "hello world"; > > UdpMessage msg; > > msg.set_size(data.size()); > > msg.set_data(data); > > > > Address serverAddr = Address(net::IP::parse("127.0.0.1", > AF_INET).get(), 7012); > > UPID destUpid = UPID("OpensslProcess", serverAddr); > > > > send(destUpid, msg); > > sleep(5); > > link(destUpid, RemoteConnection::RECONNECT); > > send(destUpid, msg); > > link(destUpid, RemoteConnection::RECONNECT); > > send(destUpid, msg); > > } > > > > > > > > > > > > > > > > Su Teng 00241668 > > > > Distributed and Parallel Software Lab > > Huawei Technologies Co., Ltd. > > Email:sut...@huawei.com > > > > >