Channelz fixes

reviewable/pr13368/r19
kpayson64 7 years ago
parent a4e3bed5fb
commit 65007f624e
  1. 38
      src/core/lib/surface/call.cc

@ -509,26 +509,6 @@ static void destroy_call(void* call, grpc_error* error) {
GRPC_CQ_INTERNAL_UNREF(c->cq, "bind");
}
grpc_core::channelz::ChannelNode* channelz_channel =
grpc_channel_get_channelz_node(c->channel);
if (c->is_client) {
if (channelz_channel != nullptr) {
if (*c->final_op.client.status != GRPC_STATUS_OK) {
channelz_channel->RecordCallFailed();
} else {
channelz_channel->RecordCallSucceeded();
}
}
} else {
if (channelz_channel != nullptr) {
if (*c->final_op.server.cancelled || c->status_error != GRPC_ERROR_NONE) {
channelz_channel->RecordCallFailed();
} else {
channelz_channel->RecordCallSucceeded();
}
}
}
grpc_slice slice = grpc_empty_slice();
grpc_error_get_status(c->status_error, c->send_deadline,
&c->final_info.final_status, &slice, nullptr,
@ -734,6 +714,15 @@ static void set_final_status(grpc_call* call, grpc_error* error) {
error_string);
*call->final_op.client.status = code;
*call->final_op.client.status_details = grpc_slice_ref_internal(slice);
grpc_core::channelz::ChannelNode* channelz_channel =
grpc_channel_get_channelz_node(call->channel);
if (channelz_channel != nullptr) {
if (code != GRPC_STATUS_OK) {
channelz_channel->RecordCallFailed();
} else {
channelz_channel->RecordCallSucceeded();
}
}
} else {
*call->final_op.server.cancelled =
error != GRPC_ERROR_NONE || call->status_error != GRPC_ERROR_NONE;
@ -1683,6 +1672,15 @@ static grpc_call_error call_start_batch(grpc_call* call, const grpc_op* ops,
static_cast<intptr_t>(
op->data.send_status_from_server.status));
call->status_error = status_error;
grpc_core::channelz::ChannelNode* channelz_channel =
grpc_channel_get_channelz_node(call->channel);
if (channelz_channel != nullptr) {
if (call->status_error != GRPC_ERROR_NONE) {
channelz_channel->RecordCallFailed();
} else {
channelz_channel->RecordCallSucceeded();
}
}
if (!prepare_application_metadata(
call,
static_cast<int>(

Loading…
Cancel
Save