Remove resolver_result.

pull/8462/head
Mark D. Roth 8 years ago
parent 5bd7be0c55
commit af84245131
  1. 8
      BUILD
  2. 3
      CMakeLists.txt
  3. 3
      Makefile
  4. 1
      binding.gyp
  5. 2
      build.yaml
  6. 1
      config.m4
  7. 3
      gRPC-Core.podspec
  8. 2
      grpc.gemspec
  9. 2
      package.xml
  10. 21
      src/core/ext/client_config/README.md
  11. 57
      src/core/ext/client_config/client_channel.c
  12. 4
      src/core/ext/client_config/lb_policy_factory.h
  13. 2
      src/core/ext/client_config/resolver.c
  14. 13
      src/core/ext/client_config/resolver.h
  15. 2
      src/core/ext/client_config/resolver_factory.h
  16. 94
      src/core/ext/client_config/resolver_result.c
  17. 69
      src/core/ext/client_config/resolver_result.h
  18. 17
      src/core/ext/lb_policy/grpclb/grpclb.c
  19. 36
      src/core/ext/resolver/dns/native/dns_resolver.c
  20. 17
      src/core/ext/resolver/sockaddr/sockaddr_resolver.c
  21. 1
      src/python/grpcio/grpc_core_dependencies.py
  22. 16
      test/core/end2end/fake_resolver.c
  23. 2
      tools/doxygen/Doxyfile.core.internal
  24. 3
      tools/run_tests/sources_and_headers.json
  25. 312
      tools/run_tests/tests.json
  26. 3
      vsprojects/vcxproj/grpc/grpc.vcxproj
  27. 6
      vsprojects/vcxproj/grpc/grpc.vcxproj.filters
  28. 3
      vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
  29. 6
      vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters

@ -304,7 +304,6 @@ cc_library(
"src/core/ext/client_config/resolver.h",
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",
@ -486,7 +485,6 @@ cc_library(
"src/core/ext/client_config/resolver.c",
"src/core/ext/client_config/resolver_factory.c",
"src/core/ext/client_config/resolver_registry.c",
"src/core/ext/client_config/resolver_result.c",
"src/core/ext/client_config/subchannel.c",
"src/core/ext/client_config/subchannel_index.c",
"src/core/ext/client_config/uri_parser.c",
@ -686,7 +684,6 @@ cc_library(
"src/core/ext/client_config/resolver.h",
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",
@ -850,7 +847,6 @@ cc_library(
"src/core/ext/client_config/resolver.c",
"src/core/ext/client_config/resolver_factory.c",
"src/core/ext/client_config/resolver_registry.c",
"src/core/ext/client_config/resolver_result.c",
"src/core/ext/client_config/subchannel.c",
"src/core/ext/client_config/subchannel_index.c",
"src/core/ext/client_config/uri_parser.c",
@ -1045,7 +1041,6 @@ cc_library(
"src/core/ext/client_config/resolver.h",
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",
@ -1202,7 +1197,6 @@ cc_library(
"src/core/ext/client_config/resolver.c",
"src/core/ext/client_config/resolver_factory.c",
"src/core/ext/client_config/resolver_registry.c",
"src/core/ext/client_config/resolver_result.c",
"src/core/ext/client_config/subchannel.c",
"src/core/ext/client_config/subchannel_index.c",
"src/core/ext/client_config/uri_parser.c",
@ -1993,7 +1987,6 @@ objc_library(
"src/core/ext/client_config/resolver.c",
"src/core/ext/client_config/resolver_factory.c",
"src/core/ext/client_config/resolver_registry.c",
"src/core/ext/client_config/resolver_result.c",
"src/core/ext/client_config/subchannel.c",
"src/core/ext/client_config/subchannel_index.c",
"src/core/ext/client_config/uri_parser.c",
@ -2195,7 +2188,6 @@ objc_library(
"src/core/ext/client_config/resolver.h",
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h",

@ -451,7 +451,6 @@ add_library(grpc
src/core/ext/client_config/resolver.c
src/core/ext/client_config/resolver_factory.c
src/core/ext/client_config/resolver_registry.c
src/core/ext/client_config/resolver_result.c
src/core/ext/client_config/subchannel.c
src/core/ext/client_config/subchannel_index.c
src/core/ext/client_config/uri_parser.c
@ -686,7 +685,6 @@ add_library(grpc_cronet
src/core/ext/client_config/resolver.c
src/core/ext/client_config/resolver_factory.c
src/core/ext/client_config/resolver_registry.c
src/core/ext/client_config/resolver_result.c
src/core/ext/client_config/subchannel.c
src/core/ext/client_config/subchannel_index.c
src/core/ext/client_config/uri_parser.c
@ -919,7 +917,6 @@ add_library(grpc_unsecure
src/core/ext/client_config/resolver.c
src/core/ext/client_config/resolver_factory.c
src/core/ext/client_config/resolver_registry.c
src/core/ext/client_config/resolver_result.c
src/core/ext/client_config/subchannel.c
src/core/ext/client_config/subchannel_index.c
src/core/ext/client_config/uri_parser.c

@ -2708,7 +2708,6 @@ LIBGRPC_SRC = \
src/core/ext/client_config/resolver.c \
src/core/ext/client_config/resolver_factory.c \
src/core/ext/client_config/resolver_registry.c \
src/core/ext/client_config/resolver_result.c \
src/core/ext/client_config/subchannel.c \
src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \
@ -2961,7 +2960,6 @@ LIBGRPC_CRONET_SRC = \
src/core/ext/client_config/resolver.c \
src/core/ext/client_config/resolver_factory.c \
src/core/ext/client_config/resolver_registry.c \
src/core/ext/client_config/resolver_result.c \
src/core/ext/client_config/subchannel.c \
src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \
@ -3425,7 +3423,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/ext/client_config/resolver.c \
src/core/ext/client_config/resolver_factory.c \
src/core/ext/client_config/resolver_registry.c \
src/core/ext/client_config/resolver_result.c \
src/core/ext/client_config/subchannel.c \
src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \

@ -726,7 +726,6 @@
'src/core/ext/client_config/resolver.c',
'src/core/ext/client_config/resolver_factory.c',
'src/core/ext/client_config/resolver_registry.c',
'src/core/ext/client_config/resolver_result.c',
'src/core/ext/client_config/subchannel.c',
'src/core/ext/client_config/subchannel_index.c',
'src/core/ext/client_config/uri_parser.c',

@ -363,7 +363,6 @@ filegroups:
- src/core/ext/client_config/resolver.h
- src/core/ext/client_config/resolver_factory.h
- src/core/ext/client_config/resolver_registry.h
- src/core/ext/client_config/resolver_result.h
- src/core/ext/client_config/subchannel.h
- src/core/ext/client_config/subchannel_index.h
- src/core/ext/client_config/uri_parser.h
@ -384,7 +383,6 @@ filegroups:
- src/core/ext/client_config/resolver.c
- src/core/ext/client_config/resolver_factory.c
- src/core/ext/client_config/resolver_registry.c
- src/core/ext/client_config/resolver_result.c
- src/core/ext/client_config/subchannel.c
- src/core/ext/client_config/subchannel_index.c
- src/core/ext/client_config/uri_parser.c

@ -245,7 +245,6 @@ if test "$PHP_GRPC" != "no"; then
src/core/ext/client_config/resolver.c \
src/core/ext/client_config/resolver_factory.c \
src/core/ext/client_config/resolver_registry.c \
src/core/ext/client_config/resolver_result.c \
src/core/ext/client_config/subchannel.c \
src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \

@ -391,7 +391,6 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/resolver.h',
'src/core/ext/client_config/resolver_factory.h',
'src/core/ext/client_config/resolver_registry.h',
'src/core/ext/client_config/resolver_result.h',
'src/core/ext/client_config/subchannel.h',
'src/core/ext/client_config/subchannel_index.h',
'src/core/ext/client_config/uri_parser.h',
@ -577,7 +576,6 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/resolver.c',
'src/core/ext/client_config/resolver_factory.c',
'src/core/ext/client_config/resolver_registry.c',
'src/core/ext/client_config/resolver_result.c',
'src/core/ext/client_config/subchannel.c',
'src/core/ext/client_config/subchannel_index.c',
'src/core/ext/client_config/uri_parser.c',
@ -768,7 +766,6 @@ Pod::Spec.new do |s|
'src/core/ext/client_config/resolver.h',
'src/core/ext/client_config/resolver_factory.h',
'src/core/ext/client_config/resolver_registry.h',
'src/core/ext/client_config/resolver_result.h',
'src/core/ext/client_config/subchannel.h',
'src/core/ext/client_config/subchannel_index.h',
'src/core/ext/client_config/uri_parser.h',

@ -311,7 +311,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/client_config/resolver.h )
s.files += %w( src/core/ext/client_config/resolver_factory.h )
s.files += %w( src/core/ext/client_config/resolver_registry.h )
s.files += %w( src/core/ext/client_config/resolver_result.h )
s.files += %w( src/core/ext/client_config/subchannel.h )
s.files += %w( src/core/ext/client_config/subchannel_index.h )
s.files += %w( src/core/ext/client_config/uri_parser.h )
@ -497,7 +496,6 @@ Gem::Specification.new do |s|
s.files += %w( src/core/ext/client_config/resolver.c )
s.files += %w( src/core/ext/client_config/resolver_factory.c )
s.files += %w( src/core/ext/client_config/resolver_registry.c )
s.files += %w( src/core/ext/client_config/resolver_result.c )
s.files += %w( src/core/ext/client_config/subchannel.c )
s.files += %w( src/core/ext/client_config/subchannel_index.c )
s.files += %w( src/core/ext/client_config/uri_parser.c )

@ -318,7 +318,6 @@
<file baseinstalldir="/" name="src/core/ext/client_config/resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_registry.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_result.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.h" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.h" role="src" />
@ -504,7 +503,6 @@
<file baseinstalldir="/" name="src/core/ext/client_config/resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_registry.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/resolver_result.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.c" role="src" />
<file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.c" role="src" />

@ -5,28 +5,27 @@ This library provides high level configuration machinery to construct client
channels and load balance between them.
Each grpc_channel is created with a grpc_resolver. It is the resolver's duty
to resolve a name into configuration data for the channel. Such configuration
data might include:
to resolve a name into a set of arguments for the channel. Such arguments
might include:
- a list of (ip, port) addresses to connect to
- a load balancing policy to decide which server to send a request to
- a set of filters to mutate outgoing requests (say, by adding metadata)
The resolver provides this data as a stream of grpc_resolver_result objects to
the channel. We represent configuration as a stream so that it can be changed
by the resolver during execution, by reacting to external events (such as a
new configuration file being pushed to some store).
The resolver provides this data as a stream of grpc_channel_args objects to
the channel. We represent arguments as a stream so that they can be changed
by the resolver during execution, by reacting to external events (such as
new service configuration data being pushed to some store).
Load Balancing
--------------
Load balancing configuration is provided by a grpc_lb_policy object, stored as
part of grpc_resolver_result.
Load balancing configuration is provided by a grpc_lb_policy object.
The primary job of the load balancing policies is to pick a target server given only the
initial metadata for a request. It does this by providing a grpc_subchannel
object to the owning channel.
The primary job of the load balancing policies is to pick a target server
given only the initial metadata for a request. It does this by providing
a grpc_subchannel object to the owning channel.
Sub-Channels

@ -79,7 +79,7 @@ typedef struct client_channel_channel_data {
/** method config table */
grpc_method_config_table *method_config_table;
/** incoming resolver result - set by resolver.next() */
grpc_resolver_result *resolver_result;
grpc_channel_args *resolver_result;
/** a list of closures that are all waiting for config to come in */
grpc_closure_list waiting_for_config_closures;
/** resolver callback */
@ -184,41 +184,42 @@ static void on_resolver_result_changed(grpc_exec_ctx *exec_ctx, void *arg,
if (chand->resolver_result != NULL) {
grpc_lb_policy_args lb_policy_args;
lb_policy_args.server_name =
grpc_resolver_result_get_server_name(chand->resolver_result);
lb_policy_args.addresses =
grpc_resolver_result_get_addresses(chand->resolver_result);
lb_policy_args.args =
grpc_resolver_result_get_channel_args(chand->resolver_result);
lb_policy_args.args = chand->resolver_result;
lb_policy_args.client_channel_factory = chand->client_channel_factory;
// Find LB policy name.
const char *lb_policy_name = NULL;
const grpc_arg *lb_policy_name_arg =
const grpc_arg *channel_arg =
grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_LB_POLICY_NAME);
if (lb_policy_name_arg != NULL) {
GPR_ASSERT(lb_policy_name_arg->type == GRPC_ARG_STRING);
lb_policy_name = lb_policy_name_arg->value.string;
if (channel_arg != NULL) {
GPR_ASSERT(channel_arg->type == GRPC_ARG_STRING);
lb_policy_name = channel_arg->value.string;
}
// Special case: If all of the addresses are balancer addresses,
// assume that we should use the grpclb policy, regardless of what the
// resolver actually specified.
bool found_backend_address = false;
for (size_t i = 0; i < lb_policy_args.addresses->num_addresses; ++i) {
if (!lb_policy_args.addresses->addresses[i].is_balancer) {
found_backend_address = true;
break;
channel_arg =
grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_LB_ADDRESSES);
if (channel_arg != NULL) {
GPR_ASSERT(channel_arg->type == GRPC_ARG_POINTER);
grpc_lb_addresses* addresses = channel_arg->value.pointer.p;
bool found_backend_address = false;
for (size_t i = 0; i < addresses->num_addresses; ++i) {
if (!addresses->addresses[i].is_balancer) {
found_backend_address = true;
break;
}
}
}
if (!found_backend_address) {
if (lb_policy_name != NULL && strcmp(lb_policy_name, "grpclb") != 0) {
gpr_log(GPR_INFO,
"resolver requested LB policy %s but provided only balancer "
"addresses, no backend addresses -- forcing use of grpclb LB "
"policy",
(lb_policy_name == NULL ? "(none)" : lb_policy_name));
if (!found_backend_address) {
if (lb_policy_name != NULL && strcmp(lb_policy_name, "grpclb") != 0) {
gpr_log(GPR_INFO,
"resolver requested LB policy %s but provided only balancer "
"addresses, no backend addresses -- forcing use of grpclb LB "
"policy",
(lb_policy_name == NULL ? "(none)" : lb_policy_name));
}
lb_policy_name = "grpclb";
}
lb_policy_name = "grpclb";
}
// Use pick_first if nothing was specified and we didn't select grpclb
// above.
@ -232,14 +233,14 @@ static void on_resolver_result_changed(grpc_exec_ctx *exec_ctx, void *arg,
state =
grpc_lb_policy_check_connectivity(exec_ctx, lb_policy, &state_error);
}
const grpc_arg *channel_arg = grpc_channel_args_find(
lb_policy_args.args, GRPC_ARG_SERVICE_CONFIG);
channel_arg =
grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_SERVICE_CONFIG);
if (channel_arg != NULL) {
GPR_ASSERT(channel_arg->type == GRPC_ARG_POINTER);
method_config_table = grpc_method_config_table_ref(
(grpc_method_config_table *)channel_arg->value.pointer.p);
}
grpc_resolver_result_unref(exec_ctx, chand->resolver_result);
grpc_channel_args_destroy(chand->resolver_result);
chand->resolver_result = NULL;
}

@ -102,11 +102,7 @@ grpc_arg grpc_lb_addresses_create_channel_arg(
const grpc_lb_addresses *addresses);
/** Arguments passed to LB policies. */
/* TODO(roth, ctiller): Consider replacing this struct with
grpc_channel_args. See comment in resolver_result.h for details. */
typedef struct grpc_lb_policy_args {
const char *server_name;
grpc_lb_addresses *addresses;
grpc_client_channel_factory *client_channel_factory;
grpc_channel_args *args;
} grpc_lb_policy_args;

@ -76,7 +76,7 @@ void grpc_resolver_channel_saw_error(grpc_exec_ctx *exec_ctx,
}
void grpc_resolver_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
grpc_resolver_result **result,
grpc_channel_args **result,
grpc_closure *on_complete) {
resolver->vtable->next(exec_ctx, resolver, result, on_complete);
}

@ -34,15 +34,13 @@
#ifndef GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_H
#define GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_H
#include "src/core/ext/client_config/resolver_result.h"
#include "src/core/ext/client_config/subchannel.h"
#include "src/core/lib/iomgr/iomgr.h"
typedef struct grpc_resolver grpc_resolver;
typedef struct grpc_resolver_vtable grpc_resolver_vtable;
/** grpc_resolver provides grpc_resolver_result objects to grpc_channel
objects */
/** grpc_resolver provides grpc_channel_args objects to grpc_channel objects */
struct grpc_resolver {
const grpc_resolver_vtable *vtable;
gpr_refcount refs;
@ -53,7 +51,7 @@ struct grpc_resolver_vtable {
void (*shutdown)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver);
void (*channel_saw_error)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver);
void (*next)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
grpc_resolver_result **result, grpc_closure *on_complete);
grpc_channel_args **result, grpc_closure *on_complete);
};
#ifdef GRPC_RESOLVER_REFCOUNT_DEBUG
@ -81,14 +79,13 @@ void grpc_resolver_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver);
void grpc_resolver_channel_saw_error(grpc_exec_ctx *exec_ctx,
grpc_resolver *resolver);
/** Get the next client config. Called by the channel to fetch a new
configuration. Expected to set *result with a new configuration,
and then schedule on_complete for execution.
/** Get the next result from the resolver. Expected to set *result with
new channel args and then schedule on_complete for execution.
If resolution is fatally broken, set *result to NULL and
schedule on_complete. */
void grpc_resolver_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
grpc_resolver_result **result,
grpc_channel_args **result,
grpc_closure *on_complete);
#endif /* GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_H */

@ -41,8 +41,6 @@
typedef struct grpc_resolver_factory grpc_resolver_factory;
typedef struct grpc_resolver_factory_vtable grpc_resolver_factory_vtable;
/** grpc_resolver provides grpc_resolver_result objects to grpc_channel
objects */
struct grpc_resolver_factory {
const grpc_resolver_factory_vtable *vtable;
};

@ -1,94 +0,0 @@
//
// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
#include "src/core/ext/client_config/resolver_result.h"
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include "src/core/lib/channel/channel_args.h"
struct grpc_resolver_result {
gpr_refcount refs;
char* server_name;
grpc_lb_addresses* addresses;
char* lb_policy_name;
grpc_channel_args* channel_args;
};
grpc_resolver_result* grpc_resolver_result_create(
const char* server_name, grpc_lb_addresses* addresses,
const char* lb_policy_name, grpc_channel_args* args) {
grpc_resolver_result* result = gpr_malloc(sizeof(*result));
memset(result, 0, sizeof(*result));
gpr_ref_init(&result->refs, 1);
result->server_name = gpr_strdup(server_name);
result->addresses = addresses;
result->lb_policy_name = gpr_strdup(lb_policy_name);
result->channel_args = args;
return result;
}
void grpc_resolver_result_ref(grpc_resolver_result* result) {
gpr_ref(&result->refs);
}
void grpc_resolver_result_unref(grpc_exec_ctx* exec_ctx,
grpc_resolver_result* result) {
if (gpr_unref(&result->refs)) {
gpr_free(result->server_name);
grpc_lb_addresses_destroy(result->addresses);
gpr_free(result->lb_policy_name);
grpc_channel_args_destroy(result->channel_args);
gpr_free(result);
}
}
const char* grpc_resolver_result_get_server_name(grpc_resolver_result* result) {
return result->server_name;
}
grpc_lb_addresses* grpc_resolver_result_get_addresses(
grpc_resolver_result* result) {
return result->addresses;
}
const char* grpc_resolver_result_get_lb_policy_name(
grpc_resolver_result* result) {
return result->lb_policy_name;
}
grpc_channel_args* grpc_resolver_result_get_channel_args(
grpc_resolver_result* result) {
return result->channel_args;
}

@ -1,69 +0,0 @@
//
// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
#ifndef GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_RESULT_H
#define GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_RESULT_H
#include "src/core/ext/client_config/lb_policy_factory.h"
#include "src/core/lib/iomgr/resolve_address.h"
// TODO(roth, ctiller): In the long term, we are considering replacing
// the resolver_result data structure with grpc_channel_args. The idea is
// that the resolver will return a set of channel args that contains the
// information that is currently in the resolver_result struct. For
// example, there will be specific args indicating the set of addresses
// and the name of the LB policy to instantiate. Note that if we did
// this, we would probably want to change the data structure of
// grpc_channel_args such to a hash table or AVL or some other data
// structure that does not require linear search to find keys.
/// Results reported from a grpc_resolver.
typedef struct grpc_resolver_result grpc_resolver_result;
/// Takes ownership of \a addresses and \a args.
grpc_resolver_result* grpc_resolver_result_create(
const char* server_name, grpc_lb_addresses* addresses,
const char* lb_policy_name, grpc_channel_args* args);
void grpc_resolver_result_ref(grpc_resolver_result* result);
void grpc_resolver_result_unref(grpc_exec_ctx* exec_ctx,
grpc_resolver_result* result);
/// Accessors. Caller does NOT take ownership of results.
const char* grpc_resolver_result_get_server_name(grpc_resolver_result* result);
grpc_lb_addresses* grpc_resolver_result_get_addresses(
grpc_resolver_result* result);
const char* grpc_resolver_result_get_lb_policy_name(
grpc_resolver_result* result);
grpc_channel_args* grpc_resolver_result_get_channel_args(
grpc_resolver_result* result);
#endif /* GRPC_CORE_EXT_CLIENT_CONFIG_RESOLVER_RESULT_H */

@ -465,16 +465,21 @@ static grpc_lb_policy *create_rr_locked(
glb_lb_policy *glb_policy) {
GPR_ASSERT(serverlist != NULL && serverlist->num_servers > 0);
if (glb_policy->addresses != NULL) {
/* dispose of the previous version */
grpc_lb_addresses_destroy(glb_policy->addresses);
}
glb_policy->addresses = process_serverlist(serverlist);
grpc_lb_policy_args args;
memset(&args, 0, sizeof(args));
args.server_name = glb_policy->server_name;
args.client_channel_factory = glb_policy->cc_factory;
args.addresses = process_serverlist(serverlist);
// Replace the LB addresses in the channel args that we pass down to
// the subchannel.
static const char* keys_to_remove[] = {GRPC_ARG_LB_ADDRESSES};
const grpc_arg arg = grpc_lb_addresses_create_channel_arg(args.addresses);
const grpc_arg arg =
grpc_lb_addresses_create_channel_arg(glb_policy->addresses);
args.args = grpc_channel_args_copy_and_add_and_remove(
glb_policy->args, keys_to_remove, GPR_ARRAY_SIZE(keys_to_remove), &arg,
1);
@ -482,12 +487,6 @@ static grpc_lb_policy *create_rr_locked(
grpc_lb_policy *rr = grpc_lb_policy_create(exec_ctx, "round_robin", &args);
grpc_channel_args_destroy(args.args);
if (glb_policy->addresses != NULL) {
/* dispose of the previous version */
grpc_lb_addresses_destroy(glb_policy->addresses);
}
glb_policy->addresses = args.addresses;
return rr;
}

@ -54,10 +54,7 @@
typedef struct {
/** base class: must be first */
grpc_resolver base;
/** target name */
// FIXME: remove target_name when resolver_result goes away
char *target_name;
/** name to resolve (usually the same as target_name) */
/** name to resolve */
char *name_to_resolve;
/** default port to use */
char *default_port;
@ -75,9 +72,9 @@ typedef struct {
/** pending next completion, or NULL */
grpc_closure *next_completion;
/** target result address for next completion */
grpc_resolver_result **target_result;
grpc_channel_args **target_result;
/** current (fully resolved) result */
grpc_resolver_result *resolved_result;
grpc_channel_args *resolved_result;
/** retry timer */
bool have_retry_timer;
grpc_timer retry_timer;
@ -98,7 +95,7 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
static void dns_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *r);
static void dns_channel_saw_error(grpc_exec_ctx *exec_ctx, grpc_resolver *r);
static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *r,
grpc_resolver_result **target_result,
grpc_channel_args **target_result,
grpc_closure *on_complete);
static const grpc_resolver_vtable dns_resolver_vtable = {
@ -131,7 +128,7 @@ static void dns_channel_saw_error(grpc_exec_ctx *exec_ctx,
}
static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
grpc_resolver_result **target_result,
grpc_channel_args **target_result,
grpc_closure *on_complete) {
dns_resolver *r = (dns_resolver *)resolver;
gpr_mu_lock(&r->mu);
@ -166,7 +163,7 @@ static void dns_on_retry_timer(grpc_exec_ctx *exec_ctx, void *arg,
static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
grpc_error *error) {
dns_resolver *r = arg;
grpc_resolver_result *result = NULL;
grpc_channel_args *result = NULL;
gpr_mu_lock(&r->mu);
GPR_ASSERT(r->resolving);
r->resolving = false;
@ -180,11 +177,9 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
NULL /* balancer_name */, NULL /* user_data */);
}
grpc_arg new_arg = grpc_lb_addresses_create_channel_arg(addresses);
grpc_channel_args* args =
grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1);
result = grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1);
grpc_resolved_addresses_destroy(r->addresses);
result = grpc_resolver_result_create(
r->target_name, addresses, NULL /* lb_policy_name */, args);
grpc_lb_addresses_destroy(addresses);
} else {
gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
gpr_timespec next_try = gpr_backoff_step(&r->backoff_state, now);
@ -204,8 +199,8 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
grpc_timer_init(exec_ctx, &r->retry_timer, next_try, dns_on_retry_timer, r,
now);
}
if (r->resolved_result) {
grpc_resolver_result_unref(exec_ctx, r->resolved_result);
if (r->resolved_result != NULL) {
grpc_channel_args_destroy(r->resolved_result);
}
r->resolved_result = result;
r->resolved_version++;
@ -229,10 +224,7 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
dns_resolver *r) {
if (r->next_completion != NULL &&
r->resolved_version != r->published_version) {
*r->target_result = r->resolved_result;
if (r->resolved_result) {
grpc_resolver_result_ref(r->resolved_result);
}
*r->target_result = grpc_channel_args_copy(r->resolved_result);
grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL);
r->next_completion = NULL;
r->published_version = r->resolved_version;
@ -242,10 +234,9 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
static void dns_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
dns_resolver *r = (dns_resolver *)gr;
gpr_mu_destroy(&r->mu);
if (r->resolved_result) {
grpc_resolver_result_unref(exec_ctx, r->resolved_result);
if (r->resolved_result != NULL) {
grpc_channel_args_destroy(r->resolved_result);
}
gpr_free(r->target_name);
gpr_free(r->name_to_resolve);
gpr_free(r->default_port);
grpc_channel_args_destroy(r->channel_args);
@ -268,7 +259,6 @@ static grpc_resolver *dns_create(grpc_resolver_args *args,
memset(r, 0, sizeof(*r));
gpr_mu_init(&r->mu);
grpc_resolver_init(&r->base, &dns_resolver_vtable);
r->target_name = gpr_strdup(path);
r->name_to_resolve = proxy_name == NULL ? gpr_strdup(path) : proxy_name;
r->default_port = gpr_strdup(default_port);
grpc_arg server_name_arg;

@ -41,6 +41,7 @@
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>
#include "src/core/ext/client_config/lb_policy_factory.h"
#include "src/core/ext/client_config/parse_address.h"
#include "src/core/ext/client_config/resolver_registry.h"
#include "src/core/lib/channel/channel_args.h"
@ -51,9 +52,6 @@
typedef struct {
/** base class: must be first */
grpc_resolver base;
/** the path component of the uri passed in */
// FIXME: remove target_name when resolver_result goes away
char *target_name;
/** the addresses that we've 'resolved' */
grpc_lb_addresses *addresses;
/** channel args */
@ -65,7 +63,7 @@ typedef struct {
/** pending next completion, or NULL */
grpc_closure *next_completion;
/** target result address for next completion */
grpc_resolver_result **target_result;
grpc_channel_args **target_result;
} sockaddr_resolver;
static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *r);
@ -77,7 +75,7 @@ static void sockaddr_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *r);
static void sockaddr_channel_saw_error(grpc_exec_ctx *exec_ctx,
grpc_resolver *r);
static void sockaddr_next(grpc_exec_ctx *exec_ctx, grpc_resolver *r,
grpc_resolver_result **target_result,
grpc_channel_args **target_result,
grpc_closure *on_complete);
static const grpc_resolver_vtable sockaddr_resolver_vtable = {
@ -106,7 +104,7 @@ static void sockaddr_channel_saw_error(grpc_exec_ctx *exec_ctx,
}
static void sockaddr_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
grpc_resolver_result **target_result,
grpc_channel_args **target_result,
grpc_closure *on_complete) {
sockaddr_resolver *r = (sockaddr_resolver *)resolver;
gpr_mu_lock(&r->mu);
@ -122,11 +120,8 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
if (r->next_completion != NULL && !r->published) {
r->published = true;
grpc_arg arg = grpc_lb_addresses_create_channel_arg(r->addresses);
grpc_channel_args* args =
*r->target_result =
grpc_channel_args_copy_and_add(r->channel_args, &arg, 1);
*r->target_result = grpc_resolver_result_create(
r->target_name, grpc_lb_addresses_copy(r->addresses),
NULL /* lb_policy_name */, args);
grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL);
r->next_completion = NULL;
}
@ -135,7 +130,6 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
sockaddr_resolver *r = (sockaddr_resolver *)gr;
gpr_mu_destroy(&r->mu);
gpr_free(r->target_name);
grpc_lb_addresses_destroy(r->addresses);
grpc_channel_args_destroy(r->channel_args);
gpr_free(r);
@ -206,7 +200,6 @@ static grpc_resolver *sockaddr_create(grpc_resolver_args *args,
/* Instantiate resolver. */
sockaddr_resolver *r = gpr_malloc(sizeof(sockaddr_resolver));
memset(r, 0, sizeof(*r));
r->target_name = gpr_strdup(args->uri->path);
r->addresses = addresses;
grpc_arg server_name_arg;
server_name_arg.type = GRPC_ARG_STRING;

@ -239,7 +239,6 @@ CORE_SOURCE_FILES = [
'src/core/ext/client_config/resolver.c',
'src/core/ext/client_config/resolver_factory.c',
'src/core/ext/client_config/resolver_registry.c',
'src/core/ext/client_config/resolver_result.c',
'src/core/ext/client_config/subchannel.c',
'src/core/ext/client_config/subchannel_index.c',
'src/core/ext/client_config/uri_parser.c',

@ -42,6 +42,7 @@
#include <grpc/support/port_platform.h>
#include <grpc/support/string_util.h>
#include "src/core/ext/client_config/lb_policy_factory.h"
#include "src/core/ext/client_config/method_config.h"
#include "src/core/ext/client_config/parse_address.h"
#include "src/core/ext/client_config/resolver_registry.h"
@ -59,8 +60,6 @@ typedef struct {
grpc_resolver base;
// passed-in parameters
// FIXME: remove target_name once resolver_result is removed
char* target_name; // the path component of the uri passed in
grpc_channel_args* channel_args;
grpc_lb_addresses* addresses;
char* lb_policy_name;
@ -73,13 +72,12 @@ typedef struct {
// pending next completion, or NULL
grpc_closure* next_completion;
// target result address for next completion
grpc_resolver_result** target_result;
grpc_channel_args** target_result;
} fake_resolver;
static void fake_resolver_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) {
fake_resolver* r = (fake_resolver*)gr;
gpr_mu_destroy(&r->mu);
gpr_free(r->target_name);
grpc_channel_args_destroy(r->channel_args);
grpc_lb_addresses_destroy(r->addresses);
gpr_free(r->lb_policy_name);
@ -116,11 +114,8 @@ static void fake_resolver_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx,
new_args[num_args].value.string = r->lb_policy_name;
++num_args;
}
grpc_channel_args* args =
*r->target_result =
grpc_channel_args_copy_and_add(r->channel_args, new_args, num_args);
*r->target_result = grpc_resolver_result_create(
r->target_name, grpc_lb_addresses_copy(r->addresses),
r->lb_policy_name, args);
grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL);
r->next_completion = NULL;
}
@ -136,7 +131,7 @@ static void fake_resolver_channel_saw_error(grpc_exec_ctx* exec_ctx,
}
static void fake_resolver_next(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver,
grpc_resolver_result** target_result,
grpc_channel_args** target_result,
grpc_closure* on_complete) {
fake_resolver* r = (fake_resolver*)resolver;
gpr_mu_lock(&r->mu);
@ -244,11 +239,10 @@ static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory,
// Instantiate resolver.
fake_resolver* r = gpr_malloc(sizeof(fake_resolver));
memset(r, 0, sizeof(*r));
r->target_name = gpr_strdup(args->uri->path);
grpc_arg server_name_arg;
server_name_arg.type = GRPC_ARG_STRING;
server_name_arg.key = GRPC_ARG_SERVER_NAME;
server_name_arg.value.string = r->target_name;
server_name_arg.value.string = args->uri->path;
r->channel_args =
grpc_channel_args_copy_and_add(args->args, &server_name_arg, 1);
r->addresses = addresses;

@ -928,7 +928,6 @@ src/core/ext/client_config/parse_address.h \
src/core/ext/client_config/resolver.h \
src/core/ext/client_config/resolver_factory.h \
src/core/ext/client_config/resolver_registry.h \
src/core/ext/client_config/resolver_result.h \
src/core/ext/client_config/subchannel.h \
src/core/ext/client_config/subchannel_index.h \
src/core/ext/client_config/uri_parser.h \
@ -1114,7 +1113,6 @@ src/core/ext/client_config/parse_address.c \
src/core/ext/client_config/resolver.c \
src/core/ext/client_config/resolver_factory.c \
src/core/ext/client_config/resolver_registry.c \
src/core/ext/client_config/resolver_result.c \
src/core/ext/client_config/subchannel.c \
src/core/ext/client_config/subchannel_index.c \
src/core/ext/client_config/uri_parser.c \

@ -6735,7 +6735,6 @@
"src/core/ext/client_config/resolver.h",
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.h",
"src/core/ext/client_config/uri_parser.h"
@ -6773,8 +6772,6 @@
"src/core/ext/client_config/resolver_factory.h",
"src/core/ext/client_config/resolver_registry.c",
"src/core/ext/client_config/resolver_registry.h",
"src/core/ext/client_config/resolver_result.c",
"src/core/ext/client_config/resolver_result.h",
"src/core/ext/client_config/subchannel.c",
"src/core/ext/client_config/subchannel.h",
"src/core/ext/client_config/subchannel_index.c",

@ -17002,7 +17002,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17023,7 +17025,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17044,7 +17048,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17065,7 +17071,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17086,7 +17094,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17107,7 +17117,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17128,7 +17140,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17149,7 +17163,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17170,7 +17186,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17191,7 +17209,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17212,7 +17232,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17233,7 +17255,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17254,7 +17278,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17275,7 +17301,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17296,7 +17324,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17317,7 +17347,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17338,7 +17370,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17359,7 +17393,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17380,7 +17416,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17401,7 +17439,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17422,7 +17462,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17443,7 +17485,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17464,7 +17508,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17485,7 +17531,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17506,7 +17554,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17527,7 +17577,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17548,7 +17600,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17569,7 +17623,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17590,7 +17646,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17611,7 +17669,9 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17632,7 +17692,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17653,7 +17715,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17674,7 +17738,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17695,7 +17761,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17716,7 +17784,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17737,7 +17807,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17758,7 +17830,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17779,7 +17853,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17800,7 +17876,9 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"exclude_configs": [
"msan"
],
"flaky": false,
"language": "c",
"name": "h2_sockpair_1byte_test",
@ -17822,9 +17900,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17846,9 +17922,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17870,9 +17944,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17894,9 +17966,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17918,9 +17988,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17942,9 +18010,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17966,9 +18032,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -17990,9 +18054,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18014,9 +18076,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18038,9 +18098,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18128,9 +18186,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18152,9 +18208,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18176,9 +18230,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18200,9 +18252,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18224,9 +18274,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18248,9 +18296,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18272,9 +18318,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18318,9 +18362,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18342,9 +18384,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18366,9 +18406,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18390,9 +18428,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18414,9 +18450,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18438,9 +18472,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18462,9 +18494,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18486,9 +18516,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18510,9 +18538,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18534,9 +18560,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18558,9 +18582,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18582,9 +18604,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18606,9 +18626,7 @@
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18630,9 +18648,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18654,9 +18670,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18678,9 +18692,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18702,9 +18714,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18726,9 +18736,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18772,9 +18780,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18796,9 +18802,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18820,9 +18824,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",
@ -18844,9 +18846,7 @@
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [
"msan"
],
"exclude_configs": [],
"flaky": false,
"language": "c",
"name": "h2_ssl_test",

@ -437,7 +437,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
@ -787,8 +786,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">

@ -487,9 +487,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
@ -1100,9 +1097,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>

@ -403,7 +403,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\uri_parser.h" />
@ -703,8 +702,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel_index.c">

@ -412,9 +412,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.c">
<Filter>src\core\ext\client_config</Filter>
</ClCompile>
@ -938,9 +935,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_registry.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\resolver_result.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\ext\client_config\subchannel.h">
<Filter>src\core\ext\client_config</Filter>
</ClInclude>

Loading…
Cancel
Save