grpc 1.13.0.pre1 → 1.13.0.pre3

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: 781c8064beeefe2b82099359e7d78ba7c311693b980f6400e02f2a9cdc31001b
4
- data.tar.gz: 2e8f5b8f112b39fb783fba46fc09e6e519f4ac900ddbb857ba542fd390c80f8f
3
+ metadata.gz: 32ae15b7709e0a7111167c9cdcfe280a1ab9ffbcfec9fdd5ce063e6423de7f60
4
+ data.tar.gz: 6f7292710d66e521773a29d89e425a18f4a59a5552b59eaab0520b8b42f2432d
5
5
  SHA512:
6
- metadata.gz: 62972154ce92dcdf0ac0fd9c2d19a0eb1900eab2a32cd7277358c286b216d49f38ebfcc5f3fd896e23c23804b9210d784e4027c670f1c3b6c3e2b64811ae7e89
7
- data.tar.gz: 346fcd50a7f1a4be8f836d6792040b500210315646cfc550a27c3cf4c3f3f4d18a07362f78206193970c143da7588532d8c6dd13f79efd680fc3d1395b1d78fc
6
+ metadata.gz: 7690a0bc231a7e7a75175510207e5926a2f3449cc744e2e74fac224843ac04baff62576d7d1f39d21ebdb74157843e77e739991e8b218dad199b353866838228
7
+ data.tar.gz: d26ec45bf26cfed6a692b1fe147b064e750336c71661bf19274223249c09dec9568c5c8a7da5d9dd86e4aa10a8e97974ef4c5ac18d6f0b07ca8ec8aa643000df
data/Makefile CHANGED
@@ -420,9 +420,9 @@ E = @echo
420
420
  Q = @
421
421
  endif
422
422
 
423
- CORE_VERSION = 6.0.0-pre1
424
- CPP_VERSION = 1.13.0-pre1
425
- CSHARP_VERSION = 1.13.0-pre1
423
+ CORE_VERSION = 6.0.0-pre3
424
+ CPP_VERSION = 1.13.0-pre3
425
+ CSHARP_VERSION = 1.13.0-pre3
426
426
 
427
427
  CPPFLAGS_NO_ARCH += $(addprefix -I, $(INCLUDES)) $(addprefix -D, $(DEFINES))
428
428
  CPPFLAGS += $(CPPFLAGS_NO_ARCH) $(ARCH_FLAGS)
