pdxcodemonkey commented on pull request #798:
URL: https://github.com/apache/geode-native/pull/798#issuecomment-829648077
After a little debugging on Windows, we see the code throwing from this block
{code}
if (bytes_read == 0) {
auto elapsedTime = std::chrono::duration<double, std::micro>(
std::chrono::system_clock::now() - beforeReadPoint);
if (elapsedTime < timeout) {
LOGDEBUG("Throwing an IO exception");
socket_.cancel();
// Get the abort
io_context_.restart();
io_context_.run();
throw boost::system::system_error{boost::asio::error::broken_pipe};
}
{code}
in TcpConn::receive_nothrowiftimeout. Here's the callstack:
pivotal-gemfire.dll!apache::geode::client::TcpConn::receive(char * buff,
unsigned __int64 len, std::chrono::duration<__int64,std::ratio<1,1000> >
timeout, bool throwTimeoutException) Line 233
at c:\users\bblake\src\geode-native\cppcache\src\tcpconn.cpp(233)
pivotal-gemfire.dll!apache::geode::client::TcpConn::receive(char * buff,
unsigned __int64 len, std::chrono::duration<__int64,std::ratio<1,1000> >
timeout) Line 186
at c:\users\bblake\src\geode-native\cppcache\src\tcpconn.cpp(186)
pivotal-gemfire.dll!apache::geode::client::TcrConnection::receiveData(char *
buffer, unsigned __int64 length,
std::chrono::duration<__int64,std::ratio<1,1000000> > timeout) Line 495
at c:\users\bblake\src\geode-native\cppcache\src\tcrconnection.cpp(495)
pivotal-gemfire.dll!apache::geode::client::TcrConnection::readMessage(unsigned
__int64 * recvLen, std::chrono::duration<__int64,std::ratio<1,1000000> >
receiveTimeoutSec, bool doHeaderTimeoutRetries,
apache::geode::client::ConnErrType * opErr, bool isNotificationMessage, int
request) Line 650
at c:\users\bblake\src\geode-native\cppcache\src\tcrconnection.cpp(650)
pivotal-gemfire.dll!apache::geode::client::TcrConnection::receive(unsigned
__int64 * recvLen, apache::geode::client::ConnErrType * opErr,
std::chrono::duration<__int64,std::ratio<1,1000000> > receiveTimeoutSec) Line
634
at c:\users\bblake\src\geode-native\cppcache\src\tcrconnection.cpp(634)
pivotal-gemfire.dll!apache::geode::client::TcrEndpoint::receiveNotification(std::atomic<bool>
& isRunning) Line 556
at c:\users\bblake\src\geode-native\cppcache\src\tcrendpoint.cpp(556)
pivotal-gemfire.dll!apache::geode::client::Task<apache::geode::client::TcrEndpoint>::svc()
Line 79
at c:\users\bblake\src\geode-native\cppcache\src\task.hpp(79)
pivotal-gemfire.dll!std::_Invoker_pmf_pointer::_Call<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>(void(apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)()
_Pmf, apache::geode::client::Task<apache::geode::client::TcrEndpoint> * &&
_Arg1)
pivotal-gemfire.dll!std::invoke<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>(void(apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)()
&& _Obj, apache::geode::client::Task<apache::geode::client::TcrEndpoint> * &&
<_Args_0>)
pivotal-gemfire.dll!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>,std::default_delete<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*> > > >::_Execute<0,1>(std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*> & _Tup, std::integer_sequence<unsigned __int64,0,1> __formal) Line 239
at c:\program files (x86)\microsoft visual
studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread(239)
pivotal-gemfire.dll!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>,std::default_delete<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*> > > >::_Run(std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>,std::default_delete<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*> > > > * _Ln) Line 245
at c:\program files (x86)\microsoft visual
studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread(245)
pivotal-gemfire.dll!std::_LaunchPad<std::unique_ptr<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*>,std::default_delete<std::tuple<void (__cdecl
apache::geode::client::Task<apache::geode::client::TcrEndpoint>::*)(void),apache::geode::client::Task<apache::geode::client::TcrEndpoint>
*> > > >::_Go() Line 231
at c:\program files (x86)\microsoft visual
studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread(231)
pivotal-gemfire.dll!std::_Pad::_Call_func(void * _Data) Line 209
at c:\program files (x86)\microsoft visual
studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread(209)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]