From bdc76ab37b4d61a849f2f9f9742a5004864ce984 Mon Sep 17 00:00:00 2001 From: Yuxuan Li Date: Fri, 3 Mar 2017 13:59:30 -0800 Subject: [PATCH] bug fix --- include/grpc++/impl/codegen/async_stream.h | 4 ++-- include/grpc++/impl/codegen/client_context.h | 4 +++- include/grpc++/impl/codegen/sync_stream.h | 4 ++-- src/cpp/client/client_context.cc | 4 ---- test/cpp/end2end/async_end2end_test.cc | 6 +++--- test/cpp/end2end/end2end_test.cc | 6 +++--- test/cpp/end2end/mock_test.cc | 2 +- test/cpp/microbenchmarks/bm_fullstack.cc | 4 ++-- third_party/protobuf | 2 +- 9 files changed, 17 insertions(+), 19 deletions(-) diff --git a/include/grpc++/impl/codegen/async_stream.h b/include/grpc++/impl/codegen/async_stream.h index f21139618f5..a2013415902 100644 --- a/include/grpc++/impl/codegen/async_stream.h +++ b/include/grpc++/impl/codegen/async_stream.h @@ -244,7 +244,7 @@ class ClientAsyncWriter final : public ClientAsyncWriterInterface { call_.PerformOps(&write_ops_); } - void Write(const W& msg, WriteOptions options, void* tag) { + void Write(const W& msg, WriteOptions options, void* tag) override { write_ops_.set_output_tag(tag); if (options.is_last_message()) { options.set_buffer_hint(); @@ -341,7 +341,7 @@ class ClientAsyncReaderWriter final call_.PerformOps(&write_ops_); } - void Write(const W& msg, WriteOptions options, void* tag) { + void Write(const W& msg, WriteOptions options, void* tag) override { write_ops_.set_output_tag(tag); if (options.is_last_message()) { options.set_buffer_hint(); diff --git a/include/grpc++/impl/codegen/client_context.h b/include/grpc++/impl/codegen/client_context.h index cc48b9c3f57..3c50e6ba9d4 100644 --- a/include/grpc++/impl/codegen/client_context.h +++ b/include/grpc++/impl/codegen/client_context.h @@ -288,7 +288,9 @@ class ClientContext { /// /// \param corked The flag indicating whether the initial metadata is to be /// corked or not. - void sent_initial_metadata_corked(bool corked); + void set_initial_metadata_corked(bool corked) { + initial_metadata_corked_ = corked; + } /// Return the peer uri in a string. /// diff --git a/include/grpc++/impl/codegen/sync_stream.h b/include/grpc++/impl/codegen/sync_stream.h index 859c3d0b905..ae3b8e441d1 100644 --- a/include/grpc++/impl/codegen/sync_stream.h +++ b/include/grpc++/impl/codegen/sync_stream.h @@ -262,7 +262,7 @@ class ClientWriter : public ClientWriterInterface { if (context_->initial_metadata_corked_) { ops.SendInitialMetadata(context_->send_initial_metadata_, context_->initial_metadata_flags()); - context_->sent_initial_metadata_corked(false); + context_->set_initial_metadata_corked(false); } if (!ops.SendMessage(msg, options).ok()) { return false; @@ -372,7 +372,7 @@ class ClientReaderWriter final : public ClientReaderWriterInterface { if (context_->initial_metadata_corked_) { ops.SendInitialMetadata(context_->send_initial_metadata_, context_->initial_metadata_flags()); - context_->sent_initial_metadata_corked(false); + context_->set_initial_metadata_corked(false); } if (!ops.SendMessage(msg, options).ok()) { return false; diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 96f97021cb7..3d884cf62e4 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -119,10 +119,6 @@ void ClientContext::set_compression_algorithm( AddMetadata(GRPC_COMPRESSION_REQUEST_ALGORITHM_MD_KEY, algorithm_name); } -void ClientContext::sent_initial_metadata_corked(bool corked) { - initial_metadata_corked_ = corked; -} - void ClientContext::TryCancel() { std::unique_lock lock(mu_); if (call_) { diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc index 47e803b948e..0b5215ef8e4 100644 --- a/test/cpp/end2end/async_end2end_test.cc +++ b/test/cpp/end2end/async_end2end_test.cc @@ -498,7 +498,7 @@ TEST_P(AsyncEnd2endTest, SimpleClientStreamingWithCoalescingApi) { ServerAsyncReader srv_stream(&srv_ctx); send_request.set_message(GetParam().message_content); - cli_ctx.sent_initial_metadata_corked(true); + cli_ctx.set_initial_metadata_corked(true); // tag:1 never comes up since no op is performed std::unique_ptr> cli_stream( stub_->AsyncRequestStream(&cli_ctx, &recv_response, cq_.get(), tag(1))); @@ -794,7 +794,7 @@ TEST_P(AsyncEnd2endTest, SimpleBidiStreamingWithCoalescingApiWAF) { ServerAsyncReaderWriter srv_stream(&srv_ctx); send_request.set_message(GetParam().message_content); - cli_ctx.sent_initial_metadata_corked(true); + cli_ctx.set_initial_metadata_corked(true); std::unique_ptr> cli_stream(stub_->AsyncBidiStream(&cli_ctx, cq_.get(), tag(1))); @@ -862,7 +862,7 @@ TEST_P(AsyncEnd2endTest, SimpleBidiStreamingWithCoalescingApiWL) { ServerAsyncReaderWriter srv_stream(&srv_ctx); send_request.set_message(GetParam().message_content); - cli_ctx.sent_initial_metadata_corked(true); + cli_ctx.set_initial_metadata_corked(true); std::unique_ptr> cli_stream(stub_->AsyncBidiStream(&cli_ctx, cq_.get(), tag(1))); diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index 222ab1ae836..d3a83b188f9 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -708,7 +708,7 @@ TEST_P(End2endTest, RequestStreamOneRequestWithCoalescingApi) { EchoResponse response; ClientContext context; - context.sent_initial_metadata_corked(true); + context.set_initial_metadata_corked(true); auto stream = stub_->RequestStream(&context, &response); request.set_message("hello"); stream->WriteLast(request, WriteOptions()); @@ -739,7 +739,7 @@ TEST_P(End2endTest, RequestStreamTwoRequestsWithCoalescingApi) { EchoResponse response; ClientContext context; - context.sent_initial_metadata_corked(true); + context.set_initial_metadata_corked(true); auto stream = stub_->RequestStream(&context, &response); request.set_message("hello"); EXPECT_TRUE(stream->Write(request)); @@ -828,7 +828,7 @@ TEST_P(End2endTest, BidiStreamWithCoalescingApi) { EchoResponse response; ClientContext context; context.AddMetadata(kServerFinishAfterNReads, "3"); - context.sent_initial_metadata_corked(true); + context.set_initial_metadata_corked(true); grpc::string msg("hello"); auto stream = stub_->BidiStream(&context); diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc index d6664da5a0f..fdb2732e503 100644 --- a/test/cpp/end2end/mock_test.cc +++ b/test/cpp/end2end/mock_test.cc @@ -89,7 +89,7 @@ class MockClientReaderWriter final return true; } - bool Write(const EchoRequest& msg, const WriteOptions& options) override { + bool Write(const EchoRequest& msg, WriteOptions options) override { gpr_log(GPR_INFO, "mock recv msg %s", msg.message().c_str()); last_message_ = msg.message(); return true; diff --git a/test/cpp/microbenchmarks/bm_fullstack.cc b/test/cpp/microbenchmarks/bm_fullstack.cc index 77ea443f84d..b1f3ed3597c 100644 --- a/test/cpp/microbenchmarks/bm_fullstack.cc +++ b/test/cpp/microbenchmarks/bm_fullstack.cc @@ -758,7 +758,7 @@ static void BM_StreamingPingPongMsgs(benchmark::State& state) { // Repeatedly makes Streaming Bidi calls (exchanging a configurable number of // messages in each call) in a loop on a single channel. Different from // BM_StreamingPingPong we are using stream coalescing api, e.g. WriteLast, -// WriteAndFinish, sent_initial_metadata_corked. These apis aim at saving +// WriteAndFinish, set_initial_metadata_corked. These apis aim at saving // sendmsg syscalls for streaming by coalescing 1. initial metadata with first // message; 2. final streaming message with trailing metadata. // @@ -803,7 +803,7 @@ static void BM_StreamingPingPongWithCoalescingApi(benchmark::State& state) { ClientContext cli_ctx; ClientContextMutator cli_ctx_mut(&cli_ctx); - cli_ctx.sent_initial_metadata_corked(true); + cli_ctx.set_initial_metadata_corked(true); // tag:1 here will never comes up, since we are not performing any op due // to initial metadata coalescing. auto request_rw = stub->AsyncBidiStream(&cli_ctx, fixture->cq(), tag(1)); diff --git a/third_party/protobuf b/third_party/protobuf index 593e917c176..a428e420727 160000 --- a/third_party/protobuf +++ b/third_party/protobuf @@ -1 +1 @@ -Subproject commit 593e917c176b5bc5aafa57bf9f6030d749d91cd5 +Subproject commit a428e42072765993ff674fda72863c9f1aa2d268