@@ -223,18 +223,23 @@ static bool call_next_handshaker_locked(grpc_handshake_manager* mgr,
223
223
  mgr->index == mgr->count) {
224
224
  if (error == GRPC_ERROR_NONE && mgr->shutdown) {
225
225
  error = GRPC_ERROR_CREATE_FROM_STATIC_STRING("handshaker shutdown");
226
- // TODO(roth): It is currently necessary to shutdown endpoints
227
- // before destroying then, even when we know that there are no
228
- // pending read/write callbacks. This should be fixed, at which
229
- // point this can be removed.
230
- grpc_endpoint_shutdown(mgr->args.endpoint, GRPC_ERROR_REF(error));
231
- grpc_endpoint_destroy(mgr->args.endpoint);
232
- mgr->args.endpoint = nullptr;
233
- grpc_channel_args_destroy(mgr->args.args);
234
- mgr->args.args = nullptr;
235
- grpc_slice_buffer_destroy_internal(mgr->args.read_buffer);
236
- gpr_free(mgr->args.read_buffer);
237
- mgr->args.read_buffer = nullptr;
226
+ // It is possible that the endpoint has already been destroyed by
227
+ // a shutdown call while this callback was sitting on the ExecCtx
228
+ // with no error.
229
+ if (mgr->args.endpoint != nullptr) {
230
+ // TODO(roth): It is currently necessary to shutdown endpoints
231
+ // before destroying then, even when we know that there are no
232
+ // pending read/write callbacks. This should be fixed, at which
233
+ // point this can be removed.
234
+ grpc_endpoint_shutdown(mgr->args.endpoint, GRPC_ERROR_REF(error));
235
+ grpc_endpoint_destroy(mgr->args.endpoint);
236
+ mgr->args.endpoint = nullptr;
237
+ grpc_channel_args_destroy(mgr->args.args);
238
+ mgr->args.args = nullptr;
239
+ grpc_slice_buffer_destroy_internal(mgr->args.read_buffer);
240
+ gpr_free(mgr->args.read_buffer);
241
+ mgr->args.read_buffer = nullptr;
242
+ }
238
243
  }
239
244
  if (grpc_handshaker_trace.enabled()) {
240
245
  gpr_log(GPR_INFO,
@@ -45,6 +45,9 @@ typedef struct grpc_combiner grpc_combiner;
45
45
  /* The exec_ctx's thread is (potentially) owned by a call or channel: care
46
46
  should be given to not delete said call/channel from this exec_ctx */
47
47
  #define GRPC_EXEC_CTX_FLAG_THREAD_RESOURCE_LOOP 2
48
+ /* This exec ctx was initialized by an internal thread, and should not
49
+ be counted by fork handlers */
50
+ #define GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD 4
48
51
 
49
52
  extern grpc_closure_scheduler* grpc_schedule_on_exec_ctx;
50
53
 
@@ -93,7 +96,9 @@ class ExecCtx {
93
96
 
94
97
  /** Parameterised Constructor */
95
98
  ExecCtx(uintptr_t fl) : flags_(fl) {
96
- grpc_core::Fork::IncExecCtxCount();
99
+ if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
100
+ grpc_core::Fork::IncExecCtxCount();
101
+ }
97
102
  Set(this);
98
103
  }
99
104
 
@@ -102,7 +107,9 @@ class ExecCtx {
102
107
  flags_ |= GRPC_EXEC_CTX_FLAG_IS_FINISHED;
103
108
  Flush();
104
109
  Set(last_exec_ctx_);
105
- grpc_core::Fork::DecExecCtxCount();
110
+ if (!(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD & flags_)) {
111
+ grpc_core::Fork::DecExecCtxCount();
112
+ }
106
113
  }
107
114
 
108
115
  /** Disallow copy and assignment operators */
@@ -145,7 +145,7 @@ static void executor_thread(void* arg) {
145
145
  thread_state* ts = static_cast<thread_state*>(arg);
146
146
  gpr_tls_set(&g_this_thread_state, (intptr_t)ts);
147
147
 
148
- grpc_core::ExecCtx exec_ctx(0);
148
+ grpc_core::ExecCtx exec_ctx(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD);
149
149
 
150
150
  size_t subtract_depth = 0;
151
151
  for (;;) {
@@ -265,7 +265,7 @@ static void timer_thread_cleanup(completed_thread* ct) {
265
265
  static void timer_thread(void* completed_thread_ptr) {
266
266
  // this threads exec_ctx: we try to run things through to completion here
267
267
  // since it's easy to spin up new threads
268
- grpc_core::ExecCtx exec_ctx(0);
268
+ grpc_core::ExecCtx exec_ctx(GRPC_EXEC_CTX_FLAG_IS_INTERNAL_THREAD);
269
269
  timer_main_loop();
270
270
 
271
271
  timer_thread_cleanup(static_cast<completed_thread*>(completed_thread_ptr));
@@ -23,6 +23,6 @@
23
23
 
24
24
  #include <grpc/grpc.h>
25
25
 
26
- const char* grpc_version_string(void) { return "6.0.0-pre1"; }
26
+ const char* grpc_version_string(void) { return "6.0.0-pre3"; }
27
27
 
28
28
  const char* grpc_g_stands_for(void) { return "gloriosa"; }
@@ -14,5 +14,5 @@
14
14
 
15
15
  # GRPC contains the General RPC module.
16
16
  module GRPC
17
- VERSION = '1.13.0.pre1'
17
+ VERSION = '1.13.0.pre3'
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.13.0.pre1
4
+ version: 1.13.0.pre3
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: 2018-06-11 00:00:00.000000000 Z
11
+ date: 2018-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -1547,39 +1547,39 @@ signing_key:
1547
1547
  specification_version: 4
1548
1548
  summary: GRPC system in Ruby
1549
1549
  test_files:
1550
- - src/ruby/spec/client_server_spec.rb
1551
- - src/ruby/spec/error_sanity_spec.rb
1552
- - src/ruby/spec/call_spec.rb
1553
- - src/ruby/spec/support/helpers.rb
1554
- - src/ruby/spec/support/services.rb
1555
- - src/ruby/spec/server_credentials_spec.rb
1556
- - src/ruby/spec/compression_options_spec.rb
1557
- - src/ruby/spec/channel_connection_spec.rb
1558
- - src/ruby/spec/call_credentials_spec.rb
1559
- - src/ruby/spec/channel_credentials_spec.rb
1560
- - src/ruby/spec/google_rpc_status_utils_spec.rb
1561
- - src/ruby/spec/generic/rpc_desc_spec.rb
1562
- - src/ruby/spec/generic/rpc_server_spec.rb
1563
- - src/ruby/spec/generic/interceptor_registry_spec.rb
1564
- - src/ruby/spec/generic/rpc_server_pool_spec.rb
1565
- - src/ruby/spec/generic/client_stub_spec.rb
1566
- - src/ruby/spec/generic/client_interceptors_spec.rb
1567
- - src/ruby/spec/generic/server_interceptors_spec.rb
1568
- - src/ruby/spec/generic/service_spec.rb
1569
- - src/ruby/spec/generic/active_call_spec.rb
1550
+ - src/ruby/spec/testdata/server1.key
1570
1551
  - src/ruby/spec/testdata/client.pem
1571
- - src/ruby/spec/testdata/ca.pem
1572
1552
  - src/ruby/spec/testdata/client.key
1573
1553
  - src/ruby/spec/testdata/server1.pem
1574
- - src/ruby/spec/testdata/server1.key
1554
+ - src/ruby/spec/testdata/ca.pem
1575
1555
  - src/ruby/spec/testdata/README
1576
1556
  - src/ruby/spec/client_auth_spec.rb
1577
- - src/ruby/spec/pb/package_with_underscore/checker_spec.rb
1578
- - src/ruby/spec/pb/package_with_underscore/service.proto
1579
- - src/ruby/spec/pb/package_with_underscore/data.proto
1557
+ - src/ruby/spec/channel_spec.rb
1580
1558
  - src/ruby/spec/pb/health/checker_spec.rb
1581
1559
  - src/ruby/spec/pb/duplicate/codegen_spec.rb
1582
- - src/ruby/spec/time_consts_spec.rb
1560
+ - src/ruby/spec/pb/package_with_underscore/service.proto
1561
+ - src/ruby/spec/pb/package_with_underscore/checker_spec.rb
1562
+ - src/ruby/spec/pb/package_with_underscore/data.proto
1563
+ - src/ruby/spec/generic/active_call_spec.rb
1564
+ - src/ruby/spec/generic/rpc_server_pool_spec.rb
1565
+ - src/ruby/spec/generic/rpc_desc_spec.rb
1566
+ - src/ruby/spec/generic/client_interceptors_spec.rb
1567
+ - src/ruby/spec/generic/interceptor_registry_spec.rb
1568
+ - src/ruby/spec/generic/service_spec.rb
1569
+ - src/ruby/spec/generic/rpc_server_spec.rb
1570
+ - src/ruby/spec/generic/client_stub_spec.rb
1571
+ - src/ruby/spec/generic/server_interceptors_spec.rb
1572
+ - src/ruby/spec/support/services.rb
1573
+ - src/ruby/spec/support/helpers.rb
1574
+ - src/ruby/spec/client_server_spec.rb
1583
1575
  - src/ruby/spec/server_spec.rb
1576
+ - src/ruby/spec/google_rpc_status_utils_spec.rb
1577
+ - src/ruby/spec/channel_connection_spec.rb
1578
+ - src/ruby/spec/time_consts_spec.rb
1579
+ - src/ruby/spec/call_credentials_spec.rb
1584
1580
  - src/ruby/spec/spec_helper.rb
1585
- - src/ruby/spec/channel_spec.rb
1581
+ - src/ruby/spec/compression_options_spec.rb
1582
+ - src/ruby/spec/error_sanity_spec.rb
1583
+ - src/ruby/spec/server_credentials_spec.rb
1584
+ - src/ruby/spec/channel_credentials_spec.rb
1585
+ - src/ruby/spec/call_spec.rb