DOCGroup / ACE_TAO

ACE and TAO
https://www.dre.vanderbilt.edu/~schmidt/TAO.html
707 stars 381 forks source link

ACE_SSL how to deal with SSL_ERROR_SYSCALL #1509

Open yangdemin opened 3 years ago

yangdemin commented 3 years ago

Version

6.5.9

centos [8.2]

gcc 10.2

The problem effects:

crash

Description

Client use class HXBaseComm : ACE_Svc_Handler<ACE_SSL_SOCK_Stream, ACE_MT_SYNCH> Server use ClientAcceptor = ACE_Acceptor<ClientBridge, ACE_SSL_SOCK_Acceptor>

When a client connected with server, it was forced close the server will receive a SSL_ERROR_SYSCALL.The Server should destory the session connect with "handle_close()". But the functions call ACE_Svc_Handler::shutdown()->ACE_SSL_SOCK_Stream::close()->::SSL_shutdown (this->ssl_) will make crash. The function ::SSL_shutdown (this->ssl_) is called in SSL_SOCK_Stream.inl line 319. In openssl [(https://www.openssl.org/docs/man1.1.0/man3/SSL_get_error.html)] SSL_ERROR_SYSCALL SSL_shutdown() must not be called.

jwillemsen commented 3 years ago

Maybe related to #522 and #564

yangdemin commented 3 years ago

Maybe related to #522 and #564

seems two questions.