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

Jacek Lewandowski commented on CASSANDRA-18499:
-----------------------------------------------

I don't think this is the correct fix for this problem. 
{{upgrade_through_versions}} is not a regular upgrade test which where we test 
the ability to directly upgrade from version a to b. This test is performing 
step by step upgrade 2.2 -> 3.0 -> 3.11 -> 4.0 -> 4.1 -> 5.0. Removing the 
failing test cases does not fix the problem. 

And the real problems are in CI setup and one we fixed today in CCM. For the CI 
setup, the problem is that 2.2, 3.0 and 3.11 will not run with Java 11+. If we 
run this test for Java 11 - 2.2, 3.0 and 3.11 should run with Java 8 regardless 
of the selected version. Similar situation will be with running upgrade tests 
with Java 17 when we want to verify upgrade from 4.x running with J8 or J11 to 
5.0 running with J17.

This is caused by the fact we somehow drop envs {{JAVA8_HOME}}, {{JAVA11_HOME}} 
and {{JAVA17_HOME}}. This is because CCM looks for those envs when it wants to 
select one of supported Java version for Cassandra version to be run. So even 
if we have the default Java 11, when it runs Cassandra 3.0 which supports only 
Java 8, it will look for JAVA8_HOME to use it instead. 

If you feel this will break something - I think that if you saw the problems 
they were caused by the CCM bug 
https://issues.apache.org/jira/browse/CASSANDRA-18678 which caused to disregard 
the default Java version if it was supported. I tried upgrade through versions 
test full suite, that is 2.2 -> 5.0, with default Java version 11, on the 
docker image, while keeping those envs set and it all worked fine. Didn't need 
to drop any test cases.


> Test Failure: 
> upgrade_through_versions_test.py::TestUpgrade::test_rolling_upgrade_with_internode_ssl
> ----------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-18499
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18499
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/dtest/python
>            Reporter: Andres de la Peña
>            Assignee: Michael Semb Wever
>            Priority: Normal
>             Fix For: 5.x
>
>
> The upgrade Python dtest 
> {{upgrade_through_versions_test.py::TestUpgrade::test_rolling_upgrade_with_internode_ssl}}
>  seems to fail on CircleCI at least for trunk:
>  * 
> [https://app.circleci.com/pipelines/github/adelapena/cassandra/2882/workflows/b9abc2b2-2e79-47b2-b7ce-c549e75293bc/jobs/42698/tests]
> {code:java}
> self = 
> <upgrade_tests.upgrade_through_versions_test.TestProtoV3Upgrade_AllVersions_EndsAt_Trunk_HEAD
>  object at 0x7f89fc0f17f0>
>     @pytest.mark.timeout(3000)
>     def test_rolling_upgrade_with_internode_ssl(self):
>         """
>         Rolling upgrade test using internode ssl.
>         """
> >       self.upgrade_scenario(rolling=True, internode_ssl=True)
> upgrade_tests/upgrade_through_versions_test.py:371: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> self = 
> <upgrade_tests.upgrade_through_versions_test.TestProtoV3Upgrade_AllVersions_EndsAt_Trunk_HEAD
>  object at 0x7f89fc0f17f0>
> populate = True, create_schema = True, rolling = True, after_upgrade_call = ()
> internode_ssl = True
>     def upgrade_scenario(self, populate=True, create_schema=True, 
> rolling=False, after_upgrade_call=(), internode_ssl=False):
>         # Record the rows we write as we go:
>         if populate:
>             self.prepare()
>         self.row_values = set()
>         cluster = self.cluster
>         if cluster.version() >= '3.0':
>             
> cluster.set_configuration_options({'enable_user_defined_functions': 'true',
>                                                
> 'enable_scripted_user_defined_functions': 'true'})
>         elif cluster.version() >= '2.2':
>             
> cluster.set_configuration_options({'enable_user_defined_functions': 'true'})
>     
>         if internode_ssl:
>             logger.debug("***using internode ssl***")
>             generate_ssl_stores(self.fixture_dtest_setup.test_path)
>             
> self.cluster.enable_internode_ssl(self.fixture_dtest_setup.test_path)
>     
>         if populate:
>             # Start with 3 node cluster
>             logger.debug('Creating cluster (%s)' % 
> self.test_version_metas[0].version)
>             cluster.populate(3)
>             [node.start(use_jna=True, wait_for_binary_proto=True) for node in 
> cluster.nodelist()]
>         else:
>             logger.debug("Skipping cluster creation (should already be 
> built)")
>     
>         # add nodes to self for convenience
>         for i, node in enumerate(cluster.nodelist(), 1):
>             node_name = 'node' + str(i)
>             setattr(self, node_name, node)
>     
>         if create_schema:
>             if rolling:
>                 self._create_schema_for_rolling()
>             else:
>                 self._create_schema()
>         else:
>             logger.debug("Skipping schema creation (should already be built)")
>     
>         self._log_current_ver(self.test_version_metas[0])
>     
>         if rolling:
>             # start up processes to write and verify data
>             write_proc, verify_proc, verification_queue = 
> self._start_continuous_write_and_verify(wait_for_rowcount=5000)
>     
>             # upgrade through versions
>             for version_meta in self.test_version_metas[1:]:
>                 if version_meta.family > '3.11' and internode_ssl:
>                     seeds =[]
>                     for seed in cluster.seeds:
> >                       seeds.append(seed.ip_addr + ':7001')
> E                       AttributeError: 'str' object has no attribute 
> 'ip_addr'
> upgrade_tests/upgrade_through_versions_test.py:422: AttributeError
> {code}
> I haven't seen this failure on Jenkins yet.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to