The first thing I would check is whether server_ == nullptr after BuildAndStart.
On Mon, Sep 10, 2018 at 3:22 PM Alistair Lowe <[email protected]> wrote: > Hi guys, > > I'm trying to implement my own gRPC 1.14.2 C++ async server loosely > following the hello world examples, however I receive a segfault when > attempting to make an asynchronous request as per the below stack trace: > > grpc::ServerInterface::RegisteredAsyncRequest::IssueRequest(void*, > grpc_byte_buffer**, grpc::ServerCompletionQueue*) (Unknown Source:0) > grpc::ServerInterface::PayloadAsyncRequest<OpenIoTServer::EnrollRequest>::PayloadAsyncRequest(grpc::ServerInterface::PayloadAsyncRequest<OpenIoTServer::EnrollRequest> > * const this, void * registered_method, grpc::ServerInterface * server, > grpc::ServerContext * context, > grpc::internal::ServerAsyncStreamingInterface * stream, > grpc::CompletionQueue * call_cq, grpc::ServerCompletionQueue * > notification_cq, void * tag, OpenIoTServer::EnrollRequest * request) > (/usr/local/include/grpcpp/impl/codegen/server_interface.h:212) > grpc::ServerInterface::RequestAsyncCall<OpenIoTServer::EnrollRequest>(grpc::ServerInterface > * const this, grpc::internal::RpcServiceMethod * method, > grpc::ServerContext * context, > grpc::internal::ServerAsyncStreamingInterface * stream, > grpc::CompletionQueue * call_cq, grpc::ServerCompletionQueue * > notification_cq, void * tag, OpenIoTServer::EnrollRequest * message) > (/usr/local/include/grpcpp/impl/codegen/server_interface.h:275) > grpc::Service::RequestAsyncUnary<OpenIoTServer::EnrollRequest>(grpc::Service > * const this, int index, grpc::ServerContext * context, > OpenIoTServer::EnrollRequest * request, > grpc::internal::ServerAsyncStreamingInterface * stream, > grpc::CompletionQueue * call_cq, grpc::ServerCompletionQueue * > notification_cq, void * tag) > (/usr/local/include/grpcpp/impl/codegen/service_type.h:96) > OpenIoTServer::Device::WithAsyncMethod_Enroll<OpenIoTServer::Device::Service>::RequestEnroll(OpenIoTServer::Device::WithAsyncMethod_Enroll<OpenIoTServer::Device::Service> > * const this, grpc::ServerContext * context, OpenIoTServer::EnrollRequest * > request, grpc::ServerAsyncResponseWriter<OpenIoTServer::EnrollResponse> * > response, grpc::CompletionQueue * new_call_cq, grpc::ServerCompletionQueue > * notification_cq, void * tag) > (/home/developer/deployment-management-controller/device.grpc.pb.h:170) > main() (/home/developer/deployment-management-controller/main.cpp:81) > > I've simplified my code as much as possible and the problem is still > occurring: > #include "device.grpc.pb.h" > #include <string> > #include <boost/fiber/algo/algorithm.hpp> > #include <grpcpp/grpcpp.h> > #include <boost/thread.hpp> > #include <boost/fiber/scheduler.hpp> > > using grpc::ServerAsyncResponseWriter; > using grpc::ServerBuilder; > using grpc::ServerContext; > using grpc::ServerCompletionQueue; > using grpc::Status; > > int main( int, char** ) > { > std::unique_ptr<ServerCompletionQueue> cq_; > OpenIoTServer::Device::AsyncService service_; > std::unique_ptr<Server> server_; > > ServerBuilder serverBuilder; > serverBuilder.AddListeningPort( "127.0.0.1:1000", > InsecureServerCredentials() ); > serverBuilder.RegisterService( &service_ ); > > cq_ = serverBuilder.AddCompletionQueue(); > server_ = serverBuilder.BuildAndStart(); > ServerContext ctx_; > EnrollRequest request_; > EnrollResponse reply_; > ServerAsyncResponseWriter<EnrollResponse> responder_(&ctx_); > > service_.RequestEnroll(&ctx_, &request_, &responder_, cq_.get(), cq_.get > (),(void*)1); // SEGFAULT WITHIN HERE > } > > My protobuf is generated from the following using protoc version 3.5.1: > syntax = "proto3"; > package OpenIoTServer; > > service Device > { > rpc Enroll(EnrollRequest) returns (EnrollResponse); > } > > message EnrollRequest > { > bytes device_id = 1; > bytes user_id = 2; > } > > message EnrollResponse > { > bool success = 1; > } > > Any suggestions would be very-much appreciated! > > Many thanks > > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at https://groups.google.com/group/grpc-io. > To view this discussion on the web visit > https://groups.google.com/d/msgid/grpc-io/6cea7726-cc2b-4ea0-bdcf-1a38f6301e43%40googlegroups.com > <https://groups.google.com/d/msgid/grpc-io/6cea7726-cc2b-4ea0-bdcf-1a38f6301e43%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CAB1HKY5BA4sL-a-jWaoHMM73gkC1z0d47qcExib368TVc_pG5Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
smime.p7s
Description: S/MIME Cryptographic Signature
