My code is almost identical to the basic C++ tutorial 
<https://grpc.io/docs/languages/cpp/basics/>, but for server side 
streaming, not client, and calling the blocking/synchronous versions, not 
the Async versions. The exception (below) is occurring in 
ClientReader::Read(). Initially, the size of ClientRpcInfo.interceptors_ is 
0. However, in client_context.h, line 481, the entire rpc_info_ object is 
overwritten, and at that point the size becomes 3952075555, obviously 
incorrect. At this point, the logic ends up in the 
grpc::experimental::ClientRpcInfo::RunInterceptor() and with incorrect data 
generates an "Exception 0xc0000005 encountered at address 0x7ff7dd2f5961: 
Access violation reading location 0xffffffffffffffff".

I have reread the tutorial several times, and do not think I am missing any 
steps. I create a channel, then the stub, then connect to the server. That 
and a non-streaming call works, but reading from the stream on the client 
dies. What might I be doing wrong? The gRPC version being used is pulled in 
using vcpkg under Windows. What is might be missing? Also, I do not need 
any experimental features, but have not found a way to exclude that code. 
Thank you.

grpc::experimental::ClientRpcInfo::RunInterceptor(grpc::experimental::InterceptorBatchMethods
 
*, unsigned long long) client_interceptor.h:141
grpc::internal::InterceptorBatchMethodsImpl::RunClientInterceptors() 
interceptor_common.h:288
grpc::internal::InterceptorBatchMethodsImpl::RunInterceptors() 
interceptor_common.h:246
grpc::internal::CallOpSet::RunInterceptors() call_op_set.h:1013
grpc::internal::CallOpSet::FillOps(grpc::internal::Call *) call_op_set.h:900
grpc::Channel::PerformOpsOnCall(grpc::internal::CallOpSetInterface *, 
grpc::internal::Call *) channel_cc.cc:165
grpc::internal::Call::PerformOps(grpc::internal::CallOpSetInterface *) 
call.h:68
grpc::ClientReader::Read(browser::grpc::CommMgrProcessedEvent *) 
sync_stream.h:216
CommMgr::CommManager::GrpcEventProcessor() CommManager.cpp:300
std::invoke<…>(void (CommMgr::CommManager::*&)(), CommMgr::CommManager *&) 
type_traits:1601
std::_Invoker_ret::_Call<…>(void (CommMgr::CommManager::*&)(), 
CommMgr::CommManager *&) functional:763
std::_Call_binder<std::_Unforced,0,void (__cdecl 
CommMgr::CommManager::*)(void),std::tuple<CommMgr::CommManager 
*>,std::tuple<> >(_Invoker_ret<std::_Unforced,0>,integer_sequence<unsigned 
__int64,0>,void 
(CommMgr::CommManager::*&)(),std::tuple<CommMgr::CommManager *> 
&,std::tuple<> &&) functional:1414
std::_Binder::operator()<…>() functional:1452
boost::detail::thread_data::run() thread.hpp:120
boost::`anonymous namespace'::thread_start_function(void *) thread.cpp:296

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/61e19190-20e2-4dc7-b4f7-f938823d80a3n%40googlegroups.com.

Reply via email to