From b08ebcd02e11ea59f158ac34d4b9f4f226d6f326 Mon Sep 17 00:00:00 2001 From: holmes1412 Date: Tue, 5 Mar 2024 22:49:58 +0800 Subject: [PATCH] Avoid WFSGResolverTask::dispatch() select more than once. --- src/nameservice/WFServiceGovernance.cc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/nameservice/WFServiceGovernance.cc b/src/nameservice/WFServiceGovernance.cc index 4fb1e897..dda3a6be 100644 --- a/src/nameservice/WFServiceGovernance.cc +++ b/src/nameservice/WFServiceGovernance.cc @@ -116,6 +116,12 @@ void WFSGResolverTask::dispatch() WFNSTracing *tracing = ns_params_.tracing; EndpointAddress *addr; + if (!sg_) + { + this->WFResolverTask::dispatch(); + return; + } + if (sg_->pre_select_) { WFConditional *cond = sg_->pre_select_(this); @@ -145,6 +151,7 @@ void WFSGResolverTask::dispatch() } tracing_data->history.push_back(addr); + sg_ = NULL; copy_host_port(ns_params_.uri, addr); dns_ttl_default_ = addr->params->dns_ttl_default;