diff options
author | apolcyn <apolcyn@google.com> | 2018-04-19 15:51:32 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-19 15:51:32 -0700 |
commit | 0db9200f8cf6495eb5caeacb9886ce3dc798639a (patch) | |
tree | 322595ccf4cc7546cf5c7ddd9a7e7bd545e510db | |
parent | caa6f0ec9427f3b0c26876b863c167c5641bbe93 (diff) | |
parent | 046ad6b13f5eaba4b833abb0ecb49e2c6b75dd46 (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.cc | 10 | ||||
-rw-r--r-- | third_party/address_sorting/address_sorting.c | 1 |
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; } |