You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by st...@apache.org on 2024/01/19 06:39:59 UTC

(impala) 02/02: IMPALA-12716: Fix timeout thresholds in test_catalog_operations_with_rpc_retry

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

stigahuang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git

commit 5dfcdf1c9538b69e25b9bde1e86c209595b218b5
Author: stiga-huang <hu...@gmail.com>
AuthorDate: Fri Jan 19 07:36:19 2024 +0800

    IMPALA-12716: Fix timeout thresholds in test_catalog_operations_with_rpc_retry
    
    test_catalog_operations_with_rpc_retry uses a short timeout which could
    lead to failures in the first DESCRIBE statement. What it expects is the
    next REFRESH statement failed by the RPC timeout.
    
    The DESCRIBE statement triggers a catalog RPC of PrioritizeLoad on the
    table. The RPC usually finishes in 40ms. This patch bumps the RPC
    timeout of the test to be 100ms so it's long enough for DESCRIBE to
    succeed. Also bumps the sleep time in the REFRESH statement so its
    ExecDdl RPC will always time out in 100ms.
    
    Tests:
     - Ran the test till night (2700 times) and all passed.
    
    Change-Id: Ibbfa79d7f7530af4cfbb6f8ebc55e8267e3d3261
    Reviewed-on: http://gerrit.cloudera.org:8080/20924
    Reviewed-by: Wenzhe Zhou <wz...@cloudera.com>
    Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
 tests/custom_cluster/test_web_pages.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/tests/custom_cluster/test_web_pages.py b/tests/custom_cluster/test_web_pages.py
index 2c5b87015..2bd40764a 100644
--- a/tests/custom_cluster/test_web_pages.py
+++ b/tests/custom_cluster/test_web_pages.py
@@ -330,17 +330,19 @@ class TestWebPage(CustomClusterTestSuite):
     assert op["target_name"] == unique_database
 
   @CustomClusterTestSuite.with_args(
-    impalad_args="--catalog_client_rpc_timeout_ms=10 "
+    impalad_args="--catalog_client_rpc_timeout_ms=100 "
                  "--catalog_client_rpc_retry_interval_ms=10 "
                  "--catalog_client_connection_num_retries=2")
   def test_catalog_operations_with_rpc_retry(self):
     """Test that catalog RPC retries are all shown in the /operations page"""
     # Run a DESCRIBE to ensure the table is loaded. So the first RPC attempt will
-    # time out in its real work.
+    # time out in its real work. This triggers a PrioritizeLoad RPC which usually
+    # finishes in 40ms. So 100ms for catalog RPC timeout is enough.
     self.execute_query("describe functional.alltypes")
     try:
+      # This runs around 600ms with the debug action so the catalog RPC will timeout.
       self.execute_query("refresh functional.alltypes", {
-        "debug_action": "catalogd_refresh_hdfs_listing_delay:SLEEP@30"
+        "debug_action": "catalogd_refresh_hdfs_listing_delay:SLEEP@100"
       })
     except ImpalaBeeswaxException as e:
       assert "RPC recv timed out" in str(e)