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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to