You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@impala.apache.org by ta...@apache.org on 2019/06/25 15:45:19 UTC
[impala] branch master updated: IMPALA-8565: larger query in
test_admission_controller
This is an automated email from the ASF dual-hosted git repository.
tarmstrong pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/impala.git
The following commit(s) were added to refs/heads/master by this push:
new 84dfbb4 IMPALA-8565: larger query in test_admission_controller
84dfbb4 is described below
commit 84dfbb488089db8c5cb1b169c0c0aa6758b9656a
Author: Tim Armstrong <ta...@cloudera.com>
AuthorDate: Mon Jun 24 14:40:37 2019 -0700
IMPALA-8565: larger query in test_admission_controller
It appears that in some rare cases, fragments from the
query used can finish too early, before the client has
started fetching to hit EOS.
Reduce the chances of this happening by increasing
the query size and reducing the fetch frequency.
Testing:
I could not reproduce this rare flake locally, probably
because my hardware is different from the hardware that
the failures occurred on.
I looped the failing test for a while locally to try and
ensure that the flakiness did not at least get worse.
Change-Id: Ifd7716d5d5ccc4b2f79b3acf2fbc880716b4c0fe
Reviewed-on: http://gerrit.cloudera.org:8080/13718
Reviewed-by: Bikramjeet Vig <bi...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@cloudera.com>
---
tests/custom_cluster/test_admission_controller.py | 44 ++---------------------
1 file changed, 3 insertions(+), 41 deletions(-)
diff --git a/tests/custom_cluster/test_admission_controller.py b/tests/custom_cluster/test_admission_controller.py
index e4cbd85..e139eec 100644
--- a/tests/custom_cluster/test_admission_controller.py
+++ b/tests/custom_cluster/test_admission_controller.py
@@ -57,45 +57,7 @@ LOG = logging.getLogger('admission_test')
# the query active and consuming resources by fetching one row at a time. The
# where clause is for debugging purposes; each thread will insert its id so
# that running queries can be correlated with the thread that submitted them.
-QUERY = """
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-union all
-select * from alltypesagg where id != {0}
-"""
+QUERY = " union all ".join(["select * from functional.alltypesagg where id != {0}"] * 30)
# The statestore heartbeat and topic update frequency (ms). Set low for testing.
STATESTORE_RPC_FREQUENCY_MS = 100
@@ -1436,7 +1398,7 @@ class TestAdmissionControllerStress(TestAdmissionControllerBase):
# query. It needs to wait until the main thread requests it to end its query.
while not self.shutdown:
# The QUERY_TIMEOUT needs to stay active until the main thread requests it
- # to end. Otherwise, the query may get cancelled early. Fetch rows 5 times
+ # to end. Otherwise, the query may get cancelled early. Fetch rows 2 times
# per QUERY_TIMEOUT interval to keep the query active.
if self.query_end_behavior == 'QUERY_TIMEOUT' and \
self.query_state != 'COMPLETED':
@@ -1447,7 +1409,7 @@ class TestAdmissionControllerStress(TestAdmissionControllerBase):
# The query has released admission control resources
self.query_state = 'COMPLETED'
self.query_handle = None
- sleep(QUERY_END_TIMEOUT_S * 0.2)
+ sleep(QUERY_END_TIMEOUT_S * 0.5)
except Exception as e:
LOG.exception(e)
# Unknown errors will be raised later