aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/surface/channel_create.c
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2015-07-06 08:35:02 -0700
committerGravatar Craig Tiller <ctiller@google.com>2015-07-06 08:35:02 -0700
commit825b21cd1f999fa55e6234c2d0d8a6375f252c42 (patch)
tree12b05fd918d8600e35e1c5bf78bf25b6d201ae3b /src/core/surface/channel_create.c
parenta82fef14b3caa94c133e9c49504243e28ea2cadd (diff)
Fix segfault
The server transport started reading fractionally too early, leading to the accept callback not being ready in some cases.
Diffstat (limited to 'src/core/surface/channel_create.c')
-rw-r--r--src/core/surface/channel_create.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/core/surface/channel_create.c b/src/core/surface/channel_create.c
index 09b4fb782b..e205f0a9f8 100644
--- a/src/core/surface/channel_create.c
+++ b/src/core/surface/channel_create.c
@@ -72,7 +72,8 @@ static void connected(void *arg, grpc_endpoint *tcp) {
grpc_iomgr_closure *notify;
if (tcp != NULL) {
c->result->transport = grpc_create_chttp2_transport(
- c->args.channel_args, tcp, NULL, 0, c->args.metadata_context, 1);
+ c->args.channel_args, tcp, c->args.metadata_context, 1);
+ grpc_chttp2_transport_start_reading(c->result->transport, NULL, 0);
GPR_ASSERT(c->result->transport);
c->result->filters = gpr_malloc(sizeof(grpc_channel_filter *));
c->result->filters[0] = &grpc_http_client_filter;