grpc 1.8.0 → 1.8.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of grpc might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74a77c78abce7257fdaa25cfb65ecb7f83b27e4ad28b4b666a4feed7e4b27c08
4
- data.tar.gz: 85b19a9083cc8cfd345983e005fcf0ce781521e0ead7b17597d1ab83fbcfb066
3
+ metadata.gz: '0608a89917ee43dca921f344a0e999259a4359f188cae5bf21f09f08298d66da'
4
+ data.tar.gz: 8c5a07aef607e15c825f21ff993e761542c27bc5e2539945a78e20617f6bfe36
5
5
  SHA512:
6
- metadata.gz: 4d3bc3185b76aeed824be5e086b60f0f66dda03211d601daf5067eb48ccbb69807eef5fd3429fed4ccbb8e7ef0cc672bc143faabdf9578bcba5fa2ff24edac98
7
- data.tar.gz: 1f22737f1fbd9ae2c9d84c37107811f4e89301866e109b17bafc0487a8dbd9a7c59f821be45ef689a04bd1edc69718d897b9a7f55b1ba167aea147903b8207b2
6
+ metadata.gz: '09c712f7d2136cf6582b103412c93726f36de3d2ad8a52f14432be730b0edfc1891cc3920d8375a64143304480a7459d04b988d360dade90dbdc0980ef94070e'
7
+ data.tar.gz: 92d5ff1d379b7caf349974f4665e4b489f4cb2d7d380d95fc5fab5f2eb1b09f414741754215966afd7f3d214c61b9ed6fce386e7fbe262854113548ff0034505
data/Makefile CHANGED
@@ -412,8 +412,8 @@ Q = @
412
412
  endif
413
413
 
414
414
  CORE_VERSION = 5.0.0
415
- CPP_VERSION = 1.8.0
416
- CSHARP_VERSION = 1.8.0
415
+ CPP_VERSION = 1.8.3
416
+ CSHARP_VERSION = 1.8.3
417
417
 
418
418
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
419
419
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -1258,8 +1258,6 @@ const grpc_event_engine_vtable* grpc_init_epoll1_linux(bool explicit_request) {
1258
1258
  /* If GRPC_LINUX_EPOLL is not defined, it means epoll is not available. Return
1259
1259
  * NULL */
1260
1260
  const grpc_event_engine_vtable* grpc_init_epoll1_linux(bool explicit_request) {
1261
- gpr_log(GPR_ERROR,
1262
- "Skipping epoll1 becuase GRPC_LINUX_EPOLL is not defined.");
1263
1261
  return NULL;
1264
1262
  }
1265
1263
  #endif /* defined(GRPC_POSIX_SOCKET) */
@@ -1479,8 +1479,6 @@ const grpc_event_engine_vtable* grpc_init_epollex_linux(
1479
1479
  * NULL */
1480
1480
  const grpc_event_engine_vtable* grpc_init_epollex_linux(
1481
1481
  bool explicitly_requested) {
1482
- gpr_log(GPR_ERROR,
1483
- "Skipping epollex becuase GRPC_LINUX_EPOLL is not defined.");
1484
1482
  return NULL;
1485
1483
  }
1486
1484
  #endif /* defined(GRPC_POSIX_SOCKET) */
@@ -1758,8 +1758,6 @@ const grpc_event_engine_vtable* grpc_init_epollsig_linux(
1758
1758
  * NULL */
1759
1759
  const grpc_event_engine_vtable* grpc_init_epollsig_linux(
1760
1760
  bool explicit_request) {
1761
- gpr_log(GPR_ERROR,
1762
- "Skipping epollsig becuase GRPC_LINUX_EPOLL is not defined.");
1763
1761
  return NULL;
1764
1762
  }
1765
1763
  #endif /* defined(GRPC_POSIX_SOCKET) */
@@ -71,6 +71,7 @@ struct grpc_fd {
71
71
  int shutdown;
72
72
  int closed;
73
73
  int released;
74
+ gpr_atm pollhup;
74
75
  grpc_error* shutdown_error;
75
76
 
76
77
  /* The watcher list.
@@ -339,6 +340,7 @@ static grpc_fd* fd_create(int fd, const char* name) {
339
340
  r->on_done_closure = nullptr;
340
341
  r->closed = 0;
341
342
  r->released = 0;
343
+ gpr_atm_no_barrier_store(&r->pollhup, 0);
342
344
  r->read_notifier_pollset = nullptr;
343
345
 
344
346
  char* name2;
@@ -964,7 +966,8 @@ static grpc_error* pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
964
966
  pfds[0].events = POLLIN;
965
967
  pfds[0].revents = 0;
966
968
  for (i = 0; i < pollset->fd_count; i++) {
967
- if (fd_is_orphaned(pollset->fds[i])) {
969
+ if (fd_is_orphaned(pollset->fds[i]) ||
970
+ gpr_atm_no_barrier_load(&pollset->fds[i]->pollhup) == 1) {
968
971
  GRPC_FD_UNREF(pollset->fds[i], "multipoller");
969
972
  } else {
970
973
  pollset->fds[fd_count++] = pollset->fds[i];
@@ -1031,6 +1034,12 @@ static grpc_error* pollset_work(grpc_exec_ctx* exec_ctx, grpc_pollset* pollset,
1031
1034
  pfds[i].fd, (pfds[i].revents & POLLIN_CHECK) != 0,
1032
1035
  (pfds[i].revents & POLLOUT_CHECK) != 0, pfds[i].revents);
1033
1036
  }
1037
+ /* This is a mitigation to prevent poll() from spinning on a
1038
+ ** POLLHUP https://github.com/grpc/grpc/pull/13665
1039
+ */
1040
+ if (pfds[i].revents & POLLHUP) {
1041
+ gpr_atm_no_barrier_store(&watchers[i].fd->pollhup, 1);
1042
+ }
1034
1043
  fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
1035
1044
  pfds[i].revents & POLLOUT_CHECK, pollset);
1036
1045
  }
@@ -104,6 +104,7 @@ static void on_connect(grpc_exec_ctx* exec_ctx, void* acp, grpc_error* error) {
104
104
  GPR_ASSERT(transfered_bytes == 0);
105
105
  if (!wsa_success) {
106
106
  error = GRPC_WSA_ERROR(WSAGetLastError(), "ConnectEx");
107
+ closesocket(socket->socket);
107
108
  } else {
108
109
  *ep =
109
110
  grpc_tcp_create(exec_ctx, socket, ac->channel_args, ac->addr_name);
@@ -14,5 +14,5 @@
14
14
 
15
15
  # GRPC contains the General RPC module.
16
16
  module GRPC
17
- VERSION = '1.8.0'
17
+ VERSION = '1.8.3'
18
18
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - gRPC Authors
8
8
  autorequire:
9
9
  bindir: src/ruby/bin
10
10
  cert_chain: []
11
- date: 2017-12-13 00:00:00.000000000 Z
11
+ date: 2018-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -1433,7 +1433,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1433
1433
  version: '0'
1434
1434
  requirements: []
1435
1435
  rubyforge_project:
1436
- rubygems_version: 2.7.3
1436
+ rubygems_version: 2.7.4
1437
1437
  signing_key:
1438
1438
  specification_version: 4
1439
1439
  summary: GRPC system in Ruby