diff --git a/test/cpp/end2end/grpclb_end2end_test.cc b/test/cpp/end2end/grpclb_end2end_test.cc index d84ec60a7bd..21cad11a712 100644 --- a/test/cpp/end2end/grpclb_end2end_test.cc +++ b/test/cpp/end2end/grpclb_end2end_test.cc @@ -1096,7 +1096,7 @@ TEST_F(UpdatesTest, ReresolveDeadBalancer) { SetNextResolution(addresses); addresses.clear(); addresses.emplace_back(AddressData{balancer_servers_[1].port_, true, ""}); - SetNextResolutionUponError(addresses); + SetNextReresolutionResponse(addresses); const std::vector<int> first_backend{GetBackendPorts()[0]}; const std::vector<int> second_backend{GetBackendPorts()[1]}; @@ -1178,14 +1178,12 @@ TEST_F(UpdatesTest, ReresolveDeadBackend) { addresses.emplace_back(AddressData{balancer_servers_[0].port_, true, ""}); addresses.emplace_back(AddressData{backend_servers_[0].port_, false, ""}); SetNextResolution(addresses); - // The re-resolution result will contain a balancer address. + // The re-resolution result will contain the addresses of the same balancer + // and a new fallback backend. addresses.clear(); - addresses.emplace_back(AddressData{balancer_servers_[1].port_, true, ""}); - SetNextResolutionUponError(addresses); - const std::vector<int> second_backend{backend_servers_[1].port_}; - - ScheduleResponseForBalancer( - 1, BalancerServiceImpl::BuildResponseForBackends(second_backend, {}), 0); + addresses.emplace_back(AddressData{balancer_servers_[0].port_, true, ""}); + addresses.emplace_back(AddressData{backend_servers_[1].port_, false, ""}); + SetNextReresolutionResponse(addresses); // Start servers and send 10 RPCs per server. gpr_log(GPR_INFO, "========= BEFORE FIRST BATCH =========="); @@ -1199,22 +1197,6 @@ TEST_F(UpdatesTest, ReresolveDeadBackend) { if (backends_[0]->Shutdown()) backend_servers_[0].Shutdown(); gpr_log(GPR_INFO, "********** KILLED BACKEND 0 *************"); - balancers_[0]->NotifyDoneWithServerlists(); - balancers_[1]->NotifyDoneWithServerlists(); - balancers_[2]->NotifyDoneWithServerlists(); - // Balancer 0 got a single request. - EXPECT_EQ(1U, balancer_servers_[0].service_->request_count()); - // but didn't send any response. - EXPECT_EQ(0U, balancer_servers_[0].service_->response_count()); - // Balancer 1 may have received a request if re-resolution is done quickly - // enough. - EXPECT_GE(balancer_servers_[1].service_->request_count(), 0U); - EXPECT_GE(balancer_servers_[1].service_->response_count(), 0U); - EXPECT_LE(balancer_servers_[1].service_->request_count(), 1U); - EXPECT_LE(balancer_servers_[1].service_->response_count(), 1U); - EXPECT_EQ(0U, balancer_servers_[2].service_->request_count()); - EXPECT_EQ(0U, balancer_servers_[2].service_->response_count()); - // Wait until re-resolution has finished, as signaled by the second backend // receiving a request. WaitForBackend(1); @@ -1230,8 +1212,8 @@ TEST_F(UpdatesTest, ReresolveDeadBackend) { balancers_[2]->NotifyDoneWithServerlists(); EXPECT_EQ(1U, balancer_servers_[0].service_->request_count()); EXPECT_EQ(0U, balancer_servers_[0].service_->response_count()); - EXPECT_EQ(1U, balancer_servers_[1].service_->request_count()); - EXPECT_EQ(1U, balancer_servers_[1].service_->response_count()); + EXPECT_EQ(0U, balancer_servers_[1].service_->request_count()); + EXPECT_EQ(0U, balancer_servers_[1].service_->response_count()); EXPECT_EQ(0U, balancer_servers_[2].service_->request_count()); EXPECT_EQ(0U, balancer_servers_[2].service_->response_count()); }