Upgraded grpc to 1.11.1 (#450)/

Upgraded grpc from 1.10.0 to 1.11.1 as the newer version has support for s390x (big-endian) machines.
diff --git a/3rdparty/cmake/Versions.cmake b/3rdparty/cmake/Versions.cmake
index eafe255..12724d3 100644
--- a/3rdparty/cmake/Versions.cmake
+++ b/3rdparty/cmake/Versions.cmake
@@ -12,8 +12,8 @@
 set(ELFIO_HASH              "SHA256=964BE1D401F98FA7A1242BCF048DF32B7D56DBAAAE5D02834900499073AC2E95")
 set(GOOGLETEST_VERSION      "1.8.0")
 set(GOOGLETEST_HASH         "SHA256=58A6F4277CA2BC8565222B3BBD58A177609E9C488E8A72649359BA51450DB7D8")
-set(GRPC_VERSION            "1.10.0")
-set(GRPC_HASH               "SHA256=F52F979FA8EB8D4F74E192D32C97915D124D6531B6D1300A158CDFBABBACA04A")
+set(GRPC_VERSION            "1.11.1")
+set(GRPC_HASH               "SHA256=0B1228672EC34606D233149621986C2BBB71247CE3FEBD82C7D1BF6B5A8EBA86")
 set(HTTP_PARSER_VERSION     "2.6.2")
 set(HTTP_PARSER_HASH        "SHA256=80FFFC3B64EF6968CECDD4B299A96986007DFF4BD12AE6C58CBCB506959B90AD")
 set(JEMALLOC_VERSION        "5.0.1")
diff --git a/3rdparty/grpc-1.10.0.patch b/3rdparty/grpc-1.10.0.patch
deleted file mode 100644
index f8d14f6..0000000
--- a/3rdparty/grpc-1.10.0.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-From 90869cffbd0cd05ee663e1b81cda169dd40cdf22 Mon Sep 17 00:00:00 2001
-From: Chun-Hung Hsiao <chhsiao@mesosphere.io>
-Date: Thu, 19 Apr 2018 14:15:10 -0700
-Subject: [PATCH] Fixed undefined `_WIN32_WINNT` for Windows compilation.
-
-
-diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
-index 819d17ce2a..77b587dac3 100644
---- a/include/grpc/impl/codegen/port_platform.h
-+++ b/include/grpc/impl/codegen/port_platform.h
-@@ -39,6 +39,8 @@
- #define NOMINMAX
- #endif /* NOMINMAX */
- 
-+#include <windows.h>
-+
- #ifndef _WIN32_WINNT
- #error \
-     "Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
-@@ -49,8 +51,6 @@
- #endif /* _WIN32_WINNT < 0x0600 */
- #endif /* defined(_WIN32_WINNT) */
- 
--#include <windows.h>
--
- #ifdef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
- #undef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
- #undef WIN32_LEAN_AND_MEAN
--- 
-2.17.2 (Apple Git-113)
-
-
-From 6531532de6a35ed8e00e24d3b60e88fd90d01335 Mon Sep 17 00:00:00 2001
-From: Chun-Hung Hsiao <chhsiao@mesosphere.io>
-Date: Fri, 10 Aug 2018 14:00:03 -0700
-Subject: [PATCH] Removed unnecessary dependencies of `codegen_init.o` for
- unsecure build.
-
-`codegen_init.cc` is listed in `LIBGRPC++_UNSECURE_SRC`, which are
-compiled without SSL, but in `Makefile` lists SSL-required libraries as
-its dependencies. Since the file itself does not use any bits from those
-libraries, it is safe to remove those dependencies.
-
-diff --git a/Makefile b/Makefile
-index 8bab9c3afd..9f8261f0a4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -15461,8 +15461,6 @@ $(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o:  $(LIBDIR)/$(CONFIG)/libgrpc
- 
- $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
- 
--$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
--
- deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep)
- 
- ifneq ($(NO_SECURE),true)
--- 
-2.17.2 (Apple Git-113)
-
-
-From 5c13ad2a3df1108184c716379818eab6fc0ba72d Mon Sep 17 00:00:00 2001
-From: Chun-Hung Hsiao <chhsiao@mesosphere.io>
-Date: Thu, 10 Jan 2019 14:26:11 -0800
-Subject: [PATCH] CMake: Automatic fallbacking on system's OpenSSL if it only
- has NPN.
-
-Since ALPN is not supported on some old systems that come with OpenSSL
-version 1.0.1 or older, gRPC needs to fall back to NPN when being built
-with these systems' OpenSSL.
-
-diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
-index 83f642a675..8e2253fb39 100644
---- a/cmake/ssl.cmake
-+++ b/cmake/ssl.cmake
-@@ -36,6 +36,10 @@ elseif("${gRPC_SSL_PROVIDER}" STREQUAL "package")
-   # project itself does not provide installation support in its CMakeLists.txt
-   # See https://cmake.org/cmake/help/v3.6/module/FindOpenSSL.html
-   find_package(OpenSSL REQUIRED)
-+
-+  if (OPENSSL_VERSION VERSION_LESS "1.0.2")
-+    add_definitions(-DTSI_OPENSSL_ALPN_SUPPORT=0)
-+  endif()
-   
-   if(TARGET OpenSSL::SSL)
-     set(_gRPC_SSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
--- 
-2.17.2 (Apple Git-113)
-
-From 46911818fec7886f0057b321e387c7c5a67a76b1 Mon Sep 17 00:00:00 2001
-From: Juanli Shen <juanlishen@google.com>
-Date: Fri, 23 Aug 2019 08:46:09 -0700
-Subject: [PATCH 1/2] Fix gettid() naming conflict
-
----
- src/core/lib/gpr/log_linux.cc | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
-index d743eedf38..3c6a08839d 100644
---- a/src/core/lib/gpr/log_linux.cc
-+++ b/src/core/lib/gpr/log_linux.cc
-@@ -39,7 +39,9 @@
- #include <time.h>
- #include <unistd.h>
- 
--static long gettid(void) { return syscall(__NR_gettid); }
-+// Not naming it as gettid() to avoid duplicate declarations when complied with
-+// GCC 9.1.
-+static long local_gettid(void) { return syscall(__NR_gettid); }
- 
- void gpr_log(const char* file, int line, gpr_log_severity severity,
-              const char* format, ...) {
-@@ -65,7 +67,7 @@ void gpr_default_log(gpr_log_func_args* args) {
-   gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
-   struct tm tm;
-   static __thread long tid = 0;
--  if (tid == 0) tid = gettid();
-+  if (tid == 0) tid = local_gettid();
- 
-   timer = static_cast<time_t>(now.tv_sec);
-   final_slash = strrchr(args->file, '/');
--- 
-2.29.2
-
-From 8626f961aeea5770b013214c26218e806051b598 Mon Sep 17 00:00:00 2001
-From: Benjamin Peterson <benjamin@dropbox.com>
-Date: Fri, 3 May 2019 08:11:00 -0700
-Subject: [PATCH 2/2] Rename gettid() functions.
-
-glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts.
----
- src/core/lib/gpr/log_linux.cc          | 6 ++----
- src/core/lib/gpr/log_posix.cc          | 4 ++--
- src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++--
- 3 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
-index 3c6a08839d..b7cf86cd9b 100644
---- a/src/core/lib/gpr/log_linux.cc
-+++ b/src/core/lib/gpr/log_linux.cc
-@@ -39,9 +39,7 @@
- #include <time.h>
- #include <unistd.h>
- 
--// Not naming it as gettid() to avoid duplicate declarations when complied with
--// GCC 9.1.
--static long local_gettid(void) { return syscall(__NR_gettid); }
-+static long sys_gettid(void) { return syscall(__NR_gettid); }
- 
- void gpr_log(const char* file, int line, gpr_log_severity severity,
-              const char* format, ...) {
-@@ -67,7 +65,7 @@ void gpr_default_log(gpr_log_func_args* args) {
-   gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
-   struct tm tm;
-   static __thread long tid = 0;
--  if (tid == 0) tid = local_gettid();
-+  if (tid == 0) tid = sys_gettid();
- 
-   timer = static_cast<time_t>(now.tv_sec);
-   final_slash = strrchr(args->file, '/');
-diff --git a/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
-index 6f93cdefcd..39d943964f 100644
---- a/src/core/lib/gpr/log_posix.cc
-+++ b/src/core/lib/gpr/log_posix.cc
-@@ -30,7 +30,7 @@
- #include <string.h>
- #include <time.h>
- 
--static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
-+static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
- 
- void gpr_log(const char* file, int line, gpr_log_severity severity,
-              const char* format, ...) {
-@@ -81,7 +81,7 @@ void gpr_default_log(gpr_log_func_args* args) {
-   char* prefix;
-   gpr_asprintf(&prefix, "%s%s.%09d %7tu %s:%d]",
-                gpr_log_severity_string(args->severity), time_buffer,
--               (int)(now.tv_nsec), gettid(), display_file, args->line);
-+               (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
- 
-   fprintf(stderr, "%-70s %s\n", prefix, args->message);
-   gpr_free(prefix);
-diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
-index bb7622c4cc..a28d356835 100644
---- a/src/core/lib/iomgr/ev_epollex_linux.cc
-+++ b/src/core/lib/iomgr/ev_epollex_linux.cc
-@@ -981,7 +981,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
- }
- 
- #ifndef NDEBUG
--static long gettid(void) { return syscall(__NR_gettid); }
-+static long sys_gettid(void) { return syscall(__NR_gettid); }
- #endif
- 
- /* pollset->mu lock must be held by the caller before calling this.
-@@ -1001,7 +1001,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
- #define WORKER_PTR (&worker)
- #endif
- #ifndef NDEBUG
--  WORKER_PTR->originator = gettid();
-+  WORKER_PTR->originator = sys_gettid();
- #endif
-   if (grpc_polling_trace.enabled()) {
-     gpr_log(GPR_DEBUG,
--- 
-2.29.2
-
diff --git a/3rdparty/grpc-1.10.0.tar.gz b/3rdparty/grpc-1.10.0.tar.gz
deleted file mode 100644
index e6ae8d4..0000000
--- a/3rdparty/grpc-1.10.0.tar.gz
+++ /dev/null
Binary files differ
diff --git a/3rdparty/grpc-1.11.1.patch b/3rdparty/grpc-1.11.1.patch
new file mode 100644
index 0000000..3f2e1e4
--- /dev/null
+++ b/3rdparty/grpc-1.11.1.patch
@@ -0,0 +1,118 @@
+diff --git a/Makefile b/Makefile
+index fc4924fc7d..ed9b845581 100644
+--- a/Makefile
++++ b/Makefile
+@@ -16592,8 +16592,6 @@ $(OBJDIR)/$(CONFIG)/src/proto/grpc/testing/stats.o:  $(LIBDIR)/$(CONFIG)/libgrpc
+ 
+ $(OBJDIR)/$(CONFIG)/test/cpp/codegen/codegen_test_minimal.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ 
+-$(OBJDIR)/$(CONFIG)/src/cpp/codegen/codegen_init.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_core_stats.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr.a
+-
+ deps_codegen_test_minimal: $(CODEGEN_TEST_MINIMAL_OBJS:.o=.dep)
+ 
+ ifneq ($(NO_SECURE),true)
+diff --git a/cmake/ssl.cmake b/cmake/ssl.cmake
+index 83f642a675..007ce99796 100644
+--- a/cmake/ssl.cmake
++++ b/cmake/ssl.cmake
+@@ -36,7 +36,11 @@ elseif("${gRPC_SSL_PROVIDER}" STREQUAL "package")
+   # project itself does not provide installation support in its CMakeLists.txt
+   # See https://cmake.org/cmake/help/v3.6/module/FindOpenSSL.html
+   find_package(OpenSSL REQUIRED)
+-  
++
++  if (OPENSSL_VERSION VERSION_LESS "1.0.2")
++    add_definitions(-DTSI_OPENSSL_ALPN_SUPPORT=0)
++  endif()
++
+   if(TARGET OpenSSL::SSL)
+     set(_gRPC_SSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
+   else()
+diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
+index 819d17ce2a..77b587dac3 100644
+--- a/include/grpc/impl/codegen/port_platform.h
++++ b/include/grpc/impl/codegen/port_platform.h
+@@ -39,6 +39,8 @@
+ #define NOMINMAX
+ #endif /* NOMINMAX */
+ 
++#include <windows.h>
++
+ #ifndef _WIN32_WINNT
+ #error \
+     "Please compile grpc with _WIN32_WINNT of at least 0x600 (aka Windows Vista)"
+@@ -49,8 +51,6 @@
+ #endif /* _WIN32_WINNT < 0x0600 */
+ #endif /* defined(_WIN32_WINNT) */
+ 
+-#include <windows.h>
+-
+ #ifdef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
+ #undef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED
+ #undef WIN32_LEAN_AND_MEAN
+diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc
+index e4417d9d5d..117502da48 100644
+--- a/src/core/lib/gpr/log_linux.cc
++++ b/src/core/lib/gpr/log_linux.cc
+@@ -40,7 +40,7 @@
+ #include <time.h>
+ #include <unistd.h>
+ 
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+ 
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+              const char* format, ...) {
+@@ -66,7 +66,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+   gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME);
+   struct tm tm;
+   static __thread long tid = 0;
+-  if (tid == 0) tid = gettid();
++  if (tid == 0) tid = sys_gettid();
+ 
+   timer = static_cast<time_t>(now.tv_sec);
+   final_slash = strrchr(args->file, '/');
+diff --git a/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc
+index 6f93cdefcd..39d943964f 100644
+--- a/src/core/lib/gpr/log_posix.cc
++++ b/src/core/lib/gpr/log_posix.cc
+@@ -30,7 +30,7 @@
+ #include <string.h>
+ #include <time.h>
+ 
+-static intptr_t gettid(void) { return (intptr_t)pthread_self(); }
++static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); }
+ 
+ void gpr_log(const char* file, int line, gpr_log_severity severity,
+              const char* format, ...) {
+@@ -81,7 +81,7 @@ void gpr_default_log(gpr_log_func_args* args) {
+   char* prefix;
+   gpr_asprintf(&prefix, "%s%s.%09d %7tu %s:%d]",
+                gpr_log_severity_string(args->severity), time_buffer,
+-               (int)(now.tv_nsec), gettid(), display_file, args->line);
++               (int)(now.tv_nsec), sys_gettid(), display_file, args->line);
+ 
+   fprintf(stderr, "%-70s %s\n", prefix, args->message);
+   gpr_free(prefix);
+diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc
+index 0ef7c03056..5d0fbbacd7 100644
+--- a/src/core/lib/iomgr/ev_epollex_linux.cc
++++ b/src/core/lib/iomgr/ev_epollex_linux.cc
+@@ -967,7 +967,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker,
+ }
+ 
+ #ifndef NDEBUG
+-static long gettid(void) { return syscall(__NR_gettid); }
++static long sys_gettid(void) { return syscall(__NR_gettid); }
+ #endif
+ 
+ /* pollset->mu lock must be held by the caller before calling this.
+@@ -987,7 +987,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset,
+ #define WORKER_PTR (&worker)
+ #endif
+ #ifndef NDEBUG
+-  WORKER_PTR->originator = gettid();
++  WORKER_PTR->originator = sys_gettid();
+ #endif
+   if (grpc_polling_trace.enabled()) {
+     gpr_log(GPR_DEBUG,
diff --git a/3rdparty/grpc-1.11.1.tar.gz b/3rdparty/grpc-1.11.1.tar.gz
new file mode 100644
index 0000000..63a22c4
--- /dev/null
+++ b/3rdparty/grpc-1.11.1.tar.gz
Binary files differ
diff --git a/3rdparty/versions.am b/3rdparty/versions.am
index 5b90be8..3e62a71 100644
--- a/3rdparty/versions.am
+++ b/3rdparty/versions.am
@@ -27,7 +27,7 @@
 GLOG_VERSION = 0.4.0
 GOOGLETEST_VERSION = 1.8.0
 GPERFTOOLS_VERSION = 2.5
-GRPC_VERSION = 1.10.0
+GRPC_VERSION = 1.11.1
 HTTP_PARSER_VERSION = 2.6.2
 JEMALLOC_VERSION = 5.0.1
 LEVELDB_VERSION = 1.19
diff --git a/src/python/native_common/ext_modules.py.in b/src/python/native_common/ext_modules.py.in
index 62e32a6..c8b436b 100644
--- a/src/python/native_common/ext_modules.py.in
+++ b/src/python/native_common/ext_modules.py.in
@@ -237,7 +237,7 @@
 
 
     # We link different grpc library variants based on whether SSL is enabled.
-    grpc = os.path.join('3rdparty', 'grpc-1.10.0')
+    grpc = os.path.join('3rdparty', 'grpc-1.11.1')
     grpc_variant = '_unsecure' if '@ENABLE_SSL_TRUE@' == '#' else ''
     libgrpcpp = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc++%s.a' % grpc_variant)
     libgrpc = os.path.join(abs_top_builddir, grpc, 'libs', 'opt', 'libgrpc%s.a' % grpc_variant)