Merge branch 'master' into all_build_changes_tjagtap

pull/36578/head
tanvi-jagtap 11 months ago
commit bba460331a
  1. 9
      BUILD
  2. 8
      src/core/BUILD
  3. 19
      src/core/lib/gpr/android/log.cc
  4. 45
      src/core/lib/gpr/linux/log.cc
  5. 11
      src/core/lib/gpr/log.cc
  6. 42
      src/core/lib/gpr/posix/log.cc
  7. 43
      src/core/lib/gpr/windows/log.cc
  8. 2
      test/cpp/interop/BUILD
  9. 40
      test/cpp/interop/grpclb_fallback_test.cc
  10. 33
      test/cpp/interop/http2_client.cc

@ -1136,6 +1136,7 @@ grpc_cc_library(
"absl/functional:any_invocable",
"absl/hash",
"absl/log:check",
"absl/log:log",
"absl/memory",
"absl/meta:type_traits",
"absl/status",
@ -1645,6 +1646,7 @@ grpc_cc_library(
"absl/container:flat_hash_set",
"absl/functional:any_invocable",
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",
@ -2015,6 +2017,7 @@ grpc_cc_library(
"absl/functional:any_invocable",
"absl/functional:function_ref",
"absl/log:check",
"absl/log:log",
"absl/meta:type_traits",
"absl/status",
"absl/status:statusor",
@ -3673,6 +3676,7 @@ grpc_cc_library(
"absl/container:inlined_vector",
"absl/functional:any_invocable",
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",
@ -3996,6 +4000,7 @@ grpc_cc_library(
],
external_deps = [
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",
@ -4088,6 +4093,7 @@ grpc_cc_library(
],
external_deps = [
"absl/log:check",
"absl/log:log",
"absl/strings",
"@com_google_protobuf//upb:base",
"@com_google_protobuf//upb:mem",
@ -4210,6 +4216,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",
@ -4343,6 +4350,7 @@ grpc_cc_library(
"absl/base:core_headers",
"absl/cleanup",
"absl/log:check",
"absl/log:log",
"absl/memory",
"absl/status",
"absl/status:statusor",
@ -4720,6 +4728,7 @@ grpc_cc_library(
"absl/container:flat_hash_map",
"absl/hash",
"absl/log:check",
"absl/log:log",
"absl/meta:type_traits",
"absl/random",
"absl/random:bit_gen_ref",

@ -754,6 +754,7 @@ grpc_cc_library(
name = "join_state",
external_deps = [
"absl/log:check",
"absl/log:log",
],
language = "c++",
public_hdrs = [
@ -843,6 +844,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:check",
"absl/log:log",
"absl/strings",
],
language = "c++",
@ -4825,6 +4827,7 @@ grpc_cc_library(
"absl/container:inlined_vector",
"absl/functional:function_ref",
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",
@ -4942,6 +4945,7 @@ grpc_cc_library(
"absl/base:core_headers",
"absl/hash",
"absl/log:check",
"absl/log:log",
"absl/random",
"absl/status",
"absl/status:statusor",
@ -5644,6 +5648,7 @@ grpc_cc_library(
external_deps = [
"absl/algorithm:container",
"absl/log:check",
"absl/log:log",
"absl/random",
"absl/status",
"absl/status:statusor",
@ -5868,6 +5873,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:check",
"absl/log:log",
"absl/meta:type_traits",
"absl/random",
"absl/status",
@ -5938,6 +5944,7 @@ grpc_cc_library(
external_deps = [
"absl/base:core_headers",
"absl/log:check",
"absl/log:log",
"absl/meta:type_traits",
"absl/random",
"absl/status",
@ -6084,6 +6091,7 @@ grpc_cc_library(
"absl/base:core_headers",
"absl/functional:function_ref",
"absl/log:check",
"absl/log:log",
"absl/status",
"absl/status:statusor",
"absl/strings",

@ -57,23 +57,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
free(message);
}
void gpr_platform_log(gpr_log_func_args* args) {
const char* final_slash;
const char* display_file;
char* output = NULL;
final_slash = strrchr(args->file, '/');
if (final_slash == NULL)
display_file = args->file;
else
display_file = final_slash + 1;
asprintf(&output, "%s:%d] %s", display_file, args->line, args->message);
__android_log_write(severity_to_log_priority(args->severity), "GRPC", output);
// allocated by asprintf => use free, not gpr_free
free(output);
}
#endif // GPR_ANDROID

@ -47,10 +47,6 @@
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/examine_stack.h"
int gpr_should_log_stacktrace(gpr_log_severity severity);
static long sys_gettid(void) { return syscall(__NR_gettid); }
void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) {
// Avoid message construction if gpr_log_message won't log
@ -70,45 +66,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
free(message);
}
void gpr_platform_log(gpr_log_func_args* args) {
const char* final_slash;
const char* display_file;
char time_buffer[64];
time_t timer;
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
struct tm tm;
static thread_local long tid(0);
if (tid == 0) tid = sys_gettid();
timer = static_cast<time_t>(now.tv_sec);
final_slash = strrchr(args->file, '/');
if (final_slash == nullptr) {
display_file = args->file;
} else {
display_file = final_slash + 1;
}
if (!localtime_r(&timer, &tm)) {
strcpy(time_buffer, "error:localtime");
} else if (0 ==
strftime(time_buffer, sizeof(time_buffer), "%m%d %H:%M:%S", &tm)) {
strcpy(time_buffer, "error:strftime");
}
std::string prefix = absl::StrFormat(
"%s%s.%09" PRId32 " %7ld %s:%d]", gpr_log_severity_string(args->severity),
time_buffer, now.tv_nsec, tid, display_file, args->line);
absl::optional<std::string> stack_trace =
gpr_should_log_stacktrace(args->severity)
? grpc_core::GetCurrentStackTrace()
: absl::nullopt;
if (stack_trace) {
fprintf(stderr, "%-70s %s\n%s\n", prefix.c_str(), args->message,
stack_trace->c_str());
} else {
fprintf(stderr, "%-70s %s\n", prefix.c_str(), args->message);
}
}
#endif // GPR_LINUX_LOG

@ -77,10 +77,6 @@ int gpr_should_log(gpr_log_severity severity) {
}
void gpr_default_log(gpr_log_func_args* args) {
if (!grpc_core::ConfigVars::Get().AbslLogging()) {
gpr_platform_log(args);
return;
}
switch (args->severity) {
case GPR_LOG_SEVERITY_DEBUG:
// Log DEBUG messages as VLOG(2).
@ -99,13 +95,6 @@ void gpr_default_log(gpr_log_func_args* args) {
}
}
int gpr_should_log_stacktrace(gpr_log_severity severity) {
return static_cast<gpr_atm>(severity) >=
gpr_atm_no_barrier_load(&g_min_severity_to_print_stacktrace)
? 1
: 0;
}
void gpr_log_message(const char* file, int line, gpr_log_severity severity,
const char* message) {
if (gpr_should_log(severity) == 0) {

@ -38,10 +38,6 @@
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/examine_stack.h"
int gpr_should_log_stacktrace(gpr_log_severity severity);
static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) {
// Avoid message construction if gpr_log_message won't log
@ -70,42 +66,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
gpr_free(allocated);
}
void gpr_platform_log(gpr_log_func_args* args) {
const char* final_slash;
const char* display_file;
char time_buffer[64];
time_t timer;
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
struct tm tm;
timer = (time_t)now.tv_sec;
final_slash = strrchr(args->file, '/');
if (final_slash == nullptr)
display_file = args->file;
else
display_file = final_slash + 1;
if (!localtime_r(&timer, &tm)) {
strcpy(time_buffer, "error:localtime");
} else if (0 ==
strftime(time_buffer, sizeof(time_buffer), "%m%d %H:%M:%S", &tm)) {
strcpy(time_buffer, "error:strftime");
}
std::string prefix = absl::StrFormat(
"%s%s.%09d %7" PRIdPTR " %s:%d]", gpr_log_severity_string(args->severity),
time_buffer, (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
absl::optional<std::string> stack_trace =
gpr_should_log_stacktrace(args->severity)
? grpc_core::GetCurrentStackTrace()
: absl::nullopt;
if (stack_trace) {
fprintf(stderr, "%-70s %s\n%s\n", prefix.c_str(), args->message,
stack_trace->c_str());
} else {
fprintf(stderr, "%-70s %s\n", prefix.c_str(), args->message);
}
}
#endif // defined(GPR_POSIX_LOG)

@ -33,8 +33,6 @@
#include "src/core/lib/gprpp/crash.h"
#include "src/core/lib/gprpp/examine_stack.h"
int gpr_should_log_stacktrace(gpr_log_severity severity);
void gpr_log(const char* file, int line, gpr_log_severity severity,
const char* format, ...) {
// Avoid message construction if gpr_log_message won't log
@ -72,45 +70,4 @@ void gpr_log(const char* file, int line, gpr_log_severity severity,
gpr_free(message);
}
// Simple starter implementation
void gpr_platform_log(gpr_log_func_args* args) {
const char* final_slash;
const char* display_file;
char time_buffer[64];
time_t timer;
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
struct tm tm;
timer = (time_t)now.tv_sec;
final_slash = strrchr(args->file, '\\');
if (final_slash == NULL)
display_file = args->file;
else
display_file = final_slash + 1;
if (localtime_s(&tm, &timer)) {
strcpy(time_buffer, "error:localtime");
} else if (0 ==
strftime(time_buffer, sizeof(time_buffer), "%m%d %H:%M:%S", &tm)) {
strcpy(time_buffer, "error:strftime");
}
absl::optional<std::string> stack_trace =
gpr_should_log_stacktrace(args->severity)
? grpc_core::GetCurrentStackTrace()
: absl::nullopt;
if (stack_trace) {
fprintf(stderr, "%s%s.%09u %5lu %s:%d] %s\n%s\n",
gpr_log_severity_string(args->severity), time_buffer,
(int)(now.tv_nsec), GetCurrentThreadId(), display_file, args->line,
args->message, stack_trace->c_str());
} else {
fprintf(stderr, "%s%s.%09u %5lu %s:%d] %s\n",
gpr_log_severity_string(args->severity), time_buffer,
(int)(now.tv_nsec), GetCurrentThreadId(), display_file, args->line,
args->message);
}
fflush(stderr);
}
#endif // GPR_WINDOWS_LOG

@ -46,6 +46,7 @@ grpc_cc_binary(
external_deps = [
"absl/flags:flag",
"absl/log:check",
"absl/log:log",
"absl/time:time",
],
language = "C++",
@ -429,6 +430,7 @@ grpc_cc_binary(
external_deps = [
"absl/flags:flag",
"absl/log:check",
"absl/log:log",
],
deps = [
"//:grpc++",

@ -32,11 +32,11 @@
#include "absl/flags/flag.h"
#include "absl/log/check.h"
#include "absl/log/log.h"
#include "absl/strings/str_format.h"
#include "absl/time/time.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpcpp/channel.h>
#include <grpcpp/client_context.h>
@ -87,8 +87,8 @@ enum RpcMode {
GrpclbRouteType DoRPCAndGetPath(TestService::Stub* stub, int deadline_seconds,
RpcMode rpc_mode) {
gpr_log(GPR_INFO, "DoRPCAndGetPath deadline_seconds:%d rpc_mode:%d",
deadline_seconds, rpc_mode);
LOG(INFO) << "DoRPCAndGetPath deadline_seconds:" << deadline_seconds
<< " rpc_mode:" << rpc_mode;
SimpleRequest request;
SimpleResponse response;
grpc::ClientContext context;
@ -101,16 +101,16 @@ GrpclbRouteType DoRPCAndGetPath(TestService::Stub* stub, int deadline_seconds,
context.set_deadline(deadline);
grpc::Status s = stub->UnaryCall(&context, request, &response);
if (!s.ok()) {
gpr_log(GPR_INFO, "DoRPCAndGetPath failed. status-message: %s",
s.error_message().c_str());
LOG(INFO) << "DoRPCAndGetPath failed. status-message: "
<< s.error_message();
return GrpclbRouteType::GRPCLB_ROUTE_TYPE_UNKNOWN;
}
CHECK(response.grpclb_route_type() ==
GrpclbRouteType::GRPCLB_ROUTE_TYPE_BACKEND ||
response.grpclb_route_type() ==
GrpclbRouteType::GRPCLB_ROUTE_TYPE_FALLBACK);
gpr_log(GPR_INFO, "DoRPCAndGetPath done. grpclb_route_type:%d",
response.grpclb_route_type());
LOG(INFO) << "DoRPCAndGetPath done. grpclb_route_type:"
<< response.grpclb_route_type();
return response.grpclb_route_type();
}
@ -120,7 +120,7 @@ GrpclbRouteType DoRPCAndGetPath(TestService::Stub* stub, int deadline_seconds) {
bool TcpUserTimeoutMutateFd(int fd, grpc_socket_mutator* /*mutator*/) {
int timeout = 20000; // 20 seconds
gpr_log(GPR_INFO, "Setting socket option TCP_USER_TIMEOUT on fd: %d", fd);
LOG(INFO) << "Setting socket option TCP_USER_TIMEOUT on fd: " << fd;
if (0 != setsockopt(fd, IPPROTO_TCP, TCP_USER_TIMEOUT, &timeout,
sizeof(timeout))) {
grpc_core::Crash("Failed to set socket option TCP_USER_TIMEOUT");
@ -161,7 +161,7 @@ std::unique_ptr<TestService::Stub> CreateFallbackTestStub() {
}
void RunCommand(const std::string& command) {
gpr_log(GPR_INFO, "RunCommand: |%s|", command.c_str());
LOG(INFO) << "RunCommand: |" << command << "|";
int out = std::system(command.c_str());
if (WIFEXITED(out)) {
int code = WEXITSTATUS(out);
@ -185,25 +185,23 @@ void WaitForFallbackAndDoRPCs(TestService::Stub* stub) {
while (absl::Now() < fallback_deadline) {
GrpclbRouteType grpclb_route_type = DoRPCAndGetPath(stub, 1);
if (grpclb_route_type == GrpclbRouteType::GRPCLB_ROUTE_TYPE_BACKEND) {
gpr_log(GPR_ERROR,
"Got grpclb route type backend. Backends are "
"supposed to be unreachable, so this test is broken");
LOG(ERROR) << "Got grpclb route type backend. Backends are "
"supposed to be unreachable, so this test is broken";
CHECK(0);
}
if (grpclb_route_type == GrpclbRouteType::GRPCLB_ROUTE_TYPE_FALLBACK) {
gpr_log(GPR_INFO,
"Made one successful RPC to a fallback. Now expect the same for "
"the rest.");
LOG(INFO) << "Made one successful RPC to a fallback. Now expect the same "
"for the rest.";
fallback = true;
break;
} else {
gpr_log(GPR_ERROR, "Retryable RPC failure on iteration: %d",
fallback_retry_count);
LOG(ERROR) << "Retryable RPC failure on iteration: "
<< fallback_retry_count;
}
fallback_retry_count++;
}
if (!fallback) {
gpr_log(GPR_ERROR, "Didn't fall back within deadline");
LOG(ERROR) << "Didn't fall back within deadline";
CHECK(0);
}
for (int i = 0; i < 30; i++) {
@ -231,13 +229,13 @@ void DoFallbackAfterStartupTest() {
int main(int argc, char** argv) {
grpc::testing::InitTest(&argc, &argv, true);
gpr_log(GPR_INFO, "Testing: %s", absl::GetFlag(FLAGS_test_case).c_str());
LOG(INFO) << "Testing: " << absl::GetFlag(FLAGS_test_case);
if (absl::GetFlag(FLAGS_test_case) == "fallback_before_startup") {
DoFallbackBeforeStartupTest();
gpr_log(GPR_INFO, "DoFallbackBeforeStartup done!");
LOG(INFO) << "DoFallbackBeforeStartup done!";
} else if (absl::GetFlag(FLAGS_test_case) == "fallback_after_startup") {
DoFallbackAfterStartupTest();
gpr_log(GPR_INFO, "DoFallbackBeforeStartup done!");
LOG(INFO) << "DoFallbackBeforeStartup done!";
} else {
grpc_core::Crash(absl::StrFormat("Invalid test case: %s",
absl::GetFlag(FLAGS_test_case).c_str()));

@ -22,10 +22,10 @@
#include "absl/flags/flag.h"
#include "absl/log/check.h"
#include "absl/log/log.h"
#include "absl/strings/str_format.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpcpp/channel.h>
#include <grpcpp/client_context.h>
@ -81,40 +81,40 @@ SimpleRequest Http2Client::BuildDefaultRequest() {
}
bool Http2Client::DoRstAfterHeader() {
gpr_log(GPR_DEBUG, "Sending RPC and expecting reset stream after header");
VLOG(2) << "Sending RPC and expecting reset stream after header";
SimpleResponse response;
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::INTERNAL);
CHECK(!response.has_payload()); // no data should be received
gpr_log(GPR_DEBUG, "Done testing reset stream after header");
VLOG(2) << "Done testing reset stream after header";
return true;
}
bool Http2Client::DoRstAfterData() {
gpr_log(GPR_DEBUG, "Sending RPC and expecting reset stream after data");
VLOG(2) << "Sending RPC and expecting reset stream after data";
SimpleResponse response;
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::INTERNAL);
// There is no guarantee that data would be received.
gpr_log(GPR_DEBUG, "Done testing reset stream after data");
VLOG(2) << "Done testing reset stream after data";
return true;
}
bool Http2Client::DoRstDuringData() {
gpr_log(GPR_DEBUG, "Sending RPC and expecting reset stream during data");
VLOG(2) << "Sending RPC and expecting reset stream during data";
SimpleResponse response;
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::INTERNAL);
CHECK(!response.has_payload()); // no data should be received
gpr_log(GPR_DEBUG, "Done testing reset stream during data");
VLOG(2) << "Done testing reset stream during data";
return true;
}
bool Http2Client::DoGoaway() {
gpr_log(GPR_DEBUG, "Sending two RPCs and expecting goaway");
VLOG(2) << "Sending two RPCs and expecting goaway";
SimpleResponse response;
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::OK);
CHECK(response.payload().body() == std::string(kLargeResponseSize, '\0'));
@ -127,16 +127,16 @@ bool Http2Client::DoGoaway() {
response.Clear();
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::OK);
CHECK(response.payload().body() == std::string(kLargeResponseSize, '\0'));
gpr_log(GPR_DEBUG, "Done testing goaway");
VLOG(2) << "Done testing goaway";
return true;
}
bool Http2Client::DoPing() {
gpr_log(GPR_DEBUG, "Sending RPC and expecting ping");
VLOG(2) << "Sending RPC and expecting ping";
SimpleResponse response;
AssertStatusCode(SendUnaryCall(&response), grpc::StatusCode::OK);
CHECK(response.payload().body() == std::string(kLargeResponseSize, '\0'));
gpr_log(GPR_DEBUG, "Done testing ping");
VLOG(2) << "Done testing ping";
return true;
}
@ -148,7 +148,7 @@ void Http2Client::MaxStreamsWorker(
}
bool Http2Client::DoMaxStreams() {
gpr_log(GPR_DEBUG, "Testing max streams");
VLOG(2) << "Testing max streams";
// Make an initial call on the channel to ensure the server's max streams
// setting is received
@ -167,7 +167,7 @@ bool Http2Client::DoMaxStreams() {
it->join();
}
gpr_log(GPR_DEBUG, "Done testing max streams");
VLOG(2) << "Done testing max streams";
return true;
}
@ -198,7 +198,7 @@ int main(int argc, char** argv) {
CHECK(channel->WaitForConnected(gpr_time_add(
gpr_now(GPR_CLOCK_REALTIME), gpr_time_from_seconds(300, GPR_TIMESPAN))));
grpc::testing::Http2Client client(channel);
gpr_log(GPR_INFO, "Testing case: %s", absl::GetFlag(FLAGS_test_case).c_str());
LOG(INFO) << "Testing case: " << absl::GetFlag(FLAGS_test_case);
int ret = 0;
if (absl::GetFlag(FLAGS_test_case) == "rst_after_header") {
client.DoRstAfterHeader();
@ -219,8 +219,9 @@ int main(int argc, char** argv) {
char* joined_testcases =
gpr_strjoin_sep(testcases, GPR_ARRAY_SIZE(testcases), "\n", nullptr);
gpr_log(GPR_ERROR, "Unsupported test case %s. Valid options are\n%s",
absl::GetFlag(FLAGS_test_case).c_str(), joined_testcases);
LOG(ERROR) << "Unsupported test case " << absl::GetFlag(FLAGS_test_case)
<< ". Valid options are\n"
<< joined_testcases;
gpr_free(joined_testcases);
ret = 1;
}

Loading…
Cancel
Save