Ultra fast and low latency asynchronous socket server & client C++ library with support TCP, SSL, UDP, HTTP, HTTPS, WebSocket protocols and 10K connections problem solution
MIT License
1.43k
stars
284
forks
source link
SSLClient ReconnectAsync() Access Violation on Windows Debug build #95
When compiling the library and running the tests, I built all 4 variations (3 Release and 1 Debug). All 3 of the Release builds had 100% tests passed.
On the Debug build, the "SSL server random test" crashed when the case to reconnect a random client was hit, with this call stack:
cppserver-tests.exe!asio::detail::buffer_debug_check<std::_Vector_iterator<std::_Vector_val<std::_Simple_types<unsigned char>>>>::operator()() Line 659
at CppServer\modules\asio\asio\include\asio\buffer.hpp(659)
[External Code]
cppserver-tests.exe!asio::mutable_buffer::data() Line 117
at CppServer\modules\asio\asio\include\asio\buffer.hpp(117)
cppserver-tests.exe!asio::detail::buffer_sequence_adapter<asio::mutable_buffer,asio::mutable_buffers_1>::validate(const asio::mutable_buffers_1 & buffer_sequence) Line 438
at CppServer\modules\asio\asio\include\asio\detail\buffer_sequence_adapter.hpp(438)
cppserver-tests.exe!asio::detail::win_iocp_socket_recv_op<asio::mutable_buffers_1,asio::ssl::detail::io_op<asio::basic_stream_socket<asio::ip::tcp,asio::any_io_executor>,asio::ssl::detail::shutdown_op,CppServer::Asio::AllocateHandler<``CppServer::Asio::SSLClient::DisconnectInternalAsync'::`2'::<lambda_1>::operator()'::`2'::<lambda_1>>>,asio::any_io_executor>::do_complete(void * owner, asio::detail::win_iocp_operation * base, const std::error_code & result_ec, unsigned __int64 bytes_transferred) Line 83
at CppServer\modules\asio\asio\include\asio\detail\win_iocp_socket_recv_op.hpp(83)
cppserver-tests.exe!asio::detail::win_iocp_operation::complete(void * owner, const std::error_code & ec, unsigned __int64 bytes_transferred) Line 47
at CppServer\modules\asio\asio\include\asio\detail\win_iocp_operation.hpp(47)
cppserver-tests.exe!asio::detail::win_iocp_io_context::do_one(unsigned long msec, asio::detail::win_iocp_thread_info & this_thread, std::error_code & ec) Line 475
at CppServer\modules\asio\asio\include\asio\detail\impl\win_iocp_io_context.ipp(475)
cppserver-tests.exe!asio::detail::win_iocp_io_context::run(std::error_code & ec) Line 205
at CppServer\modules\asio\asio\include\asio\detail\impl\win_iocp_io_context.ipp(205)
cppserver-tests.exe!asio::io_context::run() Line 63
at CppServer\modules\asio\asio\include\asio\impl\io_context.ipp(63)
cppserver-tests.exe!CppServer::Asio::Service::ServiceThread(const std::shared_ptr<CppServer::Asio::Service> & service, const std::shared_ptr<asio::io_context> & io_service) Line 192
at CppServer\source\server\asio\service.cpp(192)
cppserver-tests.exe!`CppServer::Asio::Service::Start'::`8'::<lambda_2>::operator()() Line 96
at CppServer\source\server\asio\service.cpp(96)
cppserver-tests.exe!`CppCommon::Thread::Start<`CppServer::Asio::Service::Start'::`8'::<lambda_2>>'::`2'::<lambda_1>::operator()() Line 54
at CppServer\modules\CppCommon\include\threads\thread.inl(54)
[External Code]
When compiling the library and running the tests, I built all 4 variations (3 Release and 1 Debug). All 3 of the Release builds had 100% tests passed.
On the Debug build, the "SSL server random test" crashed when the case to reconnect a random client was hit, with this call stack: