aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar apolcyn <apolcyn@google.com>2018-04-19 15:51:32 -0700
committerGravatar GitHub <noreply@github.com>2018-04-19 15:51:32 -0700
commit0db9200f8cf6495eb5caeacb9886ce3dc798639a (patch)
tree322595ccf4cc7546cf5c7ddd9a7e7bd545e510db
parentcaa6f0ec9427f3b0c26876b863c167c5641bbe93 (diff)
parent046ad6b13f5eaba4b833abb0ecb49e2c6b75dd46 (diff)
Merge pull request #15123 from apolcyn/fix_addr_sort_shutdown_bug
Fix bug in address sorting shutdown
-rw-r--r--test/cpp/naming/address_sorting_test.cc10
-rw-r--r--third_party/address_sorting/address_sorting.c1
2 files changed, 10 insertions, 1 deletions
diff --git a/test/cpp/naming/address_sorting_test.cc b/test/cpp/naming/address_sorting_test.cc
index df93ff6f8d..a423733caf 100644
--- a/test/cpp/naming/address_sorting_test.cc
+++ b/test/cpp/naming/address_sorting_test.cc
@@ -722,16 +722,24 @@ TEST(AddressSortingTest, TestStableSortV4CompatAndSiteLocalAddresses) {
}
int main(int argc, char** argv) {
- const char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
+ char* resolver = gpr_getenv("GRPC_DNS_RESOLVER");
if (resolver == nullptr || strlen(resolver) == 0) {
gpr_setenv("GRPC_DNS_RESOLVER", "ares");
} else if (strcmp("ares", resolver)) {
gpr_log(GPR_INFO, "GRPC_DNS_RESOLVER != ares: %s.", resolver);
}
+ gpr_free(resolver);
grpc_test_init(argc, argv);
::testing::InitGoogleTest(&argc, argv);
grpc_init();
auto result = RUN_ALL_TESTS();
grpc_shutdown();
+ // Test sequential and nested inits and shutdowns.
+ grpc_init();
+ grpc_init();
+ grpc_shutdown();
+ grpc_shutdown();
+ grpc_init();
+ grpc_shutdown();
return result;
}
diff --git a/third_party/address_sorting/address_sorting.c b/third_party/address_sorting/address_sorting.c
index ec46099bec..d62aca3424 100644
--- a/third_party/address_sorting/address_sorting.c
+++ b/third_party/address_sorting/address_sorting.c
@@ -366,4 +366,5 @@ void address_sorting_shutdown() {
abort();
}
g_current_source_addr_factory->vtable->destroy(g_current_source_addr_factory);
+ g_current_source_addr_factory = NULL;
}