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

David Capwell commented on CASSANDRA-16328:
-------------------------------------------

{noformat}
… RUN_STATIC_UPGRADE_MATRIX … 
What is the purpose of this variable?
When would we want/need to use it?
{noformat}

Here is all the references I see

{code}
$ grep -r --exclude '*.pyc' RUN_STATIC_UPGRADE_MATRIX *
dtest.py:RUN_STATIC_UPGRADE_MATRIX = 
os.environ.get('RUN_STATIC_UPGRADE_MATRIX', '').lower() in ('yes', 'true')
upgrade_tests/paging_test.py:from dtest import RUN_STATIC_UPGRADE_MATRIX, 
run_scenarios, MAJOR_VERSION_4
upgrade_tests/paging_test.py:        upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or 
spec['UPGRADE_PATH'].upgrade_meta.matches_current_env_version_family
upgrade_tests/thrift_upgrade_test.py:from dtest import 
RUN_STATIC_UPGRADE_MATRIX, Tester
upgrade_tests/thrift_upgrade_test.py:    upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or 
spec['UPGRADE_PATH'].upgrade_meta.matches_current_env_version_family
upgrade_tests/upgrade_through_versions_test.py:from dtest import 
RUN_STATIC_UPGRADE_MATRIX, Tester
upgrade_tests/upgrade_through_versions_test.py:    upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or 
version_metas[-1].matches_current_env_version_family
upgrade_tests/upgrade_through_versions_test.py:        if not 
RUN_STATIC_UPGRADE_MATRIX:
upgrade_tests/cql_tests.py:from dtest import RUN_STATIC_UPGRADE_MATRIX, 
MAJOR_VERSION_4
upgrade_tests/cql_tests.py:    upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or 
spec['UPGRADE_PATH'].upgrade_meta.matches_current_env_version_family
upgrade_tests/regression_test.py:from dtest import RUN_STATIC_UPGRADE_MATRIX
upgrade_tests/regression_test.py:    upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or 
path.upgrade_meta.matches_current_env_version_family
upgrade_tests/upgrade_manifest.py:from dtest import RUN_STATIC_UPGRADE_MATRIX
upgrade_tests/upgrade_manifest.py:            if not (RUN_STATIC_UPGRADE_MATRIX 
or OVERRIDE_MANIFEST):
upgrade_tests/upgrade_udtfix_test.py:from dtest import 
RUN_STATIC_UPGRADE_MATRIX, Tester
upgrade_tests/upgrade_udtfix_test.py:    upgrade_applies_to_env = 
RUN_STATIC_UPGRADE_MATRIX or start_family_applies
{code}

For upgrade_tests/upgrade_manifest.py, its used as follows

{code}
        if not (RUN_STATIC_UPGRADE_MATRIX or OVERRIDE_MANIFEST):
                if destination_meta.matches_current_env_version_family:
                    # looks like this test should actually run in the current 
env, so let's set the final version to match the env exactly
                    oldmeta = destination_meta
                    newmeta = destination_meta.clone_with_local_env_version()
                    logger.debug("{} appears applicable to current env. 
Overriding final test version from {} to {}".format(path_name, oldmeta.version, 
newmeta.version))
                    destination_meta = newmeta
{code}

This is what I was talked about when saying only committed code gets tested, if 
RUN_STATIC_UPGRADE_MATRIX isn't defined (or is false) then we replace the 
destination (why not origin?) with the version provided to cassandra_dir if 
their "family" matches.  The other usages look to be used for filtering, so if 
RUN_STATIC_UPGRADE_MATRIX is defined, or the test version matches the 
cassandra_dir version then run.

I am not sure why it is this way, or why origin was excluded (changes to 3.11 
will not be tested against trunk upgrades until committed).


bq. When I look through the tests run I only see indev_3_11_x_To_indev_trunk 
tests. I would have thought we should be including all 
indev_3_0_x_To_indev_trunk as well?

bq. looks like we don't specify indev_3_0_x to trunk:

I filed CASSANDRA-16329 to look closer into this. Marcus you are correct that 
3.0 branch excludes trunk, but 3.0 release includes it 
(https://github.com/apache/cassandra-dtest/blob/trunk/upgrade_tests/upgrade_manifest.py#L155)...
 yet 3.0 release isn't in the test output!

I was hoping to punt that issue into the other JIRA as I see that logging never 
triggers, and stdout debugging also doesn't show to screen, so root causing 
might take a bit more time.

bq. Here's the patch for the same in ci-cassandra.a.o in-sync

Thanks, was planning to file after review was happy with the change, ill update 
the links to include yours!

> python upgrade tests include tests which are not impacted by the version 
> under test
> -----------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-16328
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16328
>             Project: Cassandra
>          Issue Type: Bug
>          Components: CI, Test/dtest/python
>            Reporter: David Capwell
>            Assignee: David Capwell
>            Priority: Normal
>             Fix For: 4.0-beta
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> When we try to run the upgrade tests for trunk, we get tests such as 
> upgrade_tests.cql_tests.TestCQLNodes2RF1_Upgrade_indev_2_2_x_To_indev_3_0_x 
> to run, which do not include the trunk source.  Since these tests are costly 
> and can be flaky, running the unneeded tests for a release increases the cost 
> and can make it harder to see if any new failures.
> See 
> https://app.circleci.com/pipelines/github/dcapwell/cassandra/841/workflows/bcadf6e6-8d04-4010-8a47-99f7f9b5ac1d/jobs/4949/tests



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to