From 988db272756058bf1c09691a41c8322fe52afe21 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Tue, 24 Feb 2015 22:21:02 -0800 Subject: Spam cleanup --- src/core/debug/trace.c | 2 ++ src/core/debug/trace.h | 3 ++- src/core/tsi/ssl_transport_security.c | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c index b8eb755bff..6f84ee2c30 100644 --- a/src/core/debug/trace.c +++ b/src/core/debug/trace.c @@ -83,6 +83,8 @@ static void parse(const char *s) { grpc_trace_bits |= GRPC_TRACE_SECURE_ENDPOINT; } else if (0 == strcmp(s, "http")) { grpc_trace_bits |= GRPC_TRACE_HTTP; + } else if (0 == strcmp(s, "ssl")) { + grpc_trace_bits |= GRPC_TRACE_SSL; } else if (0 == strcmp(s, "all")) { grpc_trace_bits = -1; } else { diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h index bf9b8a3642..a653fad2bb 100644 --- a/src/core/debug/trace.h +++ b/src/core/debug/trace.h @@ -46,7 +46,8 @@ typedef enum { GRPC_TRACE_CHANNEL = 1 << 1, GRPC_TRACE_TCP = 1 << 2, GRPC_TRACE_SECURE_ENDPOINT = 1 << 3, - GRPC_TRACE_HTTP = 1 << 4 + GRPC_TRACE_HTTP = 1 << 4, + GRPC_TRACE_SSL = 1 << 5 } grpc_trace_bit_value; #if GRPC_ENABLE_TRACING diff --git a/src/core/tsi/ssl_transport_security.c b/src/core/tsi/ssl_transport_security.c index 9ca8e6ddc9..c13b2d5ea1 100644 --- a/src/core/tsi/ssl_transport_security.c +++ b/src/core/tsi/ssl_transport_security.c @@ -39,6 +39,7 @@ #include #include #include +#include "src/core/debug/trace.h" #include "src/core/tsi/transport_security.h" #include @@ -162,7 +163,7 @@ static const char* ssl_error_string(int error) { /* TODO(jboeuf): Remove when we are past the debugging phase with this code. */ static void ssl_log_where_info(const SSL* ssl, int where, int flag, const char* msg) { - if (where & flag) { + if ((where & flag) && (grpc_trace_bits & GRPC_TRACE_SSL)) { gpr_log(GPR_INFO, "%20.20s - %30.30s - %5.10s", msg, SSL_state_string_long(ssl), SSL_state_string(ssl)); } -- cgit v1.2.3 From b7063f1416cdff1a9d44e1622ab48dbaddcdd66a Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 27 Feb 2015 16:12:24 -0800 Subject: Added python tests to .travis.yml --- .travis.yml | 8 ++------ tools/run_tests/build_python.sh | 2 -- tools/run_tests/run_tests.py | 2 +- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 17957584b7..47ab5e888d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,13 +7,9 @@ env: global: - RUBY_VERSION=2.1 matrix: - - CONFIG=dbg TEST=c - - CONFIG=dbg TEST=c++ - - CONFIG=opt TEST=c - - CONFIG=opt TEST=c++ - - CONFIG=opt TEST=node - - CONFIG=opt TEST=ruby + - CONFIG=opt TEST=python script: + - which python - rvm use $RUBY_VERSION - gem install bundler - ./tools/run_tests/run_tests.py -l $TEST -t -j 16 -c $CONFIG -s 2.0 diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 5a3c720ba5..f575923c22 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -33,8 +33,6 @@ set -ex # change to grpc repo root cd $(dirname $0)/../.. -make -j6 - root=`pwd` virtualenv python2.7_virtual_environment source python2.7_virtual_environment/bin/activate diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index b7370327dd..e949670b8c 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -135,7 +135,7 @@ class PythonLanguage(object): return [config.job_spec('tools/run_tests/run_python.sh', None)] def make_targets(self): - return[] + return ['static_c'] def build_steps(self): return [['tools/run_tests/build_python.sh']] -- cgit v1.2.3 From 7d33c2a90f109717f54f6c5cf653b800728fe92a Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 27 Feb 2015 16:33:47 -0800 Subject: Added log line --- tools/run_tests/run_python.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 06ddb8e41a..208ff7d042 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,6 +36,7 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate +which python2.7 # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. python2.7 -B test/compiler/python_plugin_test.py --build_mode=opt -- cgit v1.2.3 From d1d1626263244b3e4b530088b1fc23c3d6b369e6 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Fri, 27 Feb 2015 16:44:32 -0800 Subject: Added another log line --- tools/run_tests/build_python.sh | 2 ++ tools/run_tests/run_python.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index f575923c22..56761b802e 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -36,5 +36,7 @@ cd $(dirname $0)/../.. root=`pwd` virtualenv python2.7_virtual_environment source python2.7_virtual_environment/bin/activate +echo $PATH +which pip pip install enum34==1.0.4 futures==2.2.0 protobuf==3.0.0-alpha-1 CFLAGS=-I$root/include LDFLAGS=-L$root/libs/opt pip install src/python/src diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 208ff7d042..f7438f6207 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,6 +36,7 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate +echo $PATH which python2.7 # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. -- cgit v1.2.3 From faa8480a399061cef95aef394b2e1977bdef4b4a Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Sun, 1 Mar 2015 21:56:38 -0800 Subject: Tracer registration. First: ugh. Second: allow tracer global variables to be registered and then parsed out of a configuration environment variable. Expose TSI trace config variable directly to ease this a little. --- Makefile | 36 +++++++++++++- build.json | 6 +++ src/core/channel/channel_stack.c | 2 + src/core/channel/channel_stack.h | 4 +- src/core/debug/trace.c | 62 +++++++++++++------------ src/core/debug/trace.h | 23 +-------- src/core/iomgr/iomgr_posix.c | 3 ++ src/core/iomgr/tcp_posix.c | 6 ++- src/core/iomgr/tcp_posix.h | 2 + src/core/security/secure_endpoint.c | 6 ++- src/core/security/secure_endpoint.h | 2 + src/core/surface/init.c | 10 +++- src/core/surface/init.h | 39 ++++++++++++++++ src/core/surface/init_secure.c | 42 +++++++++++++++++ src/core/surface/init_unsecure.c | 37 +++++++++++++++ src/core/surface/surface_trace.c | 36 ++++++++++++++ src/core/surface/surface_trace.h | 4 +- src/core/transport/chttp2/frame_settings.c | 3 +- src/core/transport/chttp2_transport.c | 5 +- src/core/transport/chttp2_transport.h | 2 + src/core/tsi/transport_security.c | 4 -- src/core/tsi/transport_security_interface.h | 4 +- vsprojects/vs2013/grpc.vcxproj | 5 ++ vsprojects/vs2013/grpc.vcxproj.filters | 9 ++++ vsprojects/vs2013/grpc_shared.vcxproj | 5 ++ vsprojects/vs2013/grpc_shared.vcxproj.filters | 9 ++++ vsprojects/vs2013/grpc_unsecure.vcxproj | 5 ++ vsprojects/vs2013/grpc_unsecure.vcxproj.filters | 9 ++++ 28 files changed, 312 insertions(+), 68 deletions(-) create mode 100644 src/core/surface/init.h create mode 100644 src/core/surface/init_secure.c create mode 100644 src/core/surface/init_unsecure.c create mode 100644 src/core/surface/surface_trace.c diff --git a/Makefile b/Makefile index e390a3efe6..64871343e1 100644 --- a/Makefile +++ b/Makefile @@ -2328,6 +2328,7 @@ LIBGRPC_SRC = \ src/core/security/secure_transport_setup.c \ src/core/security/security_context.c \ src/core/security/server_secure_chttp2.c \ + src/core/surface/init_secure.c \ src/core/surface/secure_channel_create.c \ src/core/surface/secure_server_create.c \ src/core/tsi/fake_transport_security.c \ @@ -2407,6 +2408,7 @@ LIBGRPC_SRC = \ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ + src/core/surface/surface_trace.c \ src/core/transport/chttp2/alpn.c \ src/core/transport/chttp2/bin_encoder.c \ src/core/transport/chttp2/frame_data.c \ @@ -2472,6 +2474,7 @@ src/core/security/secure_endpoint.c: $(OPENSSL_DEP) src/core/security/secure_transport_setup.c: $(OPENSSL_DEP) src/core/security/security_context.c: $(OPENSSL_DEP) src/core/security/server_secure_chttp2.c: $(OPENSSL_DEP) +src/core/surface/init_secure.c: $(OPENSSL_DEP) src/core/surface/secure_channel_create.c: $(OPENSSL_DEP) src/core/surface/secure_server_create.c: $(OPENSSL_DEP) src/core/tsi/fake_transport_security.c: $(OPENSSL_DEP) @@ -2551,6 +2554,7 @@ src/core/surface/metadata_array.c: $(OPENSSL_DEP) src/core/surface/server.c: $(OPENSSL_DEP) src/core/surface/server_chttp2.c: $(OPENSSL_DEP) src/core/surface/server_create.c: $(OPENSSL_DEP) +src/core/surface/surface_trace.c: $(OPENSSL_DEP) src/core/transport/chttp2/alpn.c: $(OPENSSL_DEP) src/core/transport/chttp2/bin_encoder.c: $(OPENSSL_DEP) src/core/transport/chttp2/frame_data.c: $(OPENSSL_DEP) @@ -2633,6 +2637,7 @@ $(OBJDIR)/$(CONFIG)/src/core/security/secure_endpoint.o: $(OBJDIR)/$(CONFIG)/src/core/security/secure_transport_setup.o: $(OBJDIR)/$(CONFIG)/src/core/security/security_context.o: $(OBJDIR)/$(CONFIG)/src/core/security/server_secure_chttp2.o: +$(OBJDIR)/$(CONFIG)/src/core/surface/init_secure.o: $(OBJDIR)/$(CONFIG)/src/core/surface/secure_channel_create.o: $(OBJDIR)/$(CONFIG)/src/core/surface/secure_server_create.o: $(OBJDIR)/$(CONFIG)/src/core/tsi/fake_transport_security.o: @@ -2712,6 +2717,7 @@ $(OBJDIR)/$(CONFIG)/src/core/surface/metadata_array.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server_chttp2.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server_create.o: +$(OBJDIR)/$(CONFIG)/src/core/surface/surface_trace.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/alpn.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/bin_encoder.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/frame_data.o: @@ -2811,6 +2817,7 @@ $(OBJDIR)/$(CONFIG)/test/core/util/slice_splitter.o: LIBGRPC_UNSECURE_SRC = \ + src/core/surface/init_unsecure.c \ src/core/channel/call_op_string.c \ src/core/channel/census_filter.c \ src/core/channel/channel_args.c \ @@ -2885,6 +2892,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/surface/server.c \ src/core/surface/server_chttp2.c \ src/core/surface/server_create.c \ + src/core/surface/surface_trace.c \ src/core/transport/chttp2/alpn.c \ src/core/transport/chttp2/bin_encoder.c \ src/core/transport/chttp2/frame_data.c \ @@ -2947,6 +2955,7 @@ ifneq ($(NO_DEPS),true) -include $(LIBGRPC_UNSECURE_OBJS:.o=.dep) endif +$(OBJDIR)/$(CONFIG)/src/core/surface/init_unsecure.o: $(OBJDIR)/$(CONFIG)/src/core/channel/call_op_string.o: $(OBJDIR)/$(CONFIG)/src/core/channel/census_filter.o: $(OBJDIR)/$(CONFIG)/src/core/channel/channel_args.o: @@ -3021,6 +3030,7 @@ $(OBJDIR)/$(CONFIG)/src/core/surface/metadata_array.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server_chttp2.o: $(OBJDIR)/$(CONFIG)/src/core/surface/server_create.o: +$(OBJDIR)/$(CONFIG)/src/core/surface/surface_trace.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/alpn.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/bin_encoder.o: $(OBJDIR)/$(CONFIG)/src/core/transport/chttp2/frame_data.o: @@ -8076,13 +8086,24 @@ $(BINDIR)/$(CONFIG)/qps_client_async: openssl_dep_error else -$(BINDIR)/$(CONFIG)/qps_client_async: $(QPS_CLIENT_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_client_async: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_client_async: $(PROTOBUF_DEP) $(QPS_CLIENT_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` $(Q) $(LDXX) $(LDFLAGS) $(QPS_CLIENT_ASYNC_OBJS) $(GTEST_LIB) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/qps_client_async endif +endif + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qpstest.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a @@ -8153,13 +8174,24 @@ $(BINDIR)/$(CONFIG)/qps_server_async: openssl_dep_error else -$(BINDIR)/$(CONFIG)/qps_server_async: $(QPS_SERVER_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_server_async: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_server_async: $(PROTOBUF_DEP) $(QPS_SERVER_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` $(Q) $(LDXX) $(LDFLAGS) $(QPS_SERVER_ASYNC_OBJS) $(GTEST_LIB) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/qps_server_async endif +endif + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qpstest.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a diff --git a/build.json b/build.json index 6be1d537ff..e8ecd8eb43 100644 --- a/build.json +++ b/build.json @@ -79,6 +79,7 @@ "src/core/surface/client.h", "src/core/surface/completion_queue.h", "src/core/surface/event_string.h", + "src/core/surface/init.h", "src/core/surface/lame_client.h", "src/core/surface/server.h", "src/core/surface/surface_trace.h", @@ -180,6 +181,7 @@ "src/core/surface/server.c", "src/core/surface/server_chttp2.c", "src/core/surface/server_create.c", + "src/core/surface/surface_trace.c", "src/core/transport/chttp2/alpn.c", "src/core/transport/chttp2/bin_encoder.c", "src/core/transport/chttp2/frame_data.c", @@ -329,6 +331,7 @@ "src/core/security/secure_transport_setup.c", "src/core/security/security_context.c", "src/core/security/server_secure_chttp2.c", + "src/core/surface/init_secure.c", "src/core/surface/secure_channel_create.c", "src/core/surface/secure_server_create.c", "src/core/tsi/fake_transport_security.c", @@ -372,6 +375,9 @@ "name": "grpc_unsecure", "build": "all", "language": "c", + "src": [ + "src/core/surface/init_unsecure.c" + ], "deps": [ "gpr" ], diff --git a/src/core/channel/channel_stack.c b/src/core/channel/channel_stack.c index 0382a7a2f3..21df9771ce 100644 --- a/src/core/channel/channel_stack.c +++ b/src/core/channel/channel_stack.c @@ -36,6 +36,8 @@ #include +int grpc_trace_channel = 0; + /* Memory layouts. Channel stack is laid out as: { diff --git a/src/core/channel/channel_stack.h b/src/core/channel/channel_stack.h index c136f5c17c..ef1da7b33b 100644 --- a/src/core/channel/channel_stack.h +++ b/src/core/channel/channel_stack.h @@ -298,7 +298,9 @@ void grpc_call_element_recv_metadata(grpc_call_element *cur_elem, void grpc_call_element_send_cancel(grpc_call_element *cur_elem); void grpc_call_element_send_finish(grpc_call_element *cur_elem); +extern int grpc_trace_channel; + #define GRPC_CALL_LOG_OP(sev, elem, op) \ - if (grpc_trace_bits & GRPC_TRACE_CHANNEL) grpc_call_log_op(sev, elem, op) + if (grpc_trace_channel) grpc_call_log_op(sev, elem, op) #endif /* GRPC_INTERNAL_CORE_CHANNEL_CHANNEL_STACK_H */ diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c index 6f84ee2c30..9389631fae 100644 --- a/src/core/debug/trace.c +++ b/src/core/debug/trace.c @@ -39,8 +39,21 @@ #include #include "src/core/support/env.h" -#if GRPC_ENABLE_TRACING -gpr_uint32 grpc_trace_bits = 0; +typedef struct tracer { + const char *name; + int *flag; + struct tracer *next; +} tracer; +static tracer *tracers; + +void grpc_register_tracer(const char *name, int *flag) { + tracer *t = gpr_malloc(sizeof(*t)); + t->name = name; + t->flag = flag; + t->next = tracers; + *flag = 0; + tracers = t; +} static void add(const char *beg, const char *end, char ***ss, size_t *ns) { size_t n = *ns; @@ -67,28 +80,26 @@ static void parse(const char *s) { char **strings = NULL; size_t nstrings = 0; size_t i; + tracer *t; split(s, &strings, &nstrings); - grpc_trace_bits = 0; - for (i = 0; i < nstrings; i++) { const char *s = strings[i]; - if (0 == strcmp(s, "surface")) { - grpc_trace_bits |= GRPC_TRACE_SURFACE; - } else if (0 == strcmp(s, "channel")) { - grpc_trace_bits |= GRPC_TRACE_CHANNEL; - } else if (0 == strcmp(s, "tcp")) { - grpc_trace_bits |= GRPC_TRACE_TCP; - } else if (0 == strcmp(s, "secure_endpoint")) { - grpc_trace_bits |= GRPC_TRACE_SECURE_ENDPOINT; - } else if (0 == strcmp(s, "http")) { - grpc_trace_bits |= GRPC_TRACE_HTTP; - } else if (0 == strcmp(s, "ssl")) { - grpc_trace_bits |= GRPC_TRACE_SSL; - } else if (0 == strcmp(s, "all")) { - grpc_trace_bits = -1; + if (0 == strcmp(s, "all")) { + for (t = tracers; t; t = t->next) { + *t->flag = 1; + } } else { - gpr_log(GPR_ERROR, "Unknown trace var: '%s'", s); + int found = 0; + for (t = tracers; t; t = t->next) { + if (0 == strcmp(s, t->name)) { + *t->flag = 1; + found = 1; + } + } + if (!found) { + gpr_log(GPR_ERROR, "Unknown trace var: '%s'", s); + } } } @@ -98,17 +109,10 @@ static void parse(const char *s) { gpr_free(strings); } -void grpc_init_trace_bits() { - char *e = gpr_getenv("GRPC_TRACE"); - if (e == NULL) { - grpc_trace_bits = 0; - } else { +void grpc_tracer_init(const char *env_var) { + char *e = gpr_getenv(env_var); + if (e != NULL) { parse(e); gpr_free(e); } } -#else -void grpc_init_trace_bits() { -} -#endif - diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h index e11630f7e9..c02f14b7f2 100644 --- a/src/core/debug/trace.h +++ b/src/core/debug/trace.h @@ -36,26 +36,7 @@ #include -/* set to zero to remove all debug trace code */ -#ifndef GRPC_ENABLE_TRACING -# define GRPC_ENABLE_TRACING 1 -#endif - -typedef enum { - GRPC_TRACE_SURFACE = 1 << 0, - GRPC_TRACE_CHANNEL = 1 << 1, - GRPC_TRACE_TCP = 1 << 2, - GRPC_TRACE_SECURE_ENDPOINT = 1 << 3, - GRPC_TRACE_HTTP = 1 << 4, - GRPC_TRACE_SSL = 1 << 5 -} grpc_trace_bit_value; - -#if GRPC_ENABLE_TRACING -extern gpr_uint32 grpc_trace_bits; -#else -# define grpc_trace_bits 0 -#endif - -void grpc_init_trace_bits(); +void grpc_register_tracer(const char *name, int *flag); +void grpc_tracer_init(const char *env_var_name); #endif /* GRPC_INTERNAL_CORE_DEBUG_TRACE_H */ diff --git a/src/core/iomgr/iomgr_posix.c b/src/core/iomgr/iomgr_posix.c index 14e3d182f6..758ae77b86 100644 --- a/src/core/iomgr/iomgr_posix.c +++ b/src/core/iomgr/iomgr_posix.c @@ -36,11 +36,14 @@ #ifdef GPR_POSIX_SOCKET #include "src/core/iomgr/iomgr_posix.h" +#include "src/core/debug/trace.h" #include "src/core/iomgr/fd_posix.h" +#include "src/core/iomgr/tcp_posix.h" void grpc_iomgr_platform_init(void) { grpc_fd_global_init(); grpc_pollset_global_init(); + grpc_register_tracer("tcp", &grpc_tcp_trace); } void grpc_iomgr_platform_shutdown(void) { diff --git a/src/core/iomgr/tcp_posix.c b/src/core/iomgr/tcp_posix.c index eceb0feadb..597a2a62d3 100644 --- a/src/core/iomgr/tcp_posix.c +++ b/src/core/iomgr/tcp_posix.c @@ -63,6 +63,8 @@ typedef struct grpc_tcp_slice_state { int memory_owned; /* True if slices array is owned */ } grpc_tcp_slice_state; +int grpc_tcp_trace = 0; + static void slice_state_init(grpc_tcp_slice_state *state, gpr_slice *slices, size_t nslices, size_t valid_slices) { state->slices = slices; @@ -294,7 +296,7 @@ static void call_read_cb(grpc_tcp *tcp, gpr_slice *slices, size_t nslices, grpc_endpoint_cb_status status) { grpc_endpoint_read_cb cb = tcp->read_cb; - if (grpc_trace_bits & GRPC_TRACE_TCP) { + if (grpc_tcp_trace) { size_t i; gpr_log(GPR_DEBUG, "read: status=%d", status); for (i = 0; i < nslices; i++) { @@ -495,7 +497,7 @@ static grpc_endpoint_write_status grpc_tcp_write(grpc_endpoint *ep, grpc_tcp *tcp = (grpc_tcp *)ep; grpc_endpoint_write_status status; - if (grpc_trace_bits & GRPC_TRACE_TCP) { + if (grpc_tcp_trace) { size_t i; for (i = 0; i < nslices; i++) { diff --git a/src/core/iomgr/tcp_posix.h b/src/core/iomgr/tcp_posix.h index 7e8064bffc..44279d5a26 100644 --- a/src/core/iomgr/tcp_posix.h +++ b/src/core/iomgr/tcp_posix.h @@ -49,6 +49,8 @@ #define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192 +extern int grpc_tcp_trace; + /* Create a tcp endpoint given a file desciptor and a read slice size. Takes ownership of fd. */ grpc_endpoint *grpc_tcp_create(grpc_fd *fd, size_t read_slice_size); diff --git a/src/core/security/secure_endpoint.c b/src/core/security/secure_endpoint.c index d6bdf5a709..7bb1de4413 100644 --- a/src/core/security/secure_endpoint.c +++ b/src/core/security/secure_endpoint.c @@ -65,6 +65,8 @@ typedef struct { gpr_refcount ref; } secure_endpoint; +int grpc_trace_secure_endpoint = 0; + static void secure_endpoint_ref(secure_endpoint *ep) { gpr_ref(&ep->ref); } static void destroy(secure_endpoint *secure_ep) { @@ -96,7 +98,7 @@ static void flush_read_staging_buffer(secure_endpoint *ep, gpr_uint8 **cur, static void call_read_cb(secure_endpoint *ep, gpr_slice *slices, size_t nslices, grpc_endpoint_cb_status error) { - if (grpc_trace_bits & GRPC_TRACE_SECURE_ENDPOINT) { + if (grpc_trace_secure_endpoint) { size_t i; for (i = 0; i < nslices; i++) { char *data = @@ -231,7 +233,7 @@ static grpc_endpoint_write_status endpoint_write(grpc_endpoint *secure_ep, grpc_endpoint_write_status status; GPR_ASSERT(ep->output_buffer.count == 0); - if (grpc_trace_bits & GRPC_TRACE_SECURE_ENDPOINT) { + if (grpc_trace_secure_endpoint) { for (i = 0; i < nslices; i++) { char *data = gpr_hexdump((char *)GPR_SLICE_START_PTR(slices[i]), diff --git a/src/core/security/secure_endpoint.h b/src/core/security/secure_endpoint.h index 808889bf04..93c29b5111 100644 --- a/src/core/security/secure_endpoint.h +++ b/src/core/security/secure_endpoint.h @@ -39,6 +39,8 @@ struct tsi_frame_protector; +extern int grpc_trace_secure_endpoint; + /* Takes ownership of protector and to_wrap, and refs leftover_slices. */ grpc_endpoint *grpc_secure_endpoint_create( struct tsi_frame_protector *protector, grpc_endpoint *to_wrap, diff --git a/src/core/surface/init.c b/src/core/surface/init.c index 2d8f36e9c2..4db66fb66e 100644 --- a/src/core/surface/init.c +++ b/src/core/surface/init.c @@ -35,6 +35,10 @@ #include "src/core/iomgr/iomgr.h" #include "src/core/debug/trace.h" #include "src/core/statistics/census_interface.h" +#include "src/core/channel/channel_stack.h" +#include "src/core/surface/init.h" +#include "src/core/surface/surface_trace.h" +#include "src/core/transport/chttp2_transport.h" static gpr_once g_init = GPR_ONCE_INIT; static gpr_mu g_init_mu; @@ -50,7 +54,11 @@ void grpc_init(void) { gpr_mu_lock(&g_init_mu); if (++g_initializations == 1) { - grpc_init_trace_bits(); + grpc_register_tracer("channel", &grpc_trace_channel); + grpc_register_tracer("surface", &grpc_surface_trace); + grpc_register_tracer("http", &grpc_http_trace); + grpc_security_pre_init(); + grpc_tracer_init("GRPC_TRACE"); grpc_iomgr_init(); census_init(); } diff --git a/src/core/surface/init.h b/src/core/surface/init.h new file mode 100644 index 0000000000..ab40bedf87 --- /dev/null +++ b/src/core/surface/init.h @@ -0,0 +1,39 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_INTERNAL_CORE_SURFACE_INIT_H +#define GRPC_INTERNAL_CORE_SURFACE_INIT_H + +void grpc_security_pre_init(void); + +#endif /* GRPC_INTERNAL_CORE_SURFACE_INIT_H */ diff --git a/src/core/surface/init_secure.c b/src/core/surface/init_secure.c new file mode 100644 index 0000000000..5d7e5c4dda --- /dev/null +++ b/src/core/surface/init_secure.c @@ -0,0 +1,42 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/surface/init.h" +#include "src/core/debug/trace.h" +#include "src/core/security/secure_endpoint.h" +#include "src/core/tsi/transport_security_interface.h" + +void grpc_security_pre_init(void) { + grpc_register_tracer("secure_endpoint", &grpc_trace_secure_endpoint); + grpc_register_tracer("ssl", &tsi_tracing_enabled); +} diff --git a/src/core/surface/init_unsecure.c b/src/core/surface/init_unsecure.c new file mode 100644 index 0000000000..ddb70cef8e --- /dev/null +++ b/src/core/surface/init_unsecure.c @@ -0,0 +1,37 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/surface/init.h" + +void grpc_security_pre_init(void) { +} diff --git a/src/core/surface/surface_trace.c b/src/core/surface/surface_trace.c new file mode 100644 index 0000000000..57a0053162 --- /dev/null +++ b/src/core/surface/surface_trace.c @@ -0,0 +1,36 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/surface/surface_trace.h" + +int grpc_surface_trace = 0; diff --git a/src/core/surface/surface_trace.h b/src/core/surface/surface_trace.h index 50071ee317..01302bb5d4 100644 --- a/src/core/surface/surface_trace.h +++ b/src/core/surface/surface_trace.h @@ -37,8 +37,10 @@ #include "src/core/debug/trace.h" #include +extern int grpc_surface_trace; + #define GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, event) \ - if (grpc_trace_bits & GRPC_TRACE_SURFACE) { \ + if (grpc_surface_trace) { \ char *_ev = grpc_event_string(event); \ gpr_log(GPR_INFO, "RETURN_EVENT[%p]: %s", cq, _ev); \ gpr_free(_ev); \ diff --git a/src/core/transport/chttp2/frame_settings.c b/src/core/transport/chttp2/frame_settings.c index e6c4b7e38f..8d3250c34f 100644 --- a/src/core/transport/chttp2/frame_settings.c +++ b/src/core/transport/chttp2/frame_settings.c @@ -37,6 +37,7 @@ #include "src/core/debug/trace.h" #include "src/core/transport/chttp2/frame.h" +#include "src/core/transport/chttp2_transport.h" #include #include @@ -218,7 +219,7 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse( } } parser->incoming_settings[parser->id] = parser->value; - if (grpc_trace_bits & GRPC_TRACE_HTTP) { + if (grpc_http_trace) { gpr_log(GPR_DEBUG, "CHTTP2: got setting %d = %d", parser->id, parser->value); } diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 476cc4b226..1c5efca675 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -37,7 +37,6 @@ #include #include -#include "src/core/debug/trace.h" #include "src/core/support/string.h" #include "src/core/transport/chttp2/frame_data.h" #include "src/core/transport/chttp2/frame_goaway.h" @@ -64,11 +63,13 @@ #define CLIENT_CONNECT_STRING "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" #define CLIENT_CONNECT_STRLEN 24 +int grpc_http_trace = 0; + typedef struct transport transport; typedef struct stream stream; #define IF_TRACING(stmt) \ - if (!(grpc_trace_bits & GRPC_TRACE_HTTP)) \ + if (!(grpc_http_trace)) \ ; \ else \ stmt diff --git a/src/core/transport/chttp2_transport.h b/src/core/transport/chttp2_transport.h index c5b65bd4f7..a7f1b9a864 100644 --- a/src/core/transport/chttp2_transport.h +++ b/src/core/transport/chttp2_transport.h @@ -37,6 +37,8 @@ #include "src/core/iomgr/endpoint.h" #include "src/core/transport/transport.h" +extern int grpc_http_trace; + void grpc_create_chttp2_transport(grpc_transport_setup_callback setup, void *arg, const grpc_channel_args *channel_args, diff --git a/src/core/tsi/transport_security.c b/src/core/tsi/transport_security.c index 04b30004fc..c8c74c5de5 100644 --- a/src/core/tsi/transport_security.c +++ b/src/core/tsi/transport_security.c @@ -40,10 +40,6 @@ int tsi_tracing_enabled = 0; -void tsi_enable_tracing() { - tsi_tracing_enabled = 1; -} - /* --- Utils. --- */ char* tsi_strdup(const char* src) { diff --git a/src/core/tsi/transport_security_interface.h b/src/core/tsi/transport_security_interface.h index 33a19bef0d..4e7ad00421 100644 --- a/src/core/tsi/transport_security_interface.h +++ b/src/core/tsi/transport_security_interface.h @@ -63,8 +63,8 @@ const char* tsi_result_to_string(tsi_result result); /* --- tsi tracing --- */ -/* Call this function before any other tsi function to avoid races. */ -void tsi_enable_tracing(void); +/* set this early to avoid races */ +extern int tsi_tracing_enabled; /* --- tsi_frame_protector object --- diff --git a/vsprojects/vs2013/grpc.vcxproj b/vsprojects/vs2013/grpc.vcxproj index 48f975f99b..60dc980242 100644 --- a/vsprojects/vs2013/grpc.vcxproj +++ b/vsprojects/vs2013/grpc.vcxproj @@ -160,6 +160,7 @@ + @@ -219,6 +220,8 @@ + + @@ -377,6 +380,8 @@ + + diff --git a/vsprojects/vs2013/grpc.vcxproj.filters b/vsprojects/vs2013/grpc.vcxproj.filters index 867e54516c..9fc70e74d9 100644 --- a/vsprojects/vs2013/grpc.vcxproj.filters +++ b/vsprojects/vs2013/grpc.vcxproj.filters @@ -49,6 +49,9 @@ src\core\security + + src\core\surface + src\core\surface @@ -286,6 +289,9 @@ src\core\surface + + src\core\surface + src\core\transport\chttp2 @@ -590,6 +596,9 @@ src\core\surface + + src\core\surface + src\core\surface diff --git a/vsprojects/vs2013/grpc_shared.vcxproj b/vsprojects/vs2013/grpc_shared.vcxproj index 4b2f1e725e..5c2e23b513 100644 --- a/vsprojects/vs2013/grpc_shared.vcxproj +++ b/vsprojects/vs2013/grpc_shared.vcxproj @@ -164,6 +164,7 @@ + @@ -223,6 +224,8 @@ + + @@ -381,6 +384,8 @@ + + diff --git a/vsprojects/vs2013/grpc_shared.vcxproj.filters b/vsprojects/vs2013/grpc_shared.vcxproj.filters index 867e54516c..9fc70e74d9 100644 --- a/vsprojects/vs2013/grpc_shared.vcxproj.filters +++ b/vsprojects/vs2013/grpc_shared.vcxproj.filters @@ -49,6 +49,9 @@ src\core\security + + src\core\surface + src\core\surface @@ -286,6 +289,9 @@ src\core\surface + + src\core\surface + src\core\transport\chttp2 @@ -590,6 +596,9 @@ src\core\surface + + src\core\surface + src\core\surface diff --git a/vsprojects/vs2013/grpc_unsecure.vcxproj b/vsprojects/vs2013/grpc_unsecure.vcxproj index 0c81ec4768..9181db0b4e 100644 --- a/vsprojects/vs2013/grpc_unsecure.vcxproj +++ b/vsprojects/vs2013/grpc_unsecure.vcxproj @@ -145,6 +145,7 @@ + @@ -172,6 +173,8 @@ + + @@ -320,6 +323,8 @@ + + diff --git a/vsprojects/vs2013/grpc_unsecure.vcxproj.filters b/vsprojects/vs2013/grpc_unsecure.vcxproj.filters index 4b5370a573..4583fa41ea 100644 --- a/vsprojects/vs2013/grpc_unsecure.vcxproj.filters +++ b/vsprojects/vs2013/grpc_unsecure.vcxproj.filters @@ -1,6 +1,9 @@ + + src\core\surface + src\core\channel @@ -223,6 +226,9 @@ src\core\surface + + src\core\surface + src\core\transport\chttp2 @@ -482,6 +488,9 @@ src\core\surface + + src\core\surface + src\core\surface -- cgit v1.2.3 From 077e75cba9b0ebcfb8acc0eb9e9652cad99c8a59 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Sun, 1 Mar 2015 21:59:17 -0800 Subject: Fix memory allocation --- src/core/debug/trace.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c index 9389631fae..32c35e7fb3 100644 --- a/src/core/debug/trace.c +++ b/src/core/debug/trace.c @@ -115,4 +115,9 @@ void grpc_tracer_init(const char *env_var) { parse(e); gpr_free(e); } + while (tracers) { + tracer *t = tracers; + tracers = t->next; + gpr_free(t); + } } -- cgit v1.2.3 From a60a77b63f203751dd0b38d4bfa400bf72fab052 Mon Sep 17 00:00:00 2001 From: Nathaniel Manista Date: Mon, 2 Mar 2015 08:30:49 +0000 Subject: Update Python codegen to early_adopter interface With this change the Python code generated by the Python code generator uses the grpc.early_adopter package and not the grpc.framework.face package. --- src/compiler/python_generator.cc | 204 ++++++++++++++++++++---------------- test/compiler/python_plugin_test.py | 2 +- 2 files changed, 115 insertions(+), 91 deletions(-) diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc index b8d4aa509b..b217c0d911 100644 --- a/src/compiler/python_generator.cc +++ b/src/compiler/python_generator.cc @@ -237,54 +237,70 @@ bool PrintServerFactory(const ServiceDescriptor* service, Printer* out) { "Service", service->name()); { IndentScope raii_create_server_indent(out); - map> method_to_module_and_message; - out->Print("method_implementations = {\n"); + map method_description_constructors; + map> input_message_modules_and_classes; + map> output_message_modules_and_classes; for (int i = 0; i < service->method_count(); ++i) { - IndentScope raii_implementations_indent(out); - const MethodDescriptor* meth = service->method(i); - string meth_type = - string(meth->client_streaming() ? "stream" : "unary") + - string(meth->server_streaming() ? "_stream" : "_unary") + "_inline"; - out->Print("\"$Method$\": utilities.$Type$(servicer.$Method$),\n", - "Method", meth->name(), - "Type", meth_type); - // Maintain information on the input type of the service method for later - // use in constructing the service assembly's activated fore link. - const Descriptor* input_type = meth->input_type(); - pair module_and_message; - if (!GetModuleAndMessagePath(input_type, &module_and_message)) { + const MethodDescriptor* method = service->method(i); + const string method_description_constructor = + string(method->client_streaming() ? "stream_" : "unary_") + + string(method->server_streaming() ? "stream_" : "unary_") + + "service_description"; + pair input_message_module_and_class; + if (!GetModuleAndMessagePath(method->input_type(), + &input_message_module_and_class)) { return false; } - method_to_module_and_message.insert( - make_pair(meth->name(), module_and_message)); - } - out->Print("}\n"); - // Ensure that we've imported all of the relevant messages. - for (auto& meth_vals : method_to_module_and_message) { - out->Print("import $Module$\n", - "Module", meth_vals.second.first); - } - out->Print("request_deserializers = {\n"); - for (auto& meth_vals : method_to_module_and_message) { - IndentScope raii_serializers_indent(out); - string full_input_type_path = meth_vals.second.first + "." + - meth_vals.second.second; - out->Print("\"$Method$\": $Type$.FromString,\n", - "Method", meth_vals.first, - "Type", full_input_type_path); + pair output_message_module_and_class; + if (!GetModuleAndMessagePath(method->output_type(), + &output_message_module_and_class)) { + return false; + } + // Import the modules that define the messages used in RPCs. + out->Print("import $Module$\n", "Module", + input_message_module_and_class.first); + out->Print("import $Module$\n", "Module", + output_message_module_and_class.first); + method_description_constructors.insert( + make_pair(method->name(), method_description_constructor)); + input_message_modules_and_classes.insert( + make_pair(method->name(), input_message_module_and_class)); + output_message_modules_and_classes.insert( + make_pair(method->name(), output_message_module_and_class)); } - out->Print("}\n"); - out->Print("response_serializers = {\n"); - for (auto& meth_vals : method_to_module_and_message) { - IndentScope raii_serializers_indent(out); - out->Print("\"$Method$\": lambda x: x.SerializeToString(),\n", - "Method", meth_vals.first); + out->Print("method_service_descriptions = {\n"); + for (auto& name_and_description_constructor : + method_description_constructors) { + IndentScope raii_descriptions_indent(out); + const string method_name = name_and_description_constructor.first; + auto input_message_module_and_class = + input_message_modules_and_classes.find(method_name); + auto output_message_module_and_class = + output_message_modules_and_classes.find(method_name); + out->Print("\"$Method$\": utilities.$Constructor$(\n", "Method", + method_name, "Constructor", + name_and_description_constructor.second); + { + IndentScope raii_description_arguments_indent(out); + out->Print("servicer.$Method$,\n", "Method", method_name); + out->Print( + "$InputTypeModule$.$InputTypeClass$.FromString,\n", + "InputTypeModule", input_message_module_and_class->second.first, + "InputTypeClass", input_message_module_and_class->second.second); + out->Print( + "$OutputTypeModule$.$OutputTypeClass$.SerializeToString,\n", + "OutputTypeModule", output_message_module_and_class->second.first, + "OutputTypeClass", output_message_module_and_class->second.second); + } + out->Print("),\n"); } out->Print("}\n"); - out->Print("link = fore.activated_fore_link(port, request_deserializers, " - "response_serializers, root_certificates, key_chain_pairs)\n"); - out->Print("return implementations.assemble_service(" - "method_implementations, link)\n"); + // out->Print("return implementations.insecure_server(" + // "method_service_descriptions, port)\n"); + out->Print( + "return implementations.secure_server(" + "method_service_descriptions, port, root_certificates," + " key_chain_pairs)\n"); } return true; } @@ -296,66 +312,74 @@ bool PrintStubFactory(const ServiceDescriptor* service, Printer* out) { out->Print(dict, "def early_adopter_create_$Service$_stub(host, port):\n"); { IndentScope raii_create_server_indent(out); - map> method_to_module_and_message; - out->Print("method_implementations = {\n"); + map method_description_constructors; + map> input_message_modules_and_classes; + map> output_message_modules_and_classes; for (int i = 0; i < service->method_count(); ++i) { - IndentScope raii_implementations_indent(out); - const MethodDescriptor* meth = service->method(i); - string meth_type = - string(meth->client_streaming() ? "stream" : "unary") + - string(meth->server_streaming() ? "_stream" : "_unary") + "_inline"; - // TODO(atash): once the expected input to assemble_dynamic_inline_stub is - // cleaned up, change this to the expected argument's dictionary values. - out->Print("\"$Method$\": utilities.$Type$(None),\n", - "Method", meth->name(), - "Type", meth_type); - // Maintain information on the input type of the service method for later - // use in constructing the service assembly's activated fore link. - const Descriptor* output_type = meth->output_type(); - pair module_and_message; - if (!GetModuleAndMessagePath(output_type, &module_and_message)) { + const MethodDescriptor* method = service->method(i); + const string method_description_constructor = + string(method->client_streaming() ? "stream_" : "unary_") + + string(method->server_streaming() ? "stream_" : "unary_") + + "invocation_description"; + pair input_message_module_and_class; + if (!GetModuleAndMessagePath(method->input_type(), + &input_message_module_and_class)) { return false; } - method_to_module_and_message.insert( - make_pair(meth->name(), module_and_message)); - } - out->Print("}\n"); - // Ensure that we've imported all of the relevant messages. - for (auto& meth_vals : method_to_module_and_message) { - out->Print("import $Module$\n", - "Module", meth_vals.second.first); - } - out->Print("response_deserializers = {\n"); - for (auto& meth_vals : method_to_module_and_message) { - IndentScope raii_serializers_indent(out); - string full_output_type_path = meth_vals.second.first + "." + - meth_vals.second.second; - out->Print("\"$Method$\": $Type$.FromString,\n", - "Method", meth_vals.first, - "Type", full_output_type_path); + pair output_message_module_and_class; + if (!GetModuleAndMessagePath(method->output_type(), + &output_message_module_and_class)) { + return false; + } + // Import the modules that define the messages used in RPCs. + out->Print("import $Module$\n", "Module", + input_message_module_and_class.first); + out->Print("import $Module$\n", "Module", + output_message_module_and_class.first); + method_description_constructors.insert( + make_pair(method->name(), method_description_constructor)); + input_message_modules_and_classes.insert( + make_pair(method->name(), input_message_module_and_class)); + output_message_modules_and_classes.insert( + make_pair(method->name(), output_message_module_and_class)); } - out->Print("}\n"); - out->Print("request_serializers = {\n"); - for (auto& meth_vals : method_to_module_and_message) { - IndentScope raii_serializers_indent(out); - out->Print("\"$Method$\": lambda x: x.SerializeToString(),\n", - "Method", meth_vals.first); + out->Print("method_invocation_descriptions = {\n"); + for (auto& name_and_description_constructor : + method_description_constructors) { + IndentScope raii_descriptions_indent(out); + const string method_name = name_and_description_constructor.first; + auto input_message_module_and_class = + input_message_modules_and_classes.find(method_name); + auto output_message_module_and_class = + output_message_modules_and_classes.find(method_name); + out->Print("\"$Method$\": utilities.$Constructor$(\n", "Method", + method_name, "Constructor", + name_and_description_constructor.second); + { + IndentScope raii_description_arguments_indent(out); + out->Print( + "$InputTypeModule$.$InputTypeClass$.SerializeToString,\n", + "InputTypeModule", input_message_module_and_class->second.first, + "InputTypeClass", input_message_module_and_class->second.second); + out->Print( + "$OutputTypeModule$.$OutputTypeClass$.FromString,\n", + "OutputTypeModule", output_message_module_and_class->second.first, + "OutputTypeClass", output_message_module_and_class->second.second); + } + out->Print("),\n"); } out->Print("}\n"); - out->Print("link = rear.activated_rear_link(" - "host, port, request_serializers, response_deserializers)\n"); - out->Print("return implementations.assemble_dynamic_inline_stub(" - "method_implementations, link)\n"); + out->Print( + "return implementations.insecure_stub(" + "method_invocation_descriptions, host, port)\n"); } return true; } bool PrintPreamble(const FileDescriptor* file, Printer* out) { out->Print("import abc\n"); - out->Print("from grpc._adapter import fore\n"); - out->Print("from grpc._adapter import rear\n"); - out->Print("from grpc.framework.assembly import implementations\n"); - out->Print("from grpc.framework.assembly import utilities\n"); + out->Print("from grpc.early_adopter import implementations\n"); + out->Print("from grpc.early_adopter import utilities\n"); return true; } diff --git a/test/compiler/python_plugin_test.py b/test/compiler/python_plugin_test.py index 1981f49fbb..f16682862c 100644 --- a/test/compiler/python_plugin_test.py +++ b/test/compiler/python_plugin_test.py @@ -37,7 +37,7 @@ import sys import time import unittest -from grpc.framework.face import exceptions +from grpc.early_adopter import exceptions from grpc.framework.foundation import future # Identifiers of entities we expect to find in the generated module. -- cgit v1.2.3 From 748fe3ffe29a97a5f3dc1ca8daac9c9e18ac3cd0 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 07:48:50 -0800 Subject: Potential fix for stuck RPCs at shutdown --- src/core/transport/chttp2_transport.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 476cc4b226..4230b523b1 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -309,6 +309,7 @@ static void push_setting(transport *t, grpc_chttp2_setting_id id, static int prepare_callbacks(transport *t); static void run_callbacks(transport *t, const grpc_transport_callbacks *cb); +static void call_cb_closed(transport *t, const grpc_transport_callbacks *cb); static int prepare_write(transport *t); static void perform_write(transport *t, grpc_endpoint *ep); @@ -516,13 +517,13 @@ static void init_transport(transport *t, grpc_transport_setup_callback setup, static void destroy_transport(grpc_transport *gt) { transport *t = (transport *)gt; - gpr_mu_lock(&t->mu); + lock(t); t->destroying = 1; while (t->calling_back) { gpr_cv_wait(&t->cv, &t->mu, gpr_inf_future); } - t->cb = NULL; - gpr_mu_unlock(&t->mu); + drop_connection(t); + unlock(t); unref_transport(t); } @@ -772,7 +773,7 @@ static void unlock(transport *t) { } if (call_closed) { - cb->closed(t->cb_user_data, &t->base); + call_cb_closed(t, cb); } /* write some bytes if necessary */ @@ -1765,6 +1766,10 @@ static void run_callbacks(transport *t, const grpc_transport_callbacks *cb) { } } +static void call_cb_closed(transport *t, const grpc_transport_callbacks *cb) { + cb->closed(t->cb_user_data, &t->base); +} + static void add_to_pollset(grpc_transport *gt, grpc_pollset *pollset) { transport *t = (transport *)gt; lock(t); -- cgit v1.2.3 From 5cdf37eb7b76cc06d02ef9a7ba03bf40c6c372a4 Mon Sep 17 00:00:00 2001 From: Misha Brukman Date: Mon, 2 Mar 2015 01:05:22 +0000 Subject: Removed execute permissions from README files. --- src/csharp/README.md | 0 src/php/README.md | 0 src/php/tests/data/README | 0 src/python/README.md | 0 src/python/interop/interop/credentials/README | 0 src/ruby/README.md | 0 src/ruby/bin/interop/README.md | 0 src/ruby/spec/testdata/README | 0 8 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 src/csharp/README.md mode change 100755 => 100644 src/php/README.md mode change 100755 => 100644 src/php/tests/data/README mode change 100755 => 100644 src/python/README.md mode change 100755 => 100644 src/python/interop/interop/credentials/README mode change 100755 => 100644 src/ruby/README.md mode change 100755 => 100644 src/ruby/bin/interop/README.md mode change 100755 => 100644 src/ruby/spec/testdata/README diff --git a/src/csharp/README.md b/src/csharp/README.md old mode 100755 new mode 100644 diff --git a/src/php/README.md b/src/php/README.md old mode 100755 new mode 100644 diff --git a/src/php/tests/data/README b/src/php/tests/data/README old mode 100755 new mode 100644 diff --git a/src/python/README.md b/src/python/README.md old mode 100755 new mode 100644 diff --git a/src/python/interop/interop/credentials/README b/src/python/interop/interop/credentials/README old mode 100755 new mode 100644 diff --git a/src/ruby/README.md b/src/ruby/README.md old mode 100755 new mode 100644 diff --git a/src/ruby/bin/interop/README.md b/src/ruby/bin/interop/README.md old mode 100755 new mode 100644 diff --git a/src/ruby/spec/testdata/README b/src/ruby/spec/testdata/README old mode 100755 new mode 100644 -- cgit v1.2.3 From f2350183be15f1ba2260e85e7c972cbee016f0d2 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 16:39:39 +0000 Subject: Make debugging a little easier --- src/core/channel/connected_channel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/core/channel/connected_channel.c b/src/core/channel/connected_channel.c index fa18655164..62611e08f3 100644 --- a/src/core/channel/connected_channel.c +++ b/src/core/channel/connected_channel.c @@ -48,12 +48,12 @@ /* the protobuf library will (by default) start warning at 100megs */ #define DEFAULT_MAX_MESSAGE_LENGTH (100 * 1024 * 1024) -typedef struct { +typedef struct connected_channel_channel_data { grpc_transport *transport; gpr_uint32 max_message_length; } channel_data; -typedef struct { +typedef struct connected_channel_call_data { grpc_call_element *elem; grpc_stream_op_buffer outgoing_sopb; -- cgit v1.2.3 From b9eb180d4d5801c24d8578b8a0c85bfbe667c9bd Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 16:41:32 +0000 Subject: Fix some shutdown races --- src/core/transport/chttp2_transport.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 4230b523b1..1ad4819fd1 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -519,12 +519,22 @@ static void destroy_transport(grpc_transport *gt) { lock(t); t->destroying = 1; - while (t->calling_back) { + /* Wait for pending stuff to finish. + We need to be not calling back to ensure that closed() gets a chance to + trigger if needed during unlock() before we die. + We need to be not writing as cancellation finalization may produce some + callbacks that NEED to be made to close out some streams when t->writing + becomes 0. */ + while (t->calling_back || t->writing) { gpr_cv_wait(&t->cv, &t->mu, gpr_inf_future); } drop_connection(t); unlock(t); + lock(t); + GPR_ASSERT(!t->cb); + unlock(t); + unref_transport(t); } @@ -681,6 +691,7 @@ static void stream_list_add_tail(transport *t, stream *s, stream_list_id id) { } static void stream_list_join(transport *t, stream *s, stream_list_id id) { + if (id == PENDING_CALLBACKS) GPR_ASSERT(t->cb != NULL || t->error_state == ERROR_STATE_NONE); if (s->included[id]) { return; } @@ -739,7 +750,7 @@ static void unlock(transport *t) { if (perform_callbacks) { t->calling_back = 1; } - if (t->error_state == ERROR_STATE_SEEN) { + if (t->error_state == ERROR_STATE_SEEN && !t->writing) { call_closed = 1; t->calling_back = 1; t->cb = NULL; /* no more callbacks */ @@ -904,13 +915,16 @@ static void finish_write_common(transport *t, int success) { } while ((s = stream_list_remove_head(t, WRITTEN_CLOSED))) { s->sent_write_closed = 1; - stream_list_join(t, s, PENDING_CALLBACKS); + if (!s->cancelled) stream_list_join(t, s, PENDING_CALLBACKS); } t->outbuf.count = 0; t->outbuf.length = 0; /* leave the writing flag up on shutdown to prevent further writes in unlock() from starting */ t->writing = 0; + if (t->destroying) { + gpr_cv_signal(&t->cv); + } if (!t->reading) { grpc_endpoint_destroy(t->ep); t->ep = NULL; -- cgit v1.2.3 From 03dc06cb66afc6bc0c769caa687c47e3721d700b Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 09:00:21 -0800 Subject: Rename flag --- src/core/surface/init_secure.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/surface/init_secure.c b/src/core/surface/init_secure.c index 5d7e5c4dda..fa20e91583 100644 --- a/src/core/surface/init_secure.c +++ b/src/core/surface/init_secure.c @@ -38,5 +38,5 @@ void grpc_security_pre_init(void) { grpc_register_tracer("secure_endpoint", &grpc_trace_secure_endpoint); - grpc_register_tracer("ssl", &tsi_tracing_enabled); + grpc_register_tracer("transport_security", &tsi_tracing_enabled); } -- cgit v1.2.3 From 39b9a029cf6309fffbc2ccf8f4e0f6e2b74cc5e6 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 09:00:57 -0800 Subject: Capitalization --- src/core/tsi/transport_security_interface.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core/tsi/transport_security_interface.h b/src/core/tsi/transport_security_interface.h index 4e7ad00421..0edff54235 100644 --- a/src/core/tsi/transport_security_interface.h +++ b/src/core/tsi/transport_security_interface.h @@ -63,7 +63,7 @@ const char* tsi_result_to_string(tsi_result result); /* --- tsi tracing --- */ -/* set this early to avoid races */ +/* Set this early to avoid races */ extern int tsi_tracing_enabled; /* --- tsi_frame_protector object --- -- cgit v1.2.3 From 479f2b25fb577b84519631ab0b3108859cd78594 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 17:29:33 +0000 Subject: Speed up test, reduce flakiness --- test/core/end2end/no_server_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c index d953552c0a..ffc651ab05 100644 --- a/test/core/end2end/no_server_test.c +++ b/test/core/end2end/no_server_test.c @@ -41,7 +41,7 @@ static void *tag(gpr_intptr i) { return (void *)i; } int main(int argc, char **argv) { grpc_channel *chan; grpc_call *call; - gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5); + gpr_timespec deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(2); grpc_completion_queue *cq; cq_verifier *cqv; grpc_event *ev; -- cgit v1.2.3 From f5fd4ba0a910c7349c089f3d7c73f3333b015153 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 18:01:21 +0000 Subject: Completion queue cleanup Make debugging a little easier, and remove an unnecessary assert --- src/core/surface/completion_queue.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c index c4b8d60782..6a1d83ce5d 100644 --- a/src/core/surface/completion_queue.c +++ b/src/core/surface/completion_queue.c @@ -71,6 +71,7 @@ struct grpc_completion_queue { grpc_pollset pollset; /* 0 initially, 1 once we've begun shutting down */ int shutdown; + int shutdown_called; /* Head of a linked list of queued events (prev points to the last element) */ event *queue; /* Fixed size chained hash table of events for pluck() */ @@ -107,7 +108,6 @@ static event *add_locked(grpc_completion_queue *cc, grpc_completion_type type, grpc_event_finish_func on_finish, void *user_data) { event *ev = gpr_malloc(sizeof(event)); gpr_uintptr bucket = ((gpr_uintptr)tag) % NUM_TAG_BUCKETS; - GPR_ASSERT(!cc->shutdown); ev->base.type = type; ev->base.tag = tag; ev->base.call = call; @@ -150,6 +150,7 @@ static void end_op_locked(grpc_completion_queue *cc, #endif if (gpr_unref(&cc->refs)) { GPR_ASSERT(!cc->shutdown); + GPR_ASSERT(cc->shutdown_called); cc->shutdown = 1; gpr_cv_broadcast(GRPC_POLLSET_CV(&cc->pollset)); } @@ -380,6 +381,10 @@ grpc_event *grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag, /* Shutdown simply drops a ref that we reserved at creation time; if we drop to zero here, then enter shutdown mode and wake up any waiters */ void grpc_completion_queue_shutdown(grpc_completion_queue *cc) { + gpr_mu_lock(GRPC_POLLSET_MU(&cc->pollset)); + cc->shutdown_called = 1; + gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset)); + if (gpr_unref(&cc->refs)) { gpr_mu_lock(GRPC_POLLSET_MU(&cc->pollset)); GPR_ASSERT(!cc->shutdown); -- cgit v1.2.3 From 1a138c34ed6da4203317b430a126e7231abca820 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 18:01:58 +0000 Subject: Dont add new requests when shutting down --- test/core/fling/server.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/core/fling/server.c b/test/core/fling/server.c index 59c303015a..5c1ab14d03 100644 --- a/test/core/fling/server.c +++ b/test/core/fling/server.c @@ -275,7 +275,7 @@ int main(int argc, char **argv) { case FLING_SERVER_SEND_STATUS_FOR_STREAMING: /* Send status and close completed at server */ grpc_call_destroy(call); - request_call(); + if (!shutdown_started) request_call(); break; case FLING_SERVER_READ_FOR_UNARY: /* Finished payload read for unary. Start all reamaining @@ -288,7 +288,7 @@ int main(int argc, char **argv) { grpc_byte_buffer_destroy(payload_buffer); payload_buffer = NULL; grpc_call_destroy(call); - request_call(); + if (!shutdown_started) request_call(); break; } break; -- cgit v1.2.3 From 45115845cc116022647e62b2e7627b261a6c4f4b Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 10:05:10 -0800 Subject: Mark fling_*test non-flaky Also, make the flaky: tag a little more visible in build.json --- Makefile | 26 ++++++++++++++++++++++++-- build.json | 14 ++++++-------- tools/buildgen/build-cleaner.py | 1 + tools/run_tests/tests.json | 4 ++-- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index e390a3efe6..3601a4dd1c 100644 --- a/Makefile +++ b/Makefile @@ -8076,13 +8076,24 @@ $(BINDIR)/$(CONFIG)/qps_client_async: openssl_dep_error else -$(BINDIR)/$(CONFIG)/qps_client_async: $(QPS_CLIENT_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_client_async: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_client_async: $(PROTOBUF_DEP) $(QPS_CLIENT_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` $(Q) $(LDXX) $(LDFLAGS) $(QPS_CLIENT_ASYNC_OBJS) $(GTEST_LIB) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/qps_client_async endif +endif + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qpstest.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a @@ -8153,13 +8164,24 @@ $(BINDIR)/$(CONFIG)/qps_server_async: openssl_dep_error else -$(BINDIR)/$(CONFIG)/qps_server_async: $(QPS_SERVER_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +ifeq ($(NO_PROTOBUF),true) + +# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+. + +$(BINDIR)/$(CONFIG)/qps_server_async: protobuf_dep_error + +else + +$(BINDIR)/$(CONFIG)/qps_server_async: $(PROTOBUF_DEP) $(QPS_SERVER_ASYNC_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(E) "[LD] Linking $@" $(Q) mkdir -p `dirname $@` $(Q) $(LDXX) $(LDFLAGS) $(QPS_SERVER_ASYNC_OBJS) $(GTEST_LIB) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/qps_server_async endif +endif + $(OBJDIR)/$(CONFIG)/test/cpp/qps/qpstest.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a diff --git a/build.json b/build.json index 6be1d537ff..2bbb012fbd 100644 --- a/build.json +++ b/build.json @@ -572,6 +572,7 @@ }, { "name": "census_statistics_multiple_writers_circular_buffer_test", + "flaky": true, "build": "test", "language": "c", "src": [ @@ -582,8 +583,7 @@ "grpc", "gpr_test_util", "gpr" - ], - "flaky": true + ] }, { "name": "census_statistics_multiple_writers_test", @@ -629,6 +629,7 @@ }, { "name": "census_statistics_small_log_test", + "flaky": true, "build": "test", "language": "c", "src": [ @@ -639,8 +640,7 @@ "grpc", "gpr_test_util", "gpr" - ], - "flaky": true + ] }, { "name": "census_stats_store_test", @@ -868,8 +868,7 @@ "grpc", "gpr_test_util", "gpr" - ], - "flaky": true + ] }, { "name": "fling_test", @@ -883,8 +882,7 @@ "grpc", "gpr_test_util", "gpr" - ], - "flaky": true + ] }, { "name": "gen_hpack_tables", diff --git a/tools/buildgen/build-cleaner.py b/tools/buildgen/build-cleaner.py index 880f3e26a4..1d9157aad7 100755 --- a/tools/buildgen/build-cleaner.py +++ b/tools/buildgen/build-cleaner.py @@ -41,6 +41,7 @@ _TOP_LEVEL_KEYS = ['settings', 'filegroups', 'libs', 'targets'] _VERSION_KEYS = ['major', 'minor', 'micro', 'build'] _ELEM_KEYS = [ 'name', + 'flaky', 'build', 'run', 'language', diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 772856b9c7..06bf58f93e 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -102,12 +102,12 @@ "name": "fd_posix_test" }, { - "flaky": true, + "flaky": false, "language": "c", "name": "fling_stream_test" }, { - "flaky": true, + "flaky": false, "language": "c", "name": "fling_test" }, -- cgit v1.2.3 From 0af2a46d7c1e49c11d9f57c5d4655cdcc1b2d058 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 10:10:40 -0800 Subject: Add more logging --- .travis.yml | 1 - tools/run_tests/run_python.sh | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 47ab5e888d..dd5fc84fb5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,6 @@ env: matrix: - CONFIG=opt TEST=python script: - - which python - rvm use $RUBY_VERSION - gem install bundler - ./tools/run_tests/run_tests.py -l $TEST -t -j 16 -c $CONFIG -s 2.0 diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index f7438f6207..94e61f3692 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -37,6 +37,8 @@ root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate echo $PATH +ls -l python2.7_virtual_environment +ls -l python2.7_virtual_environment/bin which python2.7 # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. -- cgit v1.2.3 From fa4efbd157df67447e8c33ae86e65a02a6dabc27 Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Fri, 27 Feb 2015 16:54:09 -0800 Subject: added docker files for c# --- tools/dockerfile/grpc_csharp_mono/Dockerfile | 59 +++++++++++++++++++++++ tools/dockerfile/grpc_csharp_mono_base/Dockerfile | 53 ++++++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 tools/dockerfile/grpc_csharp_mono/Dockerfile create mode 100644 tools/dockerfile/grpc_csharp_mono_base/Dockerfile diff --git a/tools/dockerfile/grpc_csharp_mono/Dockerfile b/tools/dockerfile/grpc_csharp_mono/Dockerfile new file mode 100644 index 0000000000..d0e2d2be7e --- /dev/null +++ b/tools/dockerfile/grpc_csharp_mono/Dockerfile @@ -0,0 +1,59 @@ +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Dockerfile for gRPC C# (on Mono). +FROM grpc/csharp_mono_base + +# Pull the latest sources +RUN cd /var/local/git/grpc \ + && git pull --recurse-submodules \ + && git submodule update --init --recursive + +# Install the gRPC C# extension library +RUN make install_grpc_csharp_ext -j12 -C /var/local/git/grpc + +# TODO: download NuGet from web. The problem is there seems to be no direct link +# we could use :-) +ADD NuGet.exe NuGet.exe + +# Restore the NuGet dependencies +RUN cd /var/local/git/grpc/src/csharp && mono /NuGet.exe restore Grpc.sln + +# Build gRPC solution +RUN cd /var/local/git/grpc/src/csharp && xbuild Grpc.sln + +# Add a cacerts directory containing the Google root pem file, allowing the +# ruby client to access the production test instance +ADD cacerts cacerts + +# Add a service_account directory containing the auth creds file +ADD service_account service_account + +# TODO: add command to run the interop server +CMD ["/bin/bash", "-l"] diff --git a/tools/dockerfile/grpc_csharp_mono_base/Dockerfile b/tools/dockerfile/grpc_csharp_mono_base/Dockerfile new file mode 100644 index 0000000000..74919a7fdb --- /dev/null +++ b/tools/dockerfile/grpc_csharp_mono_base/Dockerfile @@ -0,0 +1,53 @@ +# Copyright 2015, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Base Dockerfile for gRPC C# (on Mono). +# +# Includes gRPC C# installation dependencies, things that are unlikely to vary. +FROM grpc/base + +# Update to a newer version of mono +RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF +RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list + +# Install dependencies +RUN apt-get update && apt-get install -y \ + mono-devel \ + nunit \ + nunit-console \ + monodevelop + +# Get the source from GitHub +RUN git clone git@github.com:grpc/grpc.git /var/local/git/grpc +RUN cd /var/local/git/grpc && \ + git pull --recurse-submodules && \ + git submodule update --init --recursive + +# Define the default command. +CMD ["bash","-l"] -- cgit v1.2.3 From a2af8a1a981aaa052e45f53ffa364d3dc5782b50 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 10:31:40 -0800 Subject: Changed how python versions are specified --- tools/run_tests/build_python.sh | 2 +- tools/run_tests/run_python.sh | 34 +++++++++++++++++----------------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 56761b802e..6ce2d354bf 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -34,7 +34,7 @@ set -ex cd $(dirname $0)/../.. root=`pwd` -virtualenv python2.7_virtual_environment +virtualenv -p /usr/bin/python2.7 python2.7_virtual_environment source python2.7_virtual_environment/bin/activate echo $PATH which pip diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 94e61f3692..16fee1a761 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -39,24 +39,24 @@ source python2.7_virtual_environment/bin/activate echo $PATH ls -l python2.7_virtual_environment ls -l python2.7_virtual_environment/bin -which python2.7 +which python # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. -python2.7 -B test/compiler/python_plugin_test.py --build_mode=opt -python2.7 -B -m grpc._adapter._blocking_invocation_inline_service_test -python2.7 -B -m grpc._adapter._c_test -python2.7 -B -m grpc._adapter._event_invocation_synchronous_event_service_test -python2.7 -B -m grpc._adapter._future_invocation_asynchronous_event_service_test -python2.7 -B -m grpc._adapter._links_test -python2.7 -B -m grpc._adapter._lonely_rear_link_test -python2.7 -B -m grpc._adapter._low_test -python2.7 -B -m grpc.early_adopter.implementations_test -python2.7 -B -m grpc.framework.assembly.implementations_test -python2.7 -B -m grpc.framework.base.packets.implementations_test -python2.7 -B -m grpc.framework.face.blocking_invocation_inline_service_test -python2.7 -B -m grpc.framework.face.event_invocation_synchronous_event_service_test -python2.7 -B -m grpc.framework.face.future_invocation_asynchronous_event_service_test -python2.7 -B -m grpc.framework.foundation._later_test -python2.7 -B -m grpc.framework.foundation._logging_pool_test +python -B test/compiler/python_plugin_test.py --build_mode=opt +python -B -m grpc._adapter._blocking_invocation_inline_service_test +python -B -m grpc._adapter._c_test +python -B -m grpc._adapter._event_invocation_synchronous_event_service_test +python -B -m grpc._adapter._future_invocation_asynchronous_event_service_test +python -B -m grpc._adapter._links_test +python -B -m grpc._adapter._lonely_rear_link_test +python -B -m grpc._adapter._low_test +python -B -m grpc.early_adopter.implementations_test +python -B -m grpc.framework.assembly.implementations_test +python -B -m grpc.framework.base.packets.implementations_test +python -B -m grpc.framework.face.blocking_invocation_inline_service_test +python -B -m grpc.framework.face.event_invocation_synchronous_event_service_test +python -B -m grpc.framework.face.future_invocation_asynchronous_event_service_test +python -B -m grpc.framework.foundation._later_test +python -B -m grpc.framework.foundation._logging_pool_test # TODO(nathaniel): Get tests working under 3.4 (requires 3.X-friendly protobuf) # python3.4 -B -m unittest discover -s src/python -p '*.py' -- cgit v1.2.3 From cedab130c2de43a5bde281f03ee25012c47c2034 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 10:42:24 -0800 Subject: Put tests back in a useful state --- .travis.yml | 6 ++++++ tools/run_tests/build_python.sh | 2 -- tools/run_tests/run_python.sh | 36 ++++++++++++++++-------------------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.travis.yml b/.travis.yml index dd5fc84fb5..1099aa5dfc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,6 +7,12 @@ env: global: - RUBY_VERSION=2.1 matrix: + - CONFIG=dbg TEST=c + - CONFIG=dbg TEST=c++ + - CONFIG=opt TEST=c + - CONFIG=opt TEST=c++ + - CONFIG=opt TEST=node + - CONFIG=opt TEST=ruby - CONFIG=opt TEST=python script: - rvm use $RUBY_VERSION diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 6ce2d354bf..770dc9dc72 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -36,7 +36,5 @@ cd $(dirname $0)/../.. root=`pwd` virtualenv -p /usr/bin/python2.7 python2.7_virtual_environment source python2.7_virtual_environment/bin/activate -echo $PATH -which pip pip install enum34==1.0.4 futures==2.2.0 protobuf==3.0.0-alpha-1 CFLAGS=-I$root/include LDFLAGS=-L$root/libs/opt pip install src/python/src diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 16fee1a761..58e55b0a41 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,27 +36,23 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate -echo $PATH -ls -l python2.7_virtual_environment -ls -l python2.7_virtual_environment/bin -which python # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. -python -B test/compiler/python_plugin_test.py --build_mode=opt -python -B -m grpc._adapter._blocking_invocation_inline_service_test -python -B -m grpc._adapter._c_test -python -B -m grpc._adapter._event_invocation_synchronous_event_service_test -python -B -m grpc._adapter._future_invocation_asynchronous_event_service_test -python -B -m grpc._adapter._links_test -python -B -m grpc._adapter._lonely_rear_link_test -python -B -m grpc._adapter._low_test -python -B -m grpc.early_adopter.implementations_test -python -B -m grpc.framework.assembly.implementations_test -python -B -m grpc.framework.base.packets.implementations_test -python -B -m grpc.framework.face.blocking_invocation_inline_service_test -python -B -m grpc.framework.face.event_invocation_synchronous_event_service_test -python -B -m grpc.framework.face.future_invocation_asynchronous_event_service_test -python -B -m grpc.framework.foundation._later_test -python -B -m grpc.framework.foundation._logging_pool_test +# python2.7 -B test/compiler/python_plugin_test.py --build_mode=opt +python2.7 -B -m grpc._adapter._blocking_invocation_inline_service_test +python2.7 -B -m grpc._adapter._c_test +python2.7 -B -m grpc._adapter._event_invocation_synchronous_event_service_test +python2.7 -B -m grpc._adapter._future_invocation_asynchronous_event_service_test +python2.7 -B -m grpc._adapter._links_test +python2.7 -B -m grpc._adapter._lonely_rear_link_test +python2.7 -B -m grpc._adapter._low_test +python2.7 -B -m grpc.early_adopter.implementations_test +python2.7 -B -m grpc.framework.assembly.implementations_test +python2.7 -B -m grpc.framework.base.packets.implementations_test +python2.7 -B -m grpc.framework.face.blocking_invocation_inline_service_test +python2.7 -B -m grpc.framework.face.event_invocation_synchronous_event_service_test +python2.7 -B -m grpc.framework.face.future_invocation_asynchronous_event_service_test +python2.7 -B -m grpc.framework.foundation._later_test +python2.7 -B -m grpc.framework.foundation._logging_pool_test # TODO(nathaniel): Get tests working under 3.4 (requires 3.X-friendly protobuf) # python3.4 -B -m unittest discover -s src/python -p '*.py' -- cgit v1.2.3 From bb88a048cdc5f0f7157eab9fef5168f27ade624b Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 10:56:33 -0800 Subject: Add clarifying comment --- src/core/transport/chttp2_transport.c | 6 ++++++ tools/run_tests/run_lcov.sh | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 1ad4819fd1..8d4a978963 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -531,6 +531,12 @@ static void destroy_transport(grpc_transport *gt) { drop_connection(t); unlock(t); + /* The drop_connection() above puts the transport into an error state, and + the follow-up unlock should then (as part of the cleanup work it does) + ensure that cb is NULL, and therefore not call back anything further. + This check validates this very subtle behavior. + It's shutdown path, so I don't believe an extra lock pair is going to be + problematic for performance. */ lock(t); GPR_ASSERT(!t->cb); unlock(t); diff --git a/tools/run_tests/run_lcov.sh b/tools/run_tests/run_lcov.sh index 292aec4548..69b1de6b89 100755 --- a/tools/run_tests/run_lcov.sh +++ b/tools/run_tests/run_lcov.sh @@ -35,7 +35,7 @@ out=`realpath ${1:-coverage}` root=`realpath $(dirname $0)/../..` tmp=`mktemp` cd $root -tools/run_tests/run_tests.py -c gcov -l c c++ +tools/run_tests/run_tests.py -c gcov -l c c++ || true lcov --capture --directory . --output-file $tmp genhtml $tmp --output-directory $out rm $tmp -- cgit v1.2.3 From d6fea899b8115cdbd707f88b690a35ab39b9d518 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 11:09:46 -0800 Subject: Added TODO to re-enable commented test --- tools/run_tests/run_python.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 58e55b0a41..9c7dea008d 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -38,6 +38,7 @@ export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. +# TODO(mlumish): Re-enable this test when we can install protoc # python2.7 -B test/compiler/python_plugin_test.py --build_mode=opt python2.7 -B -m grpc._adapter._blocking_invocation_inline_service_test python2.7 -B -m grpc._adapter._c_test -- cgit v1.2.3 From fa9b1a415e2daa79e5cf5050432521a4515a0938 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 2 Mar 2015 11:37:40 -0800 Subject: Fix flake --- src/core/transport/chttp2_transport.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c index 8d4a978963..6b7273e3e4 100644 --- a/src/core/transport/chttp2_transport.c +++ b/src/core/transport/chttp2_transport.c @@ -1000,7 +1000,8 @@ static void send_batch(grpc_transport *gt, grpc_stream *gs, grpc_stream_op *ops, } else { grpc_sopb_append(&t->nuke_later_sopb, ops, ops_count); } - if (is_last && s->outgoing_sopb.nops == 0 && s->read_closed) { + if (is_last && s->outgoing_sopb.nops == 0 && s->read_closed && + !s->published_close) { stream_list_join(t, s, PENDING_CALLBACKS); } -- cgit v1.2.3 From 985c5bf2e075697fc89e8cb13f10a9324ee148a9 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 11:50:23 -0800 Subject: Added logging for python tests --- .travis.yml | 6 ------ tools/run_tests/run_python.sh | 2 ++ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index de320b59a3..eeb3dc2c85 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,12 +8,6 @@ env: global: - RUBY_VERSION=2.1 matrix: - - CONFIG=dbg TEST=c - - CONFIG=dbg TEST=c++ - - CONFIG=opt TEST=c - - CONFIG=opt TEST=c++ - - CONFIG=opt TEST=node - - CONFIG=opt TEST=ruby - CONFIG=opt TEST=python script: - rvm use $RUBY_VERSION diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 9c7dea008d..d534eab7ca 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,6 +36,8 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate +ldd python2.7 +ldd python2.7_virtual_environment/local/lib/python2.7/site-packages/grpc/_adapter/_c.so # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. # TODO(mlumish): Re-enable this test when we can install protoc -- cgit v1.2.3 From fb0b99ea8fb9e41afc1a645069a43f0e51b8d563 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 11:56:00 -0800 Subject: Fixed ldd logging --- tools/run_tests/run_python.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index d534eab7ca..37ac340650 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,8 +36,8 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate -ldd python2.7 -ldd python2.7_virtual_environment/local/lib/python2.7/site-packages/grpc/_adapter/_c.so +ldd $PWD/python2.7_virtual_environment/bin/python +ldd $PWD/python2.7_virtual_environment/local/lib/python2.7/site-packages/grpc/_adapter/_c.so # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. # TODO(mlumish): Re-enable this test when we can install protoc -- cgit v1.2.3 From 238c23b453fc3abe4777d560d86d44e40bbe5e1e Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 12:13:20 -0800 Subject: Added more logging --- tools/run_tests/run_python.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 37ac340650..2df4e257bf 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -38,6 +38,8 @@ export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate ldd $PWD/python2.7_virtual_environment/bin/python ldd $PWD/python2.7_virtual_environment/local/lib/python2.7/site-packages/grpc/_adapter/_c.so +objdump -T /lib/x86_64-linux-gnu/libc.so.6 +objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep clock_gettime # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. # TODO(mlumish): Re-enable this test when we can install protoc -- cgit v1.2.3 From 4eb6e31566fa79b32e5e569fbf25a60021c5f362 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 13:07:38 -0800 Subject: Added rt link to python's setup.py --- src/python/src/setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/python/src/setup.py b/src/python/src/setup.py index 26121dcfab..dbfffa2065 100644 --- a/src/python/src/setup.py +++ b/src/python/src/setup.py @@ -49,6 +49,7 @@ _EXTENSION_INCLUDE_DIRECTORIES = ( _EXTENSION_LIBRARIES = ( 'gpr', 'grpc', + 'rt', ) _EXTENSION_MODULE = _core.Extension( -- cgit v1.2.3 From 4a171f8e2d2d108a385ec6fb9304354c7f11b743 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 13:17:53 -0800 Subject: Fixed python link order --- src/python/src/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/python/src/setup.py b/src/python/src/setup.py index dbfffa2065..cdb82a9dc3 100644 --- a/src/python/src/setup.py +++ b/src/python/src/setup.py @@ -47,8 +47,8 @@ _EXTENSION_INCLUDE_DIRECTORIES = ( ) _EXTENSION_LIBRARIES = ( - 'gpr', 'grpc', + 'gpr', 'rt', ) -- cgit v1.2.3 From 5c4052d771e4fe91eb2947a857d2a10eeae192fd Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 13:28:12 -0800 Subject: Removed logging, returned other tests to .travis.yml --- .travis.yml | 6 ++++++ tools/run_tests/build_python.sh | 1 + tools/run_tests/run_python.sh | 4 ---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index eeb3dc2c85..de320b59a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,12 @@ env: global: - RUBY_VERSION=2.1 matrix: + - CONFIG=dbg TEST=c + - CONFIG=dbg TEST=c++ + - CONFIG=opt TEST=c + - CONFIG=opt TEST=c++ + - CONFIG=opt TEST=node + - CONFIG=opt TEST=ruby - CONFIG=opt TEST=python script: - rvm use $RUBY_VERSION diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index 770dc9dc72..de633083c3 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -34,6 +34,7 @@ set -ex cd $(dirname $0)/../.. root=`pwd` +rm -rf python2.7_virtual_environment virtualenv -p /usr/bin/python2.7 python2.7_virtual_environment source python2.7_virtual_environment/bin/activate pip install enum34==1.0.4 futures==2.2.0 protobuf==3.0.0-alpha-1 diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh index 2df4e257bf..9c7dea008d 100755 --- a/tools/run_tests/run_python.sh +++ b/tools/run_tests/run_python.sh @@ -36,10 +36,6 @@ cd $(dirname $0)/../.. root=`pwd` export LD_LIBRARY_PATH=$root/libs/opt source python2.7_virtual_environment/bin/activate -ldd $PWD/python2.7_virtual_environment/bin/python -ldd $PWD/python2.7_virtual_environment/local/lib/python2.7/site-packages/grpc/_adapter/_c.so -objdump -T /lib/x86_64-linux-gnu/libc.so.6 -objdump -T /lib/x86_64-linux-gnu/libc.so.6 | grep clock_gettime # TODO(issue 215): Properly itemize these in run_tests.py so that they can be parallelized. # TODO(atash): Enable dynamic unused port discovery for this test. # TODO(mlumish): Re-enable this test when we can install protoc -- cgit v1.2.3 From b61813614345056d56effcffdf69fd8a937d3a89 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Mon, 2 Mar 2015 14:32:25 -0800 Subject: Improved Makefile protoc message --- Makefile | 136 ++++++++++++++++++++++---------------------- templates/Makefile.template | 8 +-- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/Makefile b/Makefile index 64871343e1..ace93ea84e 100644 --- a/Makefile +++ b/Makefile @@ -2115,7 +2115,7 @@ ifeq ($(INSTALL_OK),true) @echo "Your system looks ready to go." @echo else - @echo "Your system doesn't have protoc 3.0.0+ installed. While this" + @echo "We couldn't find protoc 3.0.0+ installed on your system. While this" @echo "won't prevent grpc from working, you won't be able to compile" @echo "and run any meaningful code with it." @echo @@ -2124,7 +2124,8 @@ else @echo @echo " https://github.com/google/protobuf/releases" @echo - @echo "Once you've done so, you can re-run this check by doing:" + @echo "Once you've done so, or if you think this message is in error," + @echo "you can re-run this check by doing:" @echo @echo " make verify-install" endif @@ -2203,7 +2204,7 @@ $(LIBDIR)/$(CONFIG)/libgpr.a: $(ZLIB_DEP) $(LIBGPR_OBJS) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgpr.a $(LIBGPR_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgpr.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgpr.a endif @@ -2294,7 +2295,7 @@ $(LIBDIR)/$(CONFIG)/libgpr_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGPR_TEST $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBGPR_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgpr_test_util.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgpr_test_util.a endif @@ -2590,7 +2591,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_OBJS) $(Q) ar rcs $(LIBDIR)/$(CONFIG)/libgrpc.a tmp-merge/* $(Q) rm -rf tmp-merge ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc.a endif @@ -2789,7 +2790,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_TE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBGRPC_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a endif @@ -2928,7 +2929,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a: $(ZLIB_DEP) $(LIBGRPC_UNSECURE_OBJS) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBGRPC_UNSECURE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a endif @@ -3157,7 +3158,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc++.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF_DEP) $(LI $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBGRPC++_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc++.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc++.a endif @@ -3253,7 +3254,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBUF $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBGRPC++_TEST_UTIL_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a endif @@ -3320,7 +3321,7 @@ $(LIBDIR)/$(CONFIG)/libpubsub_client_lib.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(PROTOBU $(Q) rm -f $(LIBDIR)/$(CONFIG)/libpubsub_client_lib.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libpubsub_client_lib.a $(LIBPUBSUB_CLIENT_LIB_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libpubsub_client_lib.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libpubsub_client_lib.a endif @@ -3377,7 +3378,7 @@ $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBGRPC_C $(Q) rm -f $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a $(LIBGRPC_CSHARP_EXT_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libgrpc_csharp_ext.a endif @@ -3440,7 +3441,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a: $(ZLIB_DEP) $(OPE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fake_security.a endif @@ -3486,7 +3487,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a: $(ZLIB_DEP) $(OPENSSL $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack.a endif @@ -3532,7 +3533,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds.a: $(ZLIB_DEP) $(OPE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds.a $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_UDS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_fullstack_uds.a endif @@ -3578,7 +3579,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a: $(ZLIB_DEP $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_fullstack.a endif @@ -3624,7 +3625,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a endif @@ -3670,7 +3671,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a: $(ZLIB_DEP) $(OPENS $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair.a endif @@ -3716,7 +3717,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a: $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a endif @@ -3745,7 +3746,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a: $(ZLIB_DEP) $(LIBEND2 $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept.a endif @@ -3770,7 +3771,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a: $(Z $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed.a endif @@ -3795,7 +3796,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a: $(ZLIB_DEP) $(LIBEND2 $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke.a endif @@ -3820,7 +3821,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a: $(ZLIB_DEP) $(LIBEND $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke.a endif @@ -3845,7 +3846,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a: $(ZLIB_DEP) $(LIBEND2E $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum.a endif @@ -3870,7 +3871,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a: $(ZLIB_DEP) $(LIBEN $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a $(LIBEND2END_TEST_CENSUS_SIMPLE_REQUEST_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request.a endif @@ -3895,7 +3896,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a: $(ZLIB_DEP) $(LIBEND2 $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server.a endif @@ -3920,7 +3921,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_call $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a endif @@ -3945,7 +3946,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a: $(ZLI $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags.a endif @@ -3970,7 +3971,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a: $(ZLIB_DEP) $(LIBEND2END_TEST $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a $(LIBEND2END_TEST_EMPTY_BATCH_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_empty_batch.a endif @@ -3995,7 +3996,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a: $(ZLIB_DEP) $(LI $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a $(LIBEND2END_TEST_GRACEFUL_SERVER_SHUTDOWN_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown.a endif @@ -4020,7 +4021,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a: $(ZLIB_DEP) $(LIBEND $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request.a endif @@ -4045,7 +4046,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a: $(ZLIB_DEP) $(LIBE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams.a endif @@ -4070,7 +4071,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a: $(ZLIB_DEP) $(LIBEND2END_TEST_NO_OP $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a $(LIBEND2END_TEST_NO_OP_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_no_op.a endif @@ -4095,7 +4096,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a: $(ZLIB_DEP) $(LIBEND2 $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming.a endif @@ -4120,7 +4121,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_pa $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload.a endif @@ -4145,7 +4146,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload.a endif @@ -4170,7 +4171,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a: $(ZLIB_DEP) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload.a endif @@ -4195,7 +4196,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a: $(ZLIB_DEP) $ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a $(LIBEND2END_TEST_REQUEST_WITH_LARGE_METADATA_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata.a endif @@ -4220,7 +4221,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a: $(ZLIB_DEP) $(LIBEND $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a $(LIBEND2END_TEST_REQUEST_WITH_PAYLOAD_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload.a endif @@ -4245,7 +4246,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a: $(ZLIB_DEP) $(LIBE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request.a endif @@ -4270,7 +4271,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a: $(ZLIB_DEP) $(LIBEND2END_T $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request.a endif @@ -4295,7 +4296,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress.a: $(ZLIB_DEP) $(LIBEND2END_TE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress.a $(LIBEND2END_TEST_THREAD_STRESS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress.a endif @@ -4320,7 +4321,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read.a: $(ZLI $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read.a $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read.a endif @@ -4345,7 +4346,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_legacy.a: $(ZLIB_DEP) $( $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_legacy.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_legacy.a endif @@ -4370,7 +4371,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed_legacy $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed_legacy.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_accept_and_writes_closed_legacy.a endif @@ -4395,7 +4396,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke_legacy.a: $(ZLIB_DEP) $( $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke_legacy.a $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_after_invoke_legacy.a endif @@ -4420,7 +4421,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke_legacy.a: $(ZLIB_DEP) $ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke_legacy.a $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_before_invoke_legacy.a endif @@ -4445,7 +4446,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum_legacy.a: $(ZLIB_DEP) $(L $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum_legacy.a $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_cancel_in_a_vacuum_legacy.a endif @@ -4470,7 +4471,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request_legacy.a: $(ZLIB_DEP) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request_legacy.a $(LIBEND2END_TEST_CENSUS_SIMPLE_REQUEST_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_census_simple_request_legacy.a endif @@ -4495,7 +4496,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server_legacy.a: $(ZLIB_DEP) $( $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server_legacy.a $(LIBEND2END_TEST_DISAPPEARING_SERVER_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_disappearing_server_legacy.a endif @@ -4520,7 +4521,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_call $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls_legacy.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_inflight_calls_legacy.a endif @@ -4545,7 +4546,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags_legacy.a $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags_legacy.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_early_server_shutdown_finishes_tags_legacy.a endif @@ -4570,7 +4571,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown_legacy.a: $(ZLIB_DE $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown_legacy.a $(LIBEND2END_TEST_GRACEFUL_SERVER_SHUTDOWN_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_graceful_server_shutdown_legacy.a endif @@ -4595,7 +4596,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request_legacy.a: $(ZLIB_DEP) $ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request_legacy.a $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_invoke_large_request_legacy.a endif @@ -4620,7 +4621,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams_legacy.a: $(ZLIB_DEP) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams_legacy.a $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_max_concurrent_streams_legacy.a endif @@ -4645,7 +4646,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_no_op_legacy.a: $(ZLIB_DEP) $(LIBEND2END_TES $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_no_op_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_no_op_legacy.a $(LIBEND2END_TEST_NO_OP_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_no_op_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_no_op_legacy.a endif @@ -4670,7 +4671,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming_legacy.a: $(ZLIB_DEP) $( $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming_legacy.a $(LIBEND2END_TEST_PING_PONG_STREAMING_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_ping_pong_streaming_legacy.a endif @@ -4695,7 +4696,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_pa $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload_legacy.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_binary_metadata_and_payload_legacy.a endif @@ -4720,7 +4721,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload_l $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload_legacy.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_metadata_and_payload_legacy.a endif @@ -4745,7 +4746,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_legacy.a: $(ZL $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_legacy.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_payload_legacy.a endif @@ -4770,7 +4771,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload_legacy.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_response_with_trailing_metadata_and_payload_legacy.a endif @@ -4795,7 +4796,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata_legacy.a: $(ZLIB $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata_legacy.a $(LIBEND2END_TEST_REQUEST_WITH_LARGE_METADATA_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_large_metadata_legacy.a endif @@ -4820,7 +4821,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload_legacy.a: $(ZLIB_DEP) $ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload_legacy.a $(LIBEND2END_TEST_REQUEST_WITH_PAYLOAD_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_request_with_payload_legacy.a endif @@ -4845,7 +4846,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request_legacy.a: $(ZLIB_DEP) $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request_legacy.a $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_delayed_request_legacy.a endif @@ -4870,7 +4871,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_legacy.a: $(ZLIB_DEP) $(LIBEN $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_legacy.a $(LIBEND2END_TEST_SIMPLE_REQUEST_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_simple_request_legacy.a endif @@ -4895,7 +4896,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress_legacy.a: $(ZLIB_DEP) $(LIBEND $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress_legacy.a $(LIBEND2END_TEST_THREAD_STRESS_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_thread_stress_legacy.a endif @@ -4920,7 +4921,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read_legacy.a $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read_legacy.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read_legacy.a $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_LEGACY_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read_legacy.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_test_writes_done_hangs_with_pending_read_legacy.a endif @@ -4966,7 +4967,7 @@ $(LIBDIR)/$(CONFIG)/libend2end_certs.a: $(ZLIB_DEP) $(OPENSSL_DEP) $(LIBEND2END_ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(Q) $(AR) rcs $(LIBDIR)/$(CONFIG)/libend2end_certs.a $(LIBEND2END_CERTS_OBJS) ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_certs.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/libend2end_certs.a endif @@ -18037,4 +18038,3 @@ endif .PHONY: all strip tools dep_error openssl_dep_error openssl_dep_message git_update stop buildtests buildtests_c buildtests_cxx test test_c test_cxx install install_c install_cxx install-headers install-headers_c install-headers_cxx install-shared install-shared_c install-shared_cxx install-static install-static_c install-static_cxx strip strip-shared strip-static strip_c strip-shared_c strip-static_c strip_cxx strip-shared_cxx strip-static_cxx dep_c dep_cxx bins_dep_c bins_dep_cxx clean - diff --git a/templates/Makefile.template b/templates/Makefile.template index 2e50e5d41e..24fd450dff 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -859,7 +859,7 @@ ifeq ($(INSTALL_OK),true) @echo "Your system looks ready to go." @echo else - @echo "Your system doesn't have protoc 3.0.0+ installed. While this" + @echo "We couldn't find protoc 3.0.0+ installed on your system. While this" @echo "won't prevent grpc from working, you won't be able to compile" @echo "and run any meaningful code with it." @echo @@ -868,7 +868,8 @@ else @echo @echo " https://github.com/google/protobuf/releases" @echo - @echo "Once you've done so, you can re-run this check by doing:" + @echo "Once you've done so, or if you think this message is in error," + @echo "you can re-run this check by doing:" @echo @echo " make verify-install" endif @@ -1003,7 +1004,7 @@ $(LIBDIR)/$(CONFIG)/lib${lib.name}.a: $(ZLIB_DEP)\ % endif % endif ifeq ($(SYSTEM),Darwin) - $(Q) ranlib $(LIBDIR)/$(CONFIG)/lib${lib.name}.a + $(Q) ranlib $(LIBDIR)/$(CONFIG)/lib${lib.name}.a endif <% @@ -1222,4 +1223,3 @@ strip_c strip-shared_c strip-static_c \ strip_cxx strip-shared_cxx strip-static_cxx \ dep_c dep_cxx bins_dep_c bins_dep_cxx \ clean - -- cgit v1.2.3