[ 
https://issues.apache.org/jira/browse/IMPALA-13125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18016813#comment-18016813
 ] 

ASF subversion and git services commented on IMPALA-13125:
----------------------------------------------------------

Commit 843de44788758ab00694bc456e0d92608a8a4c60 in impala's branch 
refs/heads/master from Csaba Ringhofer
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=843de4478 ]

IMPALA-13125: Fix pairwise test vector generation

Replaced allpairspy with a homemade pair finder that
seems to find a somewhat less optimal (larger) covering
vector set but works reliably with filters. For details
see tests/common/test_vector.py

Also fixes a few test issues uncovered. Some fixes are
copied from https://gerrit.cloudera.org/#/c/23319/

Added the possibility of shuffling vectors to get a
different test set (env var IMPALA_TEST_VECTOR_SEED).
By default the algorithm is deterministic so the test
set won't change between runs (similarly to allpairspy).

Added a new constraint to test only a single compression
per file format in some tests to reduce the number of
new vectors.

EE + custom_cluster test count in exhaustive runs:
before patch:                   ~11000
after patch:                    ~16000
without compression constraint: ~17000

Change-Id: I419c24659a08d8d6592fadbbd5b764ff73cbba3e
Reviewed-on: http://gerrit.cloudera.org:8080/23342
Reviewed-by: Impala Public Jenkins <[email protected]>
Tested-by: Impala Public Jenkins <[email protected]>


> Set of tests for exploration_strategy=exhaustive varies between python 2 and 3
> ------------------------------------------------------------------------------
>
>                 Key: IMPALA-13125
>                 URL: https://issues.apache.org/jira/browse/IMPALA-13125
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Infrastructure
>    Affects Versions: Impala 4.5.0
>            Reporter: Joe McDonnell
>            Assignee: Csaba Ringhofer
>            Priority: Major
>
> TLDR: Python 3 runs a different set of exhaustive tests than Python 2.
> Longer version:
> When looking into running Python 3 tests, I noticed that the set of tests 
> running for the exhaustive tests is different for Python 2 vs Python 3. This 
> was surprising.
> It turns out there is a distinction between run-tests.py's 
> --exploration_strategy=exhaustive vs the 
> --workload_exploration_strategy="functional-query:exhaustive" option. The 
> exhaustive job is actually doing the latter. This means that individual 
> function-query workload classes see cls.exploration_strategy() == 
> "exhaustive", but the logic that generates the test vector still see 
> exploration_strategy=core and it still uses pairwise generation. Code:
> {noformat}
>     if exploration_strategy == 'exhaustive':
>       return self.__generate_exhaustive_combinations()
>     elif exploration_strategy in ['core', 'pairwise']:
>       return self.__generate_pairwise_combinations(){noformat}
> [https://github.com/apache/impala/blob/master/tests/common/test_vector.py#L165-L168]
> Python 2 vs 3 changes the way dictionaries work, impacting the order of test 
> dimensions and how it picks tests. So, the Python 3 exhaustive tests are 
> different. This may expose latent bugs, because some combinations that meet 
> the constraints are never actually run (e.g. some json encodings don't have 
> the decimal_tiny table).
> We can work to make them behave similarly, using pytest's --collect-only 
> option to look at the differences (and compare them to actual existing runs).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to