aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/ext/client_config/channel_connectivity.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/ext/client_config/channel_connectivity.c')
-rw-r--r--src/core/ext/client_config/channel_connectivity.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/core/ext/client_config/channel_connectivity.c b/src/core/ext/client_config/channel_connectivity.c
index ac685e11ea..bef43d84ca 100644
--- a/src/core/ext/client_config/channel_connectivity.c
+++ b/src/core/ext/client_config/channel_connectivity.c
@@ -131,6 +131,10 @@ static void partly_done(grpc_exec_ctx *exec_ctx, state_watcher *w,
}
gpr_mu_lock(&w->mu);
+ const char *msg = grpc_error_string(error);
+ gpr_log(GPR_DEBUG, "partly_done: d2c=%d phs=%d err=%s", due_to_completion, w->phase, msg);
+ grpc_error_free_string(msg);
+
if (due_to_completion) {
GRPC_ERROR_UNREF(w->error);
w->error = GRPC_ERROR_NONE;
@@ -155,16 +159,18 @@ static void partly_done(grpc_exec_ctx *exec_ctx, state_watcher *w,
if (delete) {
delete_state_watcher(exec_ctx, w);
}
+
+ GRPC_ERROR_UNREF(error);
}
static void watch_complete(grpc_exec_ctx *exec_ctx, void *pw,
grpc_error *error) {
- partly_done(exec_ctx, pw, true, error);
+ partly_done(exec_ctx, pw, true, GRPC_ERROR_REF(error));
}
static void timeout_complete(grpc_exec_ctx *exec_ctx, void *pw,
grpc_error *error) {
- partly_done(exec_ctx, pw, false, error);
+ partly_done(exec_ctx, pw, false, GRPC_ERROR_REF(error));
}
void grpc_channel_watch_connectivity_state(
@@ -189,7 +195,7 @@ void grpc_channel_watch_connectivity_state(
grpc_closure_init(&w->on_complete, watch_complete, w);
w->phase = WAITING;
w->state = last_observed_state;
- w->error = GRPC_ERROR_CREATE("Some error");
+ w->error = GRPC_ERROR_CREATE("Timeout waiting for channel state");
w->cq = cq;
w->tag = tag;
w->channel = channel;