Merge pull request #3862 from jcanizales/fix-release-conflict

Fix release conflict for release-0_11
diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
index 68279a2..e58528f 100644
--- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
@@ -210,7 +210,7 @@
             });
 
             var callDetails = helper.CreateUnaryCall();
-            BenchmarkUtil.RunBenchmark(100, 100,
+            BenchmarkUtil.RunBenchmark(1, 10,
                                        () => { Calls.BlockingUnaryCall(callDetails, "ABC"); });
         }
             
diff --git a/src/ruby/.rubocop.yml b/src/ruby/.rubocop.yml
index 312bdca..dd57ab6 100644
--- a/src/ruby/.rubocop.yml
+++ b/src/ruby/.rubocop.yml
@@ -9,3 +9,9 @@
     - 'bin/math_services.rb'
     - 'pb/grpc/health/v1alpha/*'
     - 'pb/test/**/*'
+
+Metrics/CyclomaticComplexity:
+  Max: 8
+
+Metrics/PerceivedComplexity:
+  Max: 8
diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb
index 3740ac5..228c500 100644
--- a/src/ruby/lib/grpc/generic/rpc_server.rb
+++ b/src/ruby/lib/grpc/generic/rpc_server.rb
@@ -416,6 +416,8 @@
       until stopped?
         begin
           an_rpc = @server.request_call(@cq, loop_tag, INFINITE_FUTURE)
+          break if (!an_rpc.nil?) && an_rpc.call.nil?
+
           c = new_active_server_call(an_rpc)
           unless c.nil?
             mth = an_rpc.method.to_sym
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index a4b6a74..cecb73d 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -230,10 +230,7 @@
     return _SSL_CERT_ENV
 
   def global_env(self):
-    # need to manually copy to each jenkins machine if we run into github
-    # rate limit when running `composer install`
-    return {"BUILD_INTEROP_DOCKER_EXTRA_ARGS":
-            "-v /var/local/.composer/auth.json:/root/.composer/auth.json:ro"}
+    return {}
 
   def __str__(self):
     return 'php'
@@ -475,16 +472,21 @@
 
 def build_interop_image_jobspec(language, tag=None):
   """Creates jobspec for building interop docker image for a language"""
-  environ = language.global_env()
   if not tag:
     tag = 'grpc_interop_%s:%s' % (language.safename, uuid.uuid4())
-  environ['INTEROP_IMAGE'] = tag
-  environ['BASE_NAME'] = 'grpc_interop_%s' % language.safename
+  env = {'INTEROP_IMAGE': tag,
+         'BASE_NAME': 'grpc_interop_%s' % language.safename}
   if not args.travis:
-    environ['TTY_FLAG'] = '-t'
+    env['TTY_FLAG'] = '-t'
+  # This env variable is used to get around the github rate limit
+  # error when running the PHP `composer install` command
+  # TODO(stanleycheung): find a more elegant way to do this
+  if language.safename == 'php' and os.path.exists('/var/local/.composer/auth.json'):
+    env['BUILD_INTEROP_DOCKER_EXTRA_ARGS'] = \
+      "-v /var/local/.composer/auth.json:/root/.composer/auth.json:ro"
   build_job = jobset.JobSpec(
           cmdline=['tools/jenkins/build_interop_image.sh'],
-          environ=environ,
+          environ=env,
           shortname="build_docker_%s" % (language),
           timeout_seconds=30*60)
   build_job.tag = tag
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index 85e3a38..d0a74e7 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -40,13 +40,14 @@
 if [ "$CONFIG" = "gcov" ]
 then
   ./node_modules/.bin/istanbul cover --dir reports/node_coverage \
-    ./node_modules/.bin/_mocha -- --timeout 8000 src/node/test
+    -x **/interop/* ./node_modules/.bin/_mocha -- --timeout 8000 src/node/test
   cd build
   gcov Release/obj.target/grpc/ext/*.o
   lcov --base-directory . --directory . -c -o coverage.info
+  lcov -e coverage.info '**/src/node/ext/*' -o coverage.info
   genhtml -o ../reports/node_ext_coverage --num-spaces 2 \
     -t 'Node gRPC test coverage' coverage.info --rc genhtml_hi_limit=95 \
-    --rc genhtml_med_limit=80
+    --rc genhtml_med_limit=80 --no-prefix
   echo '<html><head><meta http-equiv="refresh" content="0;URL=lcov-report/index.html"></head></html>' > \
     ../reports/node_coverage/index.html
 else