The problem is solved. The issue was because of overloaded target name
mismatch with the rpc method authority. Thanks!
On Wednesday, September 19, 2018 at 1:40:55 PM UTC-4, Yang Gao wrote:
>
> is your client and server using the same proto? Can you collect the client
> side trace as well? From the server log it does not seem like using ssl is
> related.
>
>
> On Thursday, September 13, 2018 at 5:44:22 PM UTC-7, solomon lifshits
> wrote:
>>
>> Thank you for reply!
>> No, the error message is empty. I patched the grpc code and put unique
>> error messages in all the places where UNIMPLEMENTED status was returned.
>> What I figured out is that it was a completion tag of type
>> UnimplementedAsyncRequest that is placed on server cq(
>> src/cpp/server/server_cc.cc:line 557) on startup and is apparently not
>> supposed to be picked up by Next method unless something goes wrong(this is
>> my understanding of grpc code). When 'FinalizeResults' for this tag is
>> called it allocates a tag of type
>>
>> UnimplementedAsyncResponse which in turn calls UnknownMethodHandler::FillOps
>> that issues the abovementioned status
>>
>> (include/grpcpp/impl/codegen/method_handler_impl.h) :
>>
>>
>> class UnknownMethodHandler : public MethodHandler {
>>
>> public:
>>
>> template <class T>
>>
>> static void FillOps(ServerContext* context, T* ops) {
>>
>> Status status(StatusCode::UNIMPLEMENTED, "");
>>
>> if (!context->sent_initial_metadata_) {
>>
>> ops->SendInitialMetadata(context->initial_metadata_,
>>
>> context->initial_metadata_flags());
>>
>> if (context->compression_level_set()) {
>>
>> ops->set_compression_level(context->compression_level());
>>
>> }
>>
>> context->sent_initial_metadata_ = true;
>>
>> }
>>
>> ops->ServerSendStatus(context->trailing_metadata_, status);
>>
>> }.
>>
>>
>>
>>
>>
>>
>> On Thursday, September 13, 2018 at 6:36:30 PM UTC-4, Carl Mastrangelo
>> wrote:
>>>
>>> Is there an error message provided with Unimplemented? Usually that
>>> error code is for calling a method that the server doesn't know about.
>>>
>>> On Thursday, September 13, 2018 at 11:02:34 AM UTC-7, solomon lifshits
>>> wrote:
>>>>
>>>> Unable to connect to grpc server using SSL credentials, while
>>>> connection without works ok.
>>>>
>>>>
>>>> Status 12(unimplemented) is returned.
>>>>
>>>>
>>>> *Client connection code:*
>>>>
>>>>
>>>> std::string grpc_host(/*m_sIP*/m_sDestination + ":" +
>>>> std::to_string(Config::config().grpc_port));
>>>>
>>>> std::string grpc_ip(m_sIP + ":" +
>>>> std::to_string(Config::config().grpc_port));
>>>>
>>>> grpc::ChannelArguments channelArgs;
>>>>
>>>> grpc::SslCredentialsOptions sslOpts;
>>>>
>>>> utils::getFileContent(Config::config().ssl.chain_cert_file_path,
>>>> sslOpts.pem_root_certs);
>>>>
>>>> utils::getFileContent(Config::config().ssl.key_file_path,
>>>> sslOpts.pem_private_key);
>>>>
>>>> utils::getFileContent(Config::config().ssl.cert_file_path,
>>>> sslOpts.pem_cert_chain);
>>>>
>>>>
>>>>
>>>> m_pStub = ClientServer::NewStub(grpc::CreateCustomChannel(grpc_ip,
>>>> grpc::SslCredentials(sslOpts), channelArgs));
>>>>
>>>> m_pStub->AsyncStartLogRetrieval(&calldata->context, lctx->header(),
>>>> m_Poller.cq());
>>>>
>>>>
>>>>
>>>> *Server connection code:*
>>>>
>>>> grpc::SslServerCredentialsOptions
>>>> sslOpts(GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE);
>>>>
>>>> std::string certificate;
>>>>
>>>> std::string chaincert;
>>>>
>>>> std::string key;
>>>>
>>>> std::string rootca;
>>>>
>>>> utils::getFileContent(config.Certificate(),certificate)
>>>>
>>>> utils::getFileContent(config.ChainCert(), chaincert);
>>>>
>>>> utils::getFileContent(config.PrivateKey(), key);
>>>>
>>>> utils::getFileContent(config.RootCA(), rootca);
>>>>
>>>>
>>>>
>>>> LOGINFO("successfully load TLS secrets");
>>>>
>>>> grpc::SslServerCredentialsOptions::PemKeyCertPair kcp
>>>> = { key, certificate };
>>>>
>>>> sslOpts.pem_root_certs = rootca;
>>>>
>>>> sslOpts.pem_key_cert_pairs.push_back ( kcp );
>>>>
>>>> std::shared_ptr<grpc::ServerCredentials> serverCred;
>>>>
>>>> if (m_conf->EnableTLS() == true)
>>>>
>>>> {
>>>>
>>>> serverCred = grpc::SslServerCredentials(sslOpts);
>>>>
>>>> }
>>>>
>>>> else
>>>>
>>>> {
>>>>
>>>> serverCred = grpc::InsecureServerCredentials();
>>>>
>>>> }
>>>>
>>>>
>>>> builder.AddListeningPort(m_serveraddress, serverCred);
>>>>
>>>> builder.AddListeningPort(m_serveraddress_ss, serverCred);
>>>>
>>>>
>>>> builder.RegisterService(m_serveraddress, &m_service);
>>>>
>>>> builder.RegisterService(m_serveraddress_ss, &m_service_ss);
>>>>
>>>>
>>>> m_Cq = builder.AddCompletionQueue();
>>>>
>>>> m_server = builder.BuildAndStart();
>>>>
>>>>
>>>> m_server->GrpcService().RequestStartLogRetrieval(&m_ctx,
>>>>
>>>> &m_logHeader,
>>>>
>>>> &m_responder,
>>>>
>>>> m_Cq.get(),
>>>>
>>>> m_Cq.get(),
>>>>
>>>> this);
>>>>
>>>>
>>>>
>>>>
>>>> *grpc log server side*
>>>>
>>>>
>>>>
>>>>
>>>> 1536861059.980 I bzs.cc:141: main():successfully load TLS secrets
>>>> 1536861059.980 I bzs.cc:142: main():TEST ONLY: cert = 1736 key= 1708
>>>> rootca= 2701
>>>> D0913 17:50:59.981257225 10521 ev_posix.cc:142] Using
>>>> polling engine: epollex
>>>> D0913 17:50:59.981354852 10521 dns_resolver.cc:331] Using
>>>> native dns resolver
>>>> I0913 17:50:59.981398500 10521 init.cc:155]
>>>> grpc_init(void)
>>>> I0913 17:50:59.981423808 10521 completion_queue.cc:433]
>>>> grpc_completion_queue_create_internal(completion_type=0, polling_type=0)
>>>> I0913 17:50:59.981442286 10521 init.cc:155]
>>>> grpc_init(void)
>>>> I0913 17:50:59.981473600 10521 server.cc:944]
>>>> grpc_server_create(0xffe70c24, (nil))
>>>> I0913 17:50:59.981486846 10521 server.cc:930]
>>>> grpc_server_register_completion_queue(server=0x89ebbc8, cq=0x89eb998,
>>>> reserved=(nil))
>>>> I0913 17:50:59.981499676 10521 server.cc:978]
>>>> grpc_server_register_method(server=0x89ebbc8,
>>>> method=/banzai.ClientServer/StartLogRetrieval, host=198.18.87.44:50051,
>>>> flags=0x00000000)
>>>> I0913 17:50:59.981511620 10521 server.cc:978]
>>>> grpc_server_register_method(server=0x89ebbc8,
>>>> method=/banzai.ClientServer/SendBlock, host=198.18.87.44:50051,
>>>> flags=0x00000000)
>>>> I0913 17:50:59.981529888 10521 server.cc:978]
>>>> grpc_server_register_method(server=0x89ebbc8,
>>>> method=/banzai.ServerServer/GetChunks, host=198.18.87.44:50052,
>>>> flags=0x00000000)
>>>> I0913 17:50:59.981542015 10521 server.cc:978]
>>>> grpc_server_register_method(server=0x89ebbc8,
>>>> method=/banzai.ServerServer/GetChunkMetadata, host=198.18.87.44:50052,
>>>> flags=0x00000000)
>>>> I0913 17:50:59.981561414 10521 server_secure_chttp2.cc:50]
>>>> grpc_server_add_secure_http2_port(server=0x89ebbc8,
>>>> addr=198.18.87.44:50051, creds=0x89e95e0)
>>>> I0913 17:50:59.983945963 10521 server_secure_chttp2.cc:50]
>>>> grpc_server_add_secure_http2_port(server=0x89ebbc8,
>>>> addr=198.18.87.44:50052, creds=0x89e95e0)
>>>> I0913 17:50:59.985015540 10521 server.cc:1024]
>>>> grpc_server_start(server=0x89ebbc8)
>>>> I0913 17:50:59.985044734 10521 call_details.cc:31]
>>>> grpc_call_details_init(cd=0x8a118f0)
>>>> I0913 17:50:59.985057268 10521 server.cc:1336]
>>>> grpc_server_request_call(server=0x89ebbc8, call=0x8a118ec,
>>>> details=0x8a118f0, initial_metadata=0x8a11958,
>>>> cq_bound_to_call=0x89eb998, cq_for_notification=0x89eb998,
>>>> tag=0x8a118d0)
>>>> 1536861059.985 I server.cc:60: Run():Server listening on:
>>>> 198.18.87.44:50051
>>>> I0913 17:50:59.985269613 10535 server.cc:1385]
>>>> grpc_server_request_registered_call(server=0x89ebbc8, rmp=0x89eedb8,
>>>> call=0xf38006dc, deadline=0xf3800484, initial_metadata=0xf38004a8,
>>>> optional_payload=0xf3800700, cq_bound_to_call=0x89eb998,
>>>> cq_for_notification=0x89eb998, tag=0xf38006c0)
>>>> 1536861059I0913 17:50:59.985299807 10534 server.cc:1385]
>>>> grpc_server_request_registered_call(server=0x89ebbc8, rmp=0x89ebe68,
>>>> call=0xf3a00684, deadline=0xf3a00484, initial_metadata=0xf3a004a8,
>>>> optional_payload=0xf3a006a8, cq_bound_to_call=0x89eb998,
>>>> cq_for_notification=0x89eb998, tag=0xf3a00668)
>>>> I0913 17:50:59.985328278 10534 completion_queue.cc:853]
>>>> grpc_completion_queue_next(cq=0x89eb998, deadline=gpr_timespec { tv_sec:
>>>> 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>>>> .985 I server.cc:85: HandleBzcRpcs():handle rpc call from client
>>>> I0913 17:50:59.985385393 10535 completion_queue.cc:853]
>>>> grpc_completion_queue_next(cq=0x89eb998, deadline=gpr_timespec { tv_sec:
>>>> 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>>>> I0913 17:52:29.390936255 10534 security_context.cc:295]
>>>> grpc_auth_context_add_cstring_property(ctx=0xf3a00748,
>>>> name=transport_security_type, value=ssl)
>>>> I0913 17:52:29.390979766 10534 security_context.cc:279]
>>>> grpc_auth_context_add_property(ctx=0xf3a00748, name=ssl_session_reused,
>>>> value= false, value_length=6)
>>>> I0913 17:52:29.391512134 10534 call.cc:1552] ops[0]:
>>>> RECV_INITIAL_METADATA ptr=0xf3a17d54
>>>> I0913 17:52:29.391560744 10534 completion_queue.cc:632]
>>>> cq_end_op_for_next(cq=0x89eb998, tag=0x8a118d0, error="No Error",
>>>> done=0x837f8d0, done_arg=0x8a11d98, storage=0x8a11db4)
>>>> I0913 17:52:29.391580272 10534 completion_queue.cc:953]
>>>> RETURN_EVENT[0x89eb998]: OP_COMPLETE: tag:0x8a118d0 OK
>>>> I0913 17:52:29.391595925 10534 call.cc:1926]
>>>> grpc_call_start_batch(call=0xf3a177a0, ops=0xf4bfec7c, nops=1,
>>>> tag=0xf3a16c50, reserved=(nil))
>>>> I0913 17:52:29.391607536 10534 call.cc:1552] ops[0]:
>>>> RECV_CLOSE_ON_SERVER cancelled=0xf3a16c7c
>>>> I0913 17:52:29.391621173 10534 call_details.cc:31]
>>>> grpc_call_details_init(cd=0xf3a0b510)
>>>> I0913 17:52:29.391634021 10534 server.cc:1336]
>>>> grpc_server_request_call(server=0x89ebbc8, call=0xf3a0b50c,
>>>> details=0xf3a0b510, initial_metadata=0xf3a0b578,
>>>> cq_bound_to_call=0x89eb998, cq_for_notification=0x89eb998,
>>>> tag=0xf3a0b4f0)
>>>> I0913 17:52:29.391651465 10534 call.cc:1926]
>>>> grpc_call_start_batch(call=0xf3a177a0, ops=0xf4bfebdc, nops=2,
>>>> tag=0xf3a16c88, reserved=(nil))
>>>> I0913 17:52:29.391662933 10534 call.cc:1552] ops[0]:
>>>> SEND_INITIAL_METADATA(nil)
>>>> I0913 17:52:29.391674168 10534 call.cc:1552] ops[1]:
>>>> SEND_STATUS_FROM_SERVER status=12 details=(null)(nil)
>>>> I0913 17:52:29.391698494 10534 completion_queue.cc:632]
>>>> cq_end_op_for_next(cq=0x89eb998, tag=0xf3a16c50, error="No Error",
>>>> done=0x8378fd0, done_arg=0xf3a18990, storage=0xf3a18994)
>>>> I0913 17:52:29.391729534 10534 completion_queue.cc:632]
>>>> cq_end_op_for_next(cq=0x89eb998, tag=0xf3a16c88, error="No Error",
>>>> done=0x8378fd0, done_arg=0xf3a18a10, storage=0xf3a18a14)
>>>> I0913 17:52:29.391743776 10534 completion_queue.cc:853]
>>>> grpc_completion_queue_next(cq=0x89eb998, deadline=gpr_timespec { tv_sec:
>>>> 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>>>> I0913 17:52:29.391763139 10534 completion_queue.cc:953]
>>>> RETURN_EVENT[0x89eb998]: OP_COMPLETE: tag:0xf3a16c88 OK
>>>> I0913 17:52:29.391774396 10534 call.cc:568]
>>>> grpc_call_unref(c=0xf3a177a0)
>>>> I0913 17:52:29.391748870 10535 completion_queue.cc:953]
>>>> RETURN_EVENT[0x89eb998]: OP_COMPLETE: tag:0xf3a16c50 OK
>>>> I0913 17:52:29.391785787 10534 metadata_array.cc:34]
>>>> grpc_metadata_array_destroy(array=0xf3a17d54)
>>>> I0913 17:52:29.391853468 10534 metadata_array.cc:34]
>>>> grpc_metadata_array_destroy(array=0x8a11958)
>>>> I0913 17:52:29.391833145 10535 completion_queue.cc:853]
>>>> grpc_completion_queue_next(cq=0x89eb998, deadline=gpr_timespec { tv_sec:
>>>> 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>>>> I0913 17:52:29.391878503 10534 completion_queue.cc:853]
>>>> grpc_completion_queue_next(cq=0x89eb998, deadline=gpr_timespec { tv_sec:
>>>>
>>>> 9223372036854775807, tv_nsec: 0, clock_type: 1 }, reserved=(nil))
>>>>
>>>>
>>>>
>>>>
>>>> Any thoughts on potential cause?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
--
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/49ca34b2-95ca-4ef9-b98d-dcc4f517420b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.