From e758737da38e67f9e86271cc426e08b9332d064b Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Wed, 23 Jun 2021 03:54:42 +0000 Subject: [PATCH 1/6] add test corpus Signed-off-by: chaoqin-li1123 --- test/server/server_corpus/0 | 22 ++++ test/server/server_corpus/000 | 198 ++++++++++++++++++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 test/server/server_corpus/0 create mode 100644 test/server/server_corpus/000 diff --git a/test/server/server_corpus/0 b/test/server/server_corpus/0 new file mode 100644 index 0000000000000..0cd72b71fe869 --- /dev/null +++ b/test/server/server_corpus/0 @@ -0,0 +1,22 @@ +dynamic_resources { +} +cluster_manager { + local_cluster_name: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" +} +hidden_envoy_deprecated_runtime { +} +admin { +} +stats_config { + use_all_default_tags { + value: true + } +} +layered_runtime { + layers { + disk_layer { + append_service_cluster: true + } + } +} +use_tcp_for_dns_lookups: true \ No newline at end of file diff --git a/test/server/server_corpus/000 b/test/server/server_corpus/000 new file mode 100644 index 0000000000000..27da94f700a99 --- /dev/null +++ b/test/server/server_corpus/000 @@ -0,0 +1,198 @@ +static_resources { + clusters { + name: "ser" + type: STRICT_DNS + connect_timeout { + seconds: 1025 + nanos: 262239 + } + lb_policy: RING_HASH + health_checks { + timeout { + nanos: 262239 + } + interval { + seconds: 10838081697 + nanos: 2655 + } + unhealthy_threshold { + } + healthy_threshold { + } + http_health_check { + host: "\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\037\001\037\037\037\037\037\037\037\037\037\037\037\037\037f\037\037\037\037" + path: "&" + } + no_traffic_interval { + nanos: 32 + } + healthy_edge_interval { + nanos: 95 + } + interval_jitter_percent: 687361 + tls_options { + alpn_protocols: "" + } + no_traffic_healthy_interval { + seconds: 1025 + nanos: 95 + } + } + dns_refresh_rate { + nanos: 2555904 + } + dns_resolvers { + socket_address { + address: "127.0.0.1" + port_value: 9901 + } + } + lb_subset_config { + subset_selectors { + } + } + metadata { + } + common_lb_config { + healthy_panic_threshold { + value: 1.39067116059563e-309 + } + ignore_new_hosts_until_first_hc: true + consistent_hashing_lb_config { + hash_balance_factor { + value: 2752512 + } + } + } + load_assignment { + cluster_name: "." + endpoints { + locality { + } + lb_endpoints { + endpoint { + address { + socket_address { + protocol: UDP + address: "127.0.0.1" + port_value: 16 + } + } + } + health_status: DEGRADED + load_balancing_weight { + value: 1 + } + } + proximity { + value: 8388608 + } + } + endpoints { + lb_endpoints { + health_status: UNHEALTHY + } + proximity { + value: 50 + } + } + endpoints { + locality { + } + priority: 1 + } + endpoints { + locality { + } + lb_endpoints { + health_status: HEALTHY + } + lb_endpoints { + endpoint { + address { + socket_address { + address: "\025" + ipv4_compat: true + } + } + health_check_config { + hostname: "\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177\177" + } + } + health_status: HEALTHY + } + lb_endpoints { + endpoint { + address { + socket_address { + protocol: UDP + address: "127.0.0.1" + port_value: 16 + } + } + } + health_status: HEALTHY + } + priority: 16 + } + endpoints { + locality { + } + lb_endpoints { + metadata { + filter_metadata { + key: "" + value { + } + } + filter_metadata { + key: "\025" + value { + } + } + filter_metadata { + key: "l" + value { + } + } + } + load_balancing_weight { + value: 1 + } + } + priority: 1 + } + } + respect_dns_ttl: true + load_balancing_policy { + } + upstream_http_protocol_options { + } + track_timeout_budgets: true + preconnect_policy { + } + } +} +dynamic_resources { +} +flags_path: "." +admin { +} +enable_dispatcher_stats: true +stats_server_version_override { +} +use_tcp_for_dns_lookups: true +default_config_source { + self { + } +} +watchdogs { + worker_watchdog { + miss_timeout { + nanos: 262239 + } + multikill_timeout { + seconds: 2949120 + } + } +} From f2ec599a128f1532b68a44f3150159ee3d66a686 Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Wed, 23 Jun 2021 15:12:25 +0000 Subject: [PATCH 2/6] copy param to member Signed-off-by: chaoqin-li1123 --- source/common/network/dns_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/common/network/dns_impl.h b/source/common/network/dns_impl.h index f58609ad674a8..18c3f1d9e0d6e 100644 --- a/source/common/network/dns_impl.h +++ b/source/common/network/dns_impl.h @@ -106,7 +106,7 @@ class DnsResolverImpl : public DnsResolver, protected Logger::Loggable events_; const absl::optional resolvers_csv_; From 6a1210759761ac498ddbf4b153f3e90a1f22bedc Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Wed, 23 Jun 2021 15:32:10 +0000 Subject: [PATCH 3/6] clean up corpus Signed-off-by: chaoqin-li1123 --- test/server/server_corpus/0 | 22 ------------------- .../{000 => dns_resolver_refresh} | 0 2 files changed, 22 deletions(-) delete mode 100644 test/server/server_corpus/0 rename test/server/server_corpus/{000 => dns_resolver_refresh} (100%) diff --git a/test/server/server_corpus/0 b/test/server/server_corpus/0 deleted file mode 100644 index 0cd72b71fe869..0000000000000 --- a/test/server/server_corpus/0 +++ /dev/null @@ -1,22 +0,0 @@ -dynamic_resources { -} -cluster_manager { - local_cluster_name: "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" -} -hidden_envoy_deprecated_runtime { -} -admin { -} -stats_config { - use_all_default_tags { - value: true - } -} -layered_runtime { - layers { - disk_layer { - append_service_cluster: true - } - } -} -use_tcp_for_dns_lookups: true \ No newline at end of file diff --git a/test/server/server_corpus/000 b/test/server/server_corpus/dns_resolver_refresh similarity index 100% rename from test/server/server_corpus/000 rename to test/server/server_corpus/dns_resolver_refresh From 01d979788ae6b18515176a7d01ed226ef676839f Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Wed, 23 Jun 2021 15:50:58 +0000 Subject: [PATCH 4/6] clean up corpus Signed-off-by: chaoqin-li1123 --- test/server/server_corpus/dns_resolver_refresh | 1 - 1 file changed, 1 deletion(-) diff --git a/test/server/server_corpus/dns_resolver_refresh b/test/server/server_corpus/dns_resolver_refresh index 27da94f700a99..76f5dee4e2c29 100644 --- a/test/server/server_corpus/dns_resolver_refresh +++ b/test/server/server_corpus/dns_resolver_refresh @@ -181,7 +181,6 @@ admin { enable_dispatcher_stats: true stats_server_version_override { } -use_tcp_for_dns_lookups: true default_config_source { self { } From f069f854c0b49193db55549df40199b9b09265cb Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Wed, 11 Aug 2021 20:18:46 +0000 Subject: [PATCH 5/6] add regression test for asan build Signed-off-by: chaoqin-li1123 --- test/common/network/dns_impl_test.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/common/network/dns_impl_test.cc b/test/common/network/dns_impl_test.cc index ff513d7128108..93d9ad1383b01 100644 --- a/test/common/network/dns_impl_test.cc +++ b/test/common/network/dns_impl_test.cc @@ -441,11 +441,12 @@ class DnsImplTest : public testing::TestWithParam { Network::Test::getCanonicalLoopbackAddress(GetParam())); listener_ = dispatcher_->createListener(socket_, *server_, true); updateDnsResolverOptions(); + envoy::config::core::v3::DnsResolverOptions dns_resolver_options = dns_resolver_options_; if (setResolverInConstructor()) { resolver_ = dispatcher_->createDnsResolver({socket_->addressProvider().localAddress()}, - dns_resolver_options_); + dns_resolver_options); } else { - resolver_ = dispatcher_->createDnsResolver({}, dns_resolver_options_); + resolver_ = dispatcher_->createDnsResolver({}, dns_resolver_options); } // Point c-ares at the listener with no search domains and TCP-only. From a0691e080f3db386cbaa8fefe644c660b86647ab Mon Sep 17 00:00:00 2001 From: chaoqin-li1123 Date: Thu, 12 Aug 2021 15:21:13 +0000 Subject: [PATCH 6/6] add comment Signed-off-by: chaoqin-li1123 --- test/common/network/dns_impl_test.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/test/common/network/dns_impl_test.cc b/test/common/network/dns_impl_test.cc index 93d9ad1383b01..57e5415dc0461 100644 --- a/test/common/network/dns_impl_test.cc +++ b/test/common/network/dns_impl_test.cc @@ -441,6 +441,7 @@ class DnsImplTest : public testing::TestWithParam { Network::Test::getCanonicalLoopbackAddress(GetParam())); listener_ = dispatcher_->createListener(socket_, *server_, true); updateDnsResolverOptions(); + // Create a resolver options on stack here to emulate what actually happens in envoy bootstrap. envoy::config::core::v3::DnsResolverOptions dns_resolver_options = dns_resolver_options_; if (setResolverInConstructor()) { resolver_ = dispatcher_->createDnsResolver({socket_->addressProvider().localAddress()},