This is an automated email from the ASF dual-hosted git repository.

prozsa pushed a commit to branch branch-4.5.0
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 1c764c6f524a7593078125b3cba16a7948c1bf3b
Author: Riza Suminto <riza.sumi...@cloudera.com>
AuthorDate: Sat Feb 15 17:54:10 2025 -0800

    IMPALA-13761: Fix test_coord_only_pool_exec_groups
    
    IMPALA-13201 adds test_coord_only_pool_exec_groups. This test failed in
    TestAdmissionControllerWithACService due to unaccounted AdmissionD as
    the extra statestore subscriber. This patch fix the issue by using
    expected_subscribers and expected_num_impalads argument for
    CustomClusterTestSuite._start_impala_cluster() and relies on wait
    mechanism inside it.
    
    This patch also does some adjustments:
    1. Tweak __run_assert_systables_query to not use
       execute_query_using_vector from IMPALA-13694.
    2. Remove default_impala_client() call, first added by IMPALA-13668, and
       use self.client instead.
    3. Fixed minor flake8 issue at test_coord_only_pool_happy_path.
    These make it possible to backport IMPALA-13201 and IMPALA-13761
    together to older release/maintenance branch.
    
    Testing:
    Run the test with this command:
    impala-py.test --exploration=exhaustive \
      -k test_coord_only_pool custom_cluster/test_admission_controller.py
    
    Change-Id: I00b83e706aca3325890736133b2d1dcf735b19df
    Reviewed-on: http://gerrit.cloudera.org:8080/22486
    Reviewed-by: Peter Rozsa <pro...@cloudera.com>
    Reviewed-by: Jason Fehr <jf...@cloudera.com>
    Tested-by: Jason Fehr <jf...@cloudera.com>
---
 tests/custom_cluster/test_admission_controller.py | 26 +++++++++++++++--------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/tests/custom_cluster/test_admission_controller.py 
b/tests/custom_cluster/test_admission_controller.py
index 3fb8f5bf3..8449cab6a 100644
--- a/tests/custom_cluster/test_admission_controller.py
+++ b/tests/custom_cluster/test_admission_controller.py
@@ -1833,8 +1833,9 @@ class 
TestAdmissionController(TestAdmissionControllerBase, HS2TestSuite):
         'llama-site-onlycoords.xml'."""
 
     vector.set_exec_option('request_pool', 'onlycoords')
-    result = self.execute_query_using_vector(query, vector)
-    assert result.success
+    with self.create_impala_client(protocol=vector.get_value('protocol')) as 
client:
+      result = self.execute_query_using_client(client, query, vector)
+      assert result.success
 
     self.__assert_systables_query(result.runtime_profile, expected_coords,
       expected_frag_counts)
@@ -1860,7 +1861,7 @@ class 
TestAdmissionController(TestAdmissionControllerBase, HS2TestSuite):
     # without running any on the executors.
     self.__run_assert_systables_query(
         vector=vector,
-        expected_frag_counts=[4, 2, 2,],
+        expected_frag_counts=[4, 2, 2],
         query="select a.test_name, b.db_user from functional.jointbl a inner 
join "
               "sys.impala_query_live b on a.test_name = b.db_name"),
 
@@ -1915,13 +1916,12 @@ class 
TestAdmissionController(TestAdmissionControllerBase, HS2TestSuite):
     coord_to_term.kill()
 
     vector.set_exec_option('request_pool', 'onlycoords')
-    client = self.default_impala_client(vector.get_value('protocol'))
 
     done_waiting = False
     iterations = 0
     while not done_waiting and iterations < 20:
       try:
-        result = self.execute_query_using_client(client, ACTIVE_SQL, vector)
+        result = self.execute_query_using_client(self.client, ACTIVE_SQL, 
vector)
         assert result.success
         done_waiting = True
       except Exception as e:
@@ -1987,25 +1987,33 @@ class 
TestAdmissionController(TestAdmissionControllerBase, HS2TestSuite):
 
     # Assert queries can be run when no executors are started.
     self.__run_assert_systables_query(vector)
+    # If not using admissiond, there should be 2 statestore subscribers now
+    # (1 impalad and 1 catalogd). Otherwise, admissiond is the 3rd statestore 
subscriber.
+    expected_subscribers = 3 if self.get_ac_log_name() == 'admissiond' else 2
+    expected_num_impalads = 1
 
     # Add a single executor for the small executor group set.
+    expected_subscribers += 1
+    expected_num_impalads += 1
     self._start_impala_cluster(
         options=[
             
"--impalad_args=--executor_groups=root.group-set-small-group-000:1"],
         add_executors=True,
         cluster_size=1,
-        wait_for_backends=False)
-    self.cluster.statestored.service.wait_for_live_subscribers(3, timeout=30)
+        expected_subscribers=expected_subscribers,
+        expected_num_impalads=expected_num_impalads)
     self.__run_assert_systables_query(vector)
 
     # Add two executors for the large executor group set.
+    expected_subscribers += 2
+    expected_num_impalads += 2
     self._start_impala_cluster(
         options=[
             
"--impalad_args=--executor_groups=root.group-set-small-group-000:2"],
         add_executors=True,
         cluster_size=2,
-        wait_for_backends=False)
-    self.cluster.statestored.service.wait_for_live_subscribers(5, timeout=30)
+        expected_subscribers=expected_subscribers,
+        expected_num_impalads=expected_num_impalads)
     self.__run_assert_systables_query(vector)
 
 

Reply via email to