You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by ed...@apache.org on 2022/11/10 19:09:55 UTC

[cassandra] branch trunk updated (bdfa27f246 -> f3865771cb)

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

edimitrova pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


    from bdfa27f246 Merge branch 'cassandra-4.1' into trunk
     add 7572725def [CASSANDRA-17950] Enable dtest-offheap in CircleCI
     add 2b3d0d32a7 Merge branch 'cassandra-3.11' into cassandra-4.0
     add 98f11efe44 Merge branch 'cassandra-4.0' into cassandra-4.1
     new f3865771cb Merge branch 'cassandra-4.1' into trunk

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .circleci/config-2_1.yml               |  264 +++++++-
 .circleci/config-2_1.yml.mid_res.patch |   84 ++-
 .circleci/config.yml                   | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.HIGHRES           | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.LOWRES            | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.MIDRES            | 1052 ++++++++++++++++++++++++++++++--
 .circleci/generate.sh                  |    2 +
 7 files changed, 4367 insertions(+), 185 deletions(-)


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


[cassandra] 01/01: Merge branch 'cassandra-4.1' into trunk

Posted by ed...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

edimitrova pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git

commit f3865771cb3c09304db3129b52d6fe47b89ab4e5
Merge: bdfa27f246 98f11efe44
Author: Ekaterina Dimitrova <ek...@datastax.com>
AuthorDate: Thu Nov 10 12:37:53 2022 -0500

    Merge branch 'cassandra-4.1' into trunk

 .circleci/config-2_1.yml               |  264 +++++++-
 .circleci/config-2_1.yml.mid_res.patch |   84 ++-
 .circleci/config.yml                   | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.HIGHRES           | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.LOWRES            | 1050 +++++++++++++++++++++++++++++--
 .circleci/config.yml.MIDRES            | 1052 ++++++++++++++++++++++++++++++--
 .circleci/generate.sh                  |    2 +
 7 files changed, 4367 insertions(+), 185 deletions(-)

diff --cc .circleci/config-2_1.yml.mid_res.patch
index 406ef00b74,55f637d739..5e48831a17
--- a/.circleci/config-2_1.yml.mid_res.patch
+++ b/.circleci/config-2_1.yml.mid_res.patch
@@@ -1,6 -1,6 +1,6 @@@
- --- config-2_1.yml	2022-10-25 11:32:05.718970156 +0100
- +++ config-2_1.yml.MIDRES	2022-10-25 11:32:31.352928378 +0100
 ---- config-2_1.yml	2022-11-08 17:14:23.000000000 -0500
 -+++ config-2_1.yml.MIDRES	2022-11-08 17:39:30.000000000 -0500
 -@@ -148,14 +148,14 @@
++--- config-2_1.yml	2022-11-09 14:47:20.000000000 -0500
+++++ config-2_1.yml.MIDRES	2022-11-09 14:55:10.000000000 -0500
 +@@ -149,14 +149,14 @@
   j8_par_executor: &j8_par_executor
     executor:
       name: java8-executor
@@@ -129,7 -129,7 +129,7 @@@
   
   j8_separate_jobs: &j8_separate_jobs
     jobs:
- @@ -1478,7 +1502,7 @@
 -@@ -1527,7 +1551,7 @@
++@@ -1612,7 +1636,7 @@
             target: testclasslist-system-keyspace-directory
   
     j8_dtests_vnode:
@@@ -138,25 -138,43 +138,43 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1492,7 +1516,7 @@
 -@@ -1541,7 +1565,7 @@
++@@ -1626,7 +1650,7 @@
             pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
   
+    j8_dtests_offheap:
+ -    <<: *j8_par_executor
+ +    <<: *j8_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1555,7 +1579,7 @@
++@@ -1640,7 +1664,7 @@
+            pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
+  
     j11_dtests_vnode:
  -    <<: *j11_par_executor
  +    <<: *j11_large_par_executor
       steps:
       - attach_workspace:
           at: /home/cassandra
- @@ -1507,7 +1531,7 @@
 -@@ -1570,7 +1594,7 @@
++@@ -1655,7 +1679,7 @@
           pytest_extra_args: '--use-vnodes --num-tokens=16 --skip-resource-intensive-tests'
   
+    j11_dtests_offheap:
+ -    <<: *j11_par_executor
+ +    <<: *j11_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1585,7 +1609,7 @@
++@@ -1670,7 +1694,7 @@
+            pytest_extra_args: '--use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests'
+  
     j8_dtests:
  -    <<: *j8_par_executor
  +    <<: *j8_large_par_executor
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1521,7 +1545,7 @@
 -@@ -1599,7 +1623,7 @@
++@@ -1684,7 +1708,7 @@
             pytest_extra_args: '--skip-resource-intensive-tests'
   
     j11_dtests:
@@@ -165,7 -183,7 +183,7 @@@
       steps:
       - attach_workspace:
           at: /home/cassandra
- @@ -1536,7 +1560,7 @@
 -@@ -1614,7 +1638,7 @@
++@@ -1699,7 +1723,7 @@
           pytest_extra_args: '--skip-resource-intensive-tests'
   
     j8_upgrade_dtests:
@@@ -174,7 -192,7 +192,7 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1550,7 +1574,7 @@
 -@@ -1628,7 +1652,7 @@
++@@ -1713,7 +1737,7 @@
             pytest_extra_args: '--execute-upgrade-tests-only --upgrade-target-version-only --upgrade-version-selection all'
   
     j8_cqlsh_dtests_py3_vnode:
@@@ -183,7 -201,16 +201,16 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1565,7 +1589,7 @@
 -@@ -1643,7 +1667,7 @@
++@@ -1728,7 +1752,7 @@
+            extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
+  
+    j8_cqlsh_dtests_py3_offheap:
+ -    <<: *j8_par_executor
+ +    <<: *j8_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1658,7 +1682,7 @@
++@@ -1743,7 +1767,7 @@
             extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
   
     j8_cqlsh_dtests_py38_vnode:
@@@ -192,7 -219,16 +219,16 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1583,7 +1607,7 @@
 -@@ -1676,7 +1700,7 @@
++@@ -1761,7 +1785,7 @@
+            python_version: '3.8'
+  
+    j8_cqlsh_dtests_py38_offheap:
+ -    <<: *j8_par_executor
+ +    <<: *j8_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1694,7 +1718,7 @@
++@@ -1779,7 +1803,7 @@
             python_version: '3.8'
   
     j8_cqlsh_dtests_py3:
@@@ -201,7 -237,7 +237,7 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1598,7 +1622,7 @@
 -@@ -1709,7 +1733,7 @@
++@@ -1794,7 +1818,7 @@
             extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
   
     j8_cqlsh_dtests_py38:
@@@ -210,7 -246,7 +246,7 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1616,7 +1640,7 @@
 -@@ -1727,7 +1751,7 @@
++@@ -1812,7 +1836,7 @@
             python_version: '3.8'
   
     j11_cqlsh_dtests_py3_vnode:
@@@ -219,7 -255,16 +255,16 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1631,7 +1655,7 @@
 -@@ -1742,7 +1766,7 @@
++@@ -1827,7 +1851,7 @@
+            extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
+  
+    j11_cqlsh_dtests_py3_offheap:
+ -    <<: *j11_par_executor
+ +    <<: *j11_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1757,7 +1781,7 @@
++@@ -1842,7 +1866,7 @@
             extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
   
     j11_cqlsh_dtests_py38_vnode:
@@@ -228,7 -273,16 +273,16 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1649,7 +1673,7 @@
 -@@ -1775,7 +1799,7 @@
++@@ -1860,7 +1884,7 @@
+            python_version: '3.8'
+  
+    j11_cqlsh_dtests_py38_offheap:
+ -    <<: *j11_par_executor
+ +    <<: *j11_large_par_executor
+      steps:
+        - attach_workspace:
+            at: /home/cassandra
 -@@ -1793,7 +1817,7 @@
++@@ -1878,7 +1902,7 @@
             python_version: '3.8'
   
     j11_cqlsh_dtests_py3:
@@@ -237,7 -291,7 +291,7 @@@
       steps:
         - attach_workspace:
             at: /home/cassandra
- @@ -1664,7 +1688,7 @@
 -@@ -1808,7 +1832,7 @@
++@@ -1893,7 +1917,7 @@
             extra_env_args: 'CQLSH_PYTHON=/usr/bin/python3.6'
   
     j11_cqlsh_dtests_py38:
diff --cc .circleci/config.yml
index 40f3188660,7f069254dc..737c361a83
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@@ -3703,199 -4189,67 +4279,302 @@@ jobs
      - REPEATED_ANT_TEST_COUNT: 500
      - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
      - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +  j11_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 4
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
 +          time mv ~/cassandra /tmp
 +          cd /tmp/cassandra
 +          if [ -d ~/dtest_jars ]; then
 +            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
 +          fi
 +          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
 +          if [ -z "$test_timeout" ]; then
 +            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
 +          fi
 +          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
 +        no_output_timeout: 15m
 +    - store_test_results:
 +        path: /tmp/cassandra/build/test/output/
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/output
 +        destination: junitxml
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/logs
 +        destination: logs
 +    environment:
 +    - ANT_HOME: /usr/share/ant
 +    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +    - LANG: en_US.UTF-8
 +    - KEEP_TEST_DIR: true
 +    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
 +    - PYTHONIOENCODING: utf-8
 +    - PYTHONUNBUFFERED: true
 +    - CASS_DRIVER_NO_EXTENSIONS: true
 +    - CASS_DRIVER_NO_CYTHON: true
 +    - CASSANDRA_SKIP_SYNC: true
 +    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
 +    - DTEST_BRANCH: trunk
 +    - CCM_MAX_HEAP_SIZE: 1024M
 +    - CCM_HEAP_NEWSIZE: 256M
 +    - REPEATED_TESTS_STOP_ON_FAILURE: false
 +    - REPEATED_UTESTS: null
 +    - REPEATED_UTESTS_COUNT: 500
 +    - REPEATED_UTESTS_FQLTOOL: null
 +    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
 +    - REPEATED_UTESTS_LONG: null
 +    - REPEATED_UTESTS_LONG_COUNT: 100
 +    - REPEATED_UTESTS_STRESS: null
 +    - REPEATED_UTESTS_STRESS_COUNT: 500
 +    - REPEATED_SIMULATOR_DTESTS: null
 +    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
 +    - REPEATED_JVM_DTESTS: null
 +    - REPEATED_JVM_DTESTS_COUNT: 500
 +    - REPEATED_JVM_UPGRADE_DTESTS: null
 +    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
 +    - REPEATED_DTESTS: null
 +    - REPEATED_DTESTS_COUNT: 500
 +    - REPEATED_UPGRADE_DTESTS: null
 +    - REPEATED_UPGRADE_DTESTS_COUNT: 25
 +    - REPEATED_ANT_TEST_TARGET: testsome
 +    - REPEATED_ANT_TEST_CLASS: null
 +    - REPEATED_ANT_TEST_METHODS: null
 +    - REPEATED_ANT_TEST_VNODES: false
 +    - REPEATED_ANT_TEST_COUNT: 500
 +    - JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - CASSANDRA_USE_JDK11: true
 +  j8_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 4
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
-           time mv ~/cassandra /tmp
-           cd /tmp/cassandra
-           if [ -d ~/dtest_jars ]; then
-             cp ~/dtest_jars/dtest* /tmp/cassandra/build/
-           fi
-           test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
-           if [ -z "$test_timeout" ]; then
-             test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          time mv ~/cassandra /tmp
++          cd /tmp/cassandra
++          if [ -d ~/dtest_jars ]; then
++            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
++          fi
++          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
++          if [ -z "$test_timeout" ]; then
++            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          fi
++          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
++        no_output_timeout: 15m
++    - store_test_results:
++        path: /tmp/cassandra/build/test/output/
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/output
++        destination: junitxml
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/logs
++        destination: logs
++    environment:
++    - ANT_HOME: /usr/share/ant
++    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
++    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - LANG: en_US.UTF-8
++    - KEEP_TEST_DIR: true
++    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
++    - PYTHONIOENCODING: utf-8
++    - PYTHONUNBUFFERED: true
++    - CASS_DRIVER_NO_EXTENSIONS: true
++    - CASS_DRIVER_NO_CYTHON: true
++    - CASSANDRA_SKIP_SYNC: true
++    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
++    - DTEST_BRANCH: trunk
++    - CCM_MAX_HEAP_SIZE: 1024M
++    - CCM_HEAP_NEWSIZE: 256M
++    - REPEATED_TESTS_STOP_ON_FAILURE: false
++    - REPEATED_UTESTS: null
++    - REPEATED_UTESTS_COUNT: 500
++    - REPEATED_UTESTS_FQLTOOL: null
++    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
++    - REPEATED_UTESTS_LONG: null
++    - REPEATED_UTESTS_LONG_COUNT: 100
++    - REPEATED_UTESTS_STRESS: null
++    - REPEATED_UTESTS_STRESS_COUNT: 500
++    - REPEATED_SIMULATOR_DTESTS: null
++    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
++    - REPEATED_JVM_DTESTS: null
++    - REPEATED_JVM_DTESTS_COUNT: 500
++    - REPEATED_JVM_UPGRADE_DTESTS: null
++    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
++    - REPEATED_DTESTS: null
++    - REPEATED_DTESTS_COUNT: 500
++    - REPEATED_UPGRADE_DTESTS: null
++    - REPEATED_UPGRADE_DTESTS_COUNT: 25
++    - REPEATED_ANT_TEST_TARGET: testsome
++    - REPEATED_ANT_TEST_CLASS: null
++    - REPEATED_ANT_TEST_METHODS: null
++    - REPEATED_ANT_TEST_VNODES: false
++    - REPEATED_ANT_TEST_COUNT: 500
++    - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
+   j8_cqlsh_dtests_py3_offheap:
+     docker:
+     - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
+     resource_class: medium
+     working_directory: ~/
+     shell: /bin/bash -eo pipefail -l
+     parallelism: 4
+     steps:
+     - attach_workspace:
+         at: /home/cassandra
+     - run:
+         name: Clone Cassandra dtest Repository (via git)
+         command: |
+           git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
+     - run:
+         name: Configure virtualenv and python Dependencies
+         command: |
+           # note, this should be super quick as all dependencies should be pre-installed in the docker image
+           # if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
+           # we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
+           # rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
+           pip3 uninstall -y cqlsh
+           pip3 freeze
+     - run:
+         name: Determine Tests to Run (j8_dtests_offheap)
+         no_output_timeout: 5m
+         command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n  export \nfi\n\necho \"***Collected DTests (j8_dtests_offheap)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --us [...]
+     - run:
+         name: Run dtests (j8_dtests_offheap)
+         no_output_timeout: 15m
+         command: |
+           echo "cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt"
+           cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt
+ 
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
+             export CQLSH_PYTHON=/usr/bin/python3.6
            fi
-           ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
-         no_output_timeout: 15m
+ 
+           java -version
+           cd ~/cassandra-dtest
+           mkdir -p /tmp/dtest
+ 
+           echo "env: $(env)"
+           echo "** done env"
+           mkdir -p /tmp/results/dtests
+           # we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
+           export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt`
+           set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_dtests_offheap.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
      - store_test_results:
-         path: /tmp/cassandra/build/test/output/
+         path: /tmp/results
      - store_artifacts:
-         path: /tmp/cassandra/build/test/output
-         destination: junitxml
+         path: /tmp/dtest
+         destination: dtest_j8_dtests_offheap
      - store_artifacts:
-         path: /tmp/cassandra/build/test/logs
-         destination: logs
+         path: ~/cassandra-dtest/logs
+         destination: dtest_j8_dtests_offheap_logs
      environment:
      - ANT_HOME: /usr/share/ant
      - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
diff --cc .circleci/config.yml.HIGHRES
index 56d16623a8,078097eebf..cfbf494949
--- a/.circleci/config.yml.HIGHRES
+++ b/.circleci/config.yml.HIGHRES
@@@ -3703,199 -4189,67 +4279,302 @@@ jobs
      - REPEATED_ANT_TEST_COUNT: 500
      - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
      - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +  j11_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11:latest
 +    resource_class: xlarge
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 100
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
 +          time mv ~/cassandra /tmp
 +          cd /tmp/cassandra
 +          if [ -d ~/dtest_jars ]; then
 +            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
 +          fi
 +          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
 +          if [ -z "$test_timeout" ]; then
 +            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
 +          fi
 +          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
 +        no_output_timeout: 15m
 +    - store_test_results:
 +        path: /tmp/cassandra/build/test/output/
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/output
 +        destination: junitxml
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/logs
 +        destination: logs
 +    environment:
 +    - ANT_HOME: /usr/share/ant
 +    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +    - LANG: en_US.UTF-8
 +    - KEEP_TEST_DIR: true
 +    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
 +    - PYTHONIOENCODING: utf-8
 +    - PYTHONUNBUFFERED: true
 +    - CASS_DRIVER_NO_EXTENSIONS: true
 +    - CASS_DRIVER_NO_CYTHON: true
 +    - CASSANDRA_SKIP_SYNC: true
 +    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
 +    - DTEST_BRANCH: trunk
 +    - CCM_MAX_HEAP_SIZE: 1024M
 +    - CCM_HEAP_NEWSIZE: 256M
 +    - REPEATED_TESTS_STOP_ON_FAILURE: false
 +    - REPEATED_UTESTS: null
 +    - REPEATED_UTESTS_COUNT: 500
 +    - REPEATED_UTESTS_FQLTOOL: null
 +    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
 +    - REPEATED_UTESTS_LONG: null
 +    - REPEATED_UTESTS_LONG_COUNT: 100
 +    - REPEATED_UTESTS_STRESS: null
 +    - REPEATED_UTESTS_STRESS_COUNT: 500
 +    - REPEATED_SIMULATOR_DTESTS: null
 +    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
 +    - REPEATED_JVM_DTESTS: null
 +    - REPEATED_JVM_DTESTS_COUNT: 500
 +    - REPEATED_JVM_UPGRADE_DTESTS: null
 +    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
 +    - REPEATED_DTESTS: null
 +    - REPEATED_DTESTS_COUNT: 500
 +    - REPEATED_UPGRADE_DTESTS: null
 +    - REPEATED_UPGRADE_DTESTS_COUNT: 25
 +    - REPEATED_ANT_TEST_TARGET: testsome
 +    - REPEATED_ANT_TEST_CLASS: null
 +    - REPEATED_ANT_TEST_METHODS: null
 +    - REPEATED_ANT_TEST_VNODES: false
 +    - REPEATED_ANT_TEST_COUNT: 500
 +    - JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - CASSANDRA_USE_JDK11: true
 +  j8_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
 +    resource_class: xlarge
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 100
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
-           time mv ~/cassandra /tmp
-           cd /tmp/cassandra
-           if [ -d ~/dtest_jars ]; then
-             cp ~/dtest_jars/dtest* /tmp/cassandra/build/
-           fi
-           test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
-           if [ -z "$test_timeout" ]; then
-             test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          time mv ~/cassandra /tmp
++          cd /tmp/cassandra
++          if [ -d ~/dtest_jars ]; then
++            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
++          fi
++          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
++          if [ -z "$test_timeout" ]; then
++            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          fi
++          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
++        no_output_timeout: 15m
++    - store_test_results:
++        path: /tmp/cassandra/build/test/output/
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/output
++        destination: junitxml
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/logs
++        destination: logs
++    environment:
++    - ANT_HOME: /usr/share/ant
++    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
++    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - LANG: en_US.UTF-8
++    - KEEP_TEST_DIR: true
++    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
++    - PYTHONIOENCODING: utf-8
++    - PYTHONUNBUFFERED: true
++    - CASS_DRIVER_NO_EXTENSIONS: true
++    - CASS_DRIVER_NO_CYTHON: true
++    - CASSANDRA_SKIP_SYNC: true
++    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
++    - DTEST_BRANCH: trunk
++    - CCM_MAX_HEAP_SIZE: 1024M
++    - CCM_HEAP_NEWSIZE: 256M
++    - REPEATED_TESTS_STOP_ON_FAILURE: false
++    - REPEATED_UTESTS: null
++    - REPEATED_UTESTS_COUNT: 500
++    - REPEATED_UTESTS_FQLTOOL: null
++    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
++    - REPEATED_UTESTS_LONG: null
++    - REPEATED_UTESTS_LONG_COUNT: 100
++    - REPEATED_UTESTS_STRESS: null
++    - REPEATED_UTESTS_STRESS_COUNT: 500
++    - REPEATED_SIMULATOR_DTESTS: null
++    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
++    - REPEATED_JVM_DTESTS: null
++    - REPEATED_JVM_DTESTS_COUNT: 500
++    - REPEATED_JVM_UPGRADE_DTESTS: null
++    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
++    - REPEATED_DTESTS: null
++    - REPEATED_DTESTS_COUNT: 500
++    - REPEATED_UPGRADE_DTESTS: null
++    - REPEATED_UPGRADE_DTESTS_COUNT: 25
++    - REPEATED_ANT_TEST_TARGET: testsome
++    - REPEATED_ANT_TEST_CLASS: null
++    - REPEATED_ANT_TEST_METHODS: null
++    - REPEATED_ANT_TEST_VNODES: false
++    - REPEATED_ANT_TEST_COUNT: 500
++    - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
+   j8_cqlsh_dtests_py3_offheap:
+     docker:
+     - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
+     resource_class: xlarge
+     working_directory: ~/
+     shell: /bin/bash -eo pipefail -l
+     parallelism: 100
+     steps:
+     - attach_workspace:
+         at: /home/cassandra
+     - run:
+         name: Clone Cassandra dtest Repository (via git)
+         command: |
+           git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
+     - run:
+         name: Configure virtualenv and python Dependencies
+         command: |
+           # note, this should be super quick as all dependencies should be pre-installed in the docker image
+           # if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
+           # we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
+           # rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
+           pip3 uninstall -y cqlsh
+           pip3 freeze
+     - run:
+         name: Determine Tests to Run (j8_dtests_offheap)
+         no_output_timeout: 5m
+         command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n  export \nfi\n\necho \"***Collected DTests (j8_dtests_offheap)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --us [...]
+     - run:
+         name: Run dtests (j8_dtests_offheap)
+         no_output_timeout: 15m
+         command: |
+           echo "cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt"
+           cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt
+ 
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
+             export CQLSH_PYTHON=/usr/bin/python3.6
            fi
-           ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
-         no_output_timeout: 15m
+ 
+           java -version
+           cd ~/cassandra-dtest
+           mkdir -p /tmp/dtest
+ 
+           echo "env: $(env)"
+           echo "** done env"
+           mkdir -p /tmp/results/dtests
+           # we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
+           export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt`
+           set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_dtests_offheap.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
      - store_test_results:
-         path: /tmp/cassandra/build/test/output/
+         path: /tmp/results
      - store_artifacts:
-         path: /tmp/cassandra/build/test/output
-         destination: junitxml
+         path: /tmp/dtest
+         destination: dtest_j8_dtests_offheap
      - store_artifacts:
-         path: /tmp/cassandra/build/test/logs
-         destination: logs
+         path: ~/cassandra-dtest/logs
+         destination: dtest_j8_dtests_offheap_logs
      environment:
      - ANT_HOME: /usr/share/ant
      - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
diff --cc .circleci/config.yml.LOWRES
index 40f3188660,7f069254dc..737c361a83
--- a/.circleci/config.yml.LOWRES
+++ b/.circleci/config.yml.LOWRES
@@@ -3703,199 -4189,67 +4279,302 @@@ jobs
      - REPEATED_ANT_TEST_COUNT: 500
      - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
      - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +  j11_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 4
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
 +          time mv ~/cassandra /tmp
 +          cd /tmp/cassandra
 +          if [ -d ~/dtest_jars ]; then
 +            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
 +          fi
 +          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
 +          if [ -z "$test_timeout" ]; then
 +            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
 +          fi
 +          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
 +        no_output_timeout: 15m
 +    - store_test_results:
 +        path: /tmp/cassandra/build/test/output/
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/output
 +        destination: junitxml
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/logs
 +        destination: logs
 +    environment:
 +    - ANT_HOME: /usr/share/ant
 +    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +    - LANG: en_US.UTF-8
 +    - KEEP_TEST_DIR: true
 +    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
 +    - PYTHONIOENCODING: utf-8
 +    - PYTHONUNBUFFERED: true
 +    - CASS_DRIVER_NO_EXTENSIONS: true
 +    - CASS_DRIVER_NO_CYTHON: true
 +    - CASSANDRA_SKIP_SYNC: true
 +    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
 +    - DTEST_BRANCH: trunk
 +    - CCM_MAX_HEAP_SIZE: 1024M
 +    - CCM_HEAP_NEWSIZE: 256M
 +    - REPEATED_TESTS_STOP_ON_FAILURE: false
 +    - REPEATED_UTESTS: null
 +    - REPEATED_UTESTS_COUNT: 500
 +    - REPEATED_UTESTS_FQLTOOL: null
 +    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
 +    - REPEATED_UTESTS_LONG: null
 +    - REPEATED_UTESTS_LONG_COUNT: 100
 +    - REPEATED_UTESTS_STRESS: null
 +    - REPEATED_UTESTS_STRESS_COUNT: 500
 +    - REPEATED_SIMULATOR_DTESTS: null
 +    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
 +    - REPEATED_JVM_DTESTS: null
 +    - REPEATED_JVM_DTESTS_COUNT: 500
 +    - REPEATED_JVM_UPGRADE_DTESTS: null
 +    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
 +    - REPEATED_DTESTS: null
 +    - REPEATED_DTESTS_COUNT: 500
 +    - REPEATED_UPGRADE_DTESTS: null
 +    - REPEATED_UPGRADE_DTESTS_COUNT: 25
 +    - REPEATED_ANT_TEST_TARGET: testsome
 +    - REPEATED_ANT_TEST_CLASS: null
 +    - REPEATED_ANT_TEST_METHODS: null
 +    - REPEATED_ANT_TEST_VNODES: false
 +    - REPEATED_ANT_TEST_COUNT: 500
 +    - JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - CASSANDRA_USE_JDK11: true
 +  j8_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 4
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
-           time mv ~/cassandra /tmp
-           cd /tmp/cassandra
-           if [ -d ~/dtest_jars ]; then
-             cp ~/dtest_jars/dtest* /tmp/cassandra/build/
-           fi
-           test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
-           if [ -z "$test_timeout" ]; then
-             test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          time mv ~/cassandra /tmp
++          cd /tmp/cassandra
++          if [ -d ~/dtest_jars ]; then
++            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
++          fi
++          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
++          if [ -z "$test_timeout" ]; then
++            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          fi
++          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
++        no_output_timeout: 15m
++    - store_test_results:
++        path: /tmp/cassandra/build/test/output/
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/output
++        destination: junitxml
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/logs
++        destination: logs
++    environment:
++    - ANT_HOME: /usr/share/ant
++    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
++    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - LANG: en_US.UTF-8
++    - KEEP_TEST_DIR: true
++    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
++    - PYTHONIOENCODING: utf-8
++    - PYTHONUNBUFFERED: true
++    - CASS_DRIVER_NO_EXTENSIONS: true
++    - CASS_DRIVER_NO_CYTHON: true
++    - CASSANDRA_SKIP_SYNC: true
++    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
++    - DTEST_BRANCH: trunk
++    - CCM_MAX_HEAP_SIZE: 1024M
++    - CCM_HEAP_NEWSIZE: 256M
++    - REPEATED_TESTS_STOP_ON_FAILURE: false
++    - REPEATED_UTESTS: null
++    - REPEATED_UTESTS_COUNT: 500
++    - REPEATED_UTESTS_FQLTOOL: null
++    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
++    - REPEATED_UTESTS_LONG: null
++    - REPEATED_UTESTS_LONG_COUNT: 100
++    - REPEATED_UTESTS_STRESS: null
++    - REPEATED_UTESTS_STRESS_COUNT: 500
++    - REPEATED_SIMULATOR_DTESTS: null
++    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
++    - REPEATED_JVM_DTESTS: null
++    - REPEATED_JVM_DTESTS_COUNT: 500
++    - REPEATED_JVM_UPGRADE_DTESTS: null
++    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
++    - REPEATED_DTESTS: null
++    - REPEATED_DTESTS_COUNT: 500
++    - REPEATED_UPGRADE_DTESTS: null
++    - REPEATED_UPGRADE_DTESTS_COUNT: 25
++    - REPEATED_ANT_TEST_TARGET: testsome
++    - REPEATED_ANT_TEST_CLASS: null
++    - REPEATED_ANT_TEST_METHODS: null
++    - REPEATED_ANT_TEST_VNODES: false
++    - REPEATED_ANT_TEST_COUNT: 500
++    - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
+   j8_cqlsh_dtests_py3_offheap:
+     docker:
+     - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
+     resource_class: medium
+     working_directory: ~/
+     shell: /bin/bash -eo pipefail -l
+     parallelism: 4
+     steps:
+     - attach_workspace:
+         at: /home/cassandra
+     - run:
+         name: Clone Cassandra dtest Repository (via git)
+         command: |
+           git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
+     - run:
+         name: Configure virtualenv and python Dependencies
+         command: |
+           # note, this should be super quick as all dependencies should be pre-installed in the docker image
+           # if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
+           # we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
+           # rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
+           pip3 uninstall -y cqlsh
+           pip3 freeze
+     - run:
+         name: Determine Tests to Run (j8_dtests_offheap)
+         no_output_timeout: 5m
+         command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n  export \nfi\n\necho \"***Collected DTests (j8_dtests_offheap)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --us [...]
+     - run:
+         name: Run dtests (j8_dtests_offheap)
+         no_output_timeout: 15m
+         command: |
+           echo "cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt"
+           cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt
+ 
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
+             export CQLSH_PYTHON=/usr/bin/python3.6
            fi
-           ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
-         no_output_timeout: 15m
+ 
+           java -version
+           cd ~/cassandra-dtest
+           mkdir -p /tmp/dtest
+ 
+           echo "env: $(env)"
+           echo "** done env"
+           mkdir -p /tmp/results/dtests
+           # we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
+           export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt`
+           set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_dtests_offheap.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
      - store_test_results:
-         path: /tmp/cassandra/build/test/output/
+         path: /tmp/results
      - store_artifacts:
-         path: /tmp/cassandra/build/test/output
-         destination: junitxml
+         path: /tmp/dtest
+         destination: dtest_j8_dtests_offheap
      - store_artifacts:
-         path: /tmp/cassandra/build/test/logs
-         destination: logs
+         path: ~/cassandra-dtest/logs
+         destination: dtest_j8_dtests_offheap_logs
      environment:
      - ANT_HOME: /usr/share/ant
      - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
diff --cc .circleci/config.yml.MIDRES
index db51259047,2c94d5bde2..812636db39
--- a/.circleci/config.yml.MIDRES
+++ b/.circleci/config.yml.MIDRES
@@@ -3703,199 -4189,67 +4279,302 @@@ jobs
      - REPEATED_ANT_TEST_COUNT: 500
      - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
      - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +  j11_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 25
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
 +          time mv ~/cassandra /tmp
 +          cd /tmp/cassandra
 +          if [ -d ~/dtest_jars ]; then
 +            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
 +          fi
 +          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
 +          if [ -z "$test_timeout" ]; then
 +            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
 +          fi
 +          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
 +        no_output_timeout: 15m
 +    - store_test_results:
 +        path: /tmp/cassandra/build/test/output/
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/output
 +        destination: junitxml
 +    - store_artifacts:
 +        path: /tmp/cassandra/build/test/logs
 +        destination: logs
 +    environment:
 +    - ANT_HOME: /usr/share/ant
 +    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
 +    - LANG: en_US.UTF-8
 +    - KEEP_TEST_DIR: true
 +    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
 +    - PYTHONIOENCODING: utf-8
 +    - PYTHONUNBUFFERED: true
 +    - CASS_DRIVER_NO_EXTENSIONS: true
 +    - CASS_DRIVER_NO_CYTHON: true
 +    - CASSANDRA_SKIP_SYNC: true
 +    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
 +    - DTEST_BRANCH: trunk
 +    - CCM_MAX_HEAP_SIZE: 1024M
 +    - CCM_HEAP_NEWSIZE: 256M
 +    - REPEATED_TESTS_STOP_ON_FAILURE: false
 +    - REPEATED_UTESTS: null
 +    - REPEATED_UTESTS_COUNT: 500
 +    - REPEATED_UTESTS_FQLTOOL: null
 +    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
 +    - REPEATED_UTESTS_LONG: null
 +    - REPEATED_UTESTS_LONG_COUNT: 100
 +    - REPEATED_UTESTS_STRESS: null
 +    - REPEATED_UTESTS_STRESS_COUNT: 500
 +    - REPEATED_SIMULATOR_DTESTS: null
 +    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
 +    - REPEATED_JVM_DTESTS: null
 +    - REPEATED_JVM_DTESTS_COUNT: 500
 +    - REPEATED_JVM_UPGRADE_DTESTS: null
 +    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
 +    - REPEATED_DTESTS: null
 +    - REPEATED_DTESTS_COUNT: 500
 +    - REPEATED_UPGRADE_DTESTS: null
 +    - REPEATED_UPGRADE_DTESTS_COUNT: 25
 +    - REPEATED_ANT_TEST_TARGET: testsome
 +    - REPEATED_ANT_TEST_CLASS: null
 +    - REPEATED_ANT_TEST_METHODS: null
 +    - REPEATED_ANT_TEST_VNODES: false
 +    - REPEATED_ANT_TEST_COUNT: 500
 +    - JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - JDK_HOME: /usr/lib/jvm/java-11-openjdk-amd64
 +    - CASSANDRA_USE_JDK11: true
 +  j8_utests_trie:
 +    docker:
 +    - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
 +    resource_class: medium
 +    working_directory: ~/
 +    shell: /bin/bash -eo pipefail -l
 +    parallelism: 25
 +    steps:
 +    - attach_workspace:
 +        at: /home/cassandra
 +    - run:
 +        name: Determine unit Tests to Run
 +        command: |
 +          # reminder: this code (along with all the steps) is independently executed on every circle container
 +          # so the goal here is to get the circleci script to return the tests *this* container will run
 +          # which we do via the `circleci` cli tool.
 +
 +          rm -fr ~/cassandra-dtest/upgrade_tests
 +          echo "***java tests***"
 +
 +          # get all of our unit test filenames
 +          set -eo pipefail && circleci tests glob "$HOME/cassandra/test/unit/**/*.java" > /tmp/all_java_unit_tests.txt
 +
 +          # split up the unit tests into groups based on the number of containers we have
 +          set -eo pipefail && circleci tests split --split-by=timings --timings-type=filename --index=${CIRCLE_NODE_INDEX} --total=${CIRCLE_NODE_TOTAL} /tmp/all_java_unit_tests.txt > /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt
 +          set -eo pipefail && cat /tmp/java_tests_${CIRCLE_NODE_INDEX}.txt | sed "s;^/home/cassandra/cassandra/test/unit/;;g" | grep "Test\.java$"  > /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +          echo "** /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt"
 +          cat /tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt
 +        no_output_timeout: 15m
 +    - run:
 +        name: Log Environment Information
 +        command: |
 +          echo '*** id ***'
 +          id
 +          echo '*** cat /proc/cpuinfo ***'
 +          cat /proc/cpuinfo
 +          echo '*** free -m ***'
 +          free -m
 +          echo '*** df -m ***'
 +          df -m
 +          echo '*** ifconfig -a ***'
 +          ifconfig -a
 +          echo '*** uname -a ***'
 +          uname -a
 +          echo '*** mount ***'
 +          mount
 +          echo '*** env ***'
 +          env
 +          echo '*** java ***'
 +          which java
 +          java -version
 +    - run:
 +        name: Run Unit Tests (testclasslist-trie)
 +        command: |
 +          set -x
 +          export PATH=$JAVA_HOME/bin:$PATH
-           time mv ~/cassandra /tmp
-           cd /tmp/cassandra
-           if [ -d ~/dtest_jars ]; then
-             cp ~/dtest_jars/dtest* /tmp/cassandra/build/
-           fi
-           test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
-           if [ -z "$test_timeout" ]; then
-             test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          time mv ~/cassandra /tmp
++          cd /tmp/cassandra
++          if [ -d ~/dtest_jars ]; then
++            cp ~/dtest_jars/dtest* /tmp/cassandra/build/
++          fi
++          test_timeout=$(grep 'name="test.unit.timeout"' build.xml | awk -F'"' '{print $4}' || true)
++          if [ -z "$test_timeout" ]; then
++            test_timeout=$(grep 'name="test.timeout"' build.xml | awk -F'"' '{print $4}')
++          fi
++          ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
++        no_output_timeout: 15m
++    - store_test_results:
++        path: /tmp/cassandra/build/test/output/
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/output
++        destination: junitxml
++    - store_artifacts:
++        path: /tmp/cassandra/build/test/logs
++        destination: logs
++    environment:
++    - ANT_HOME: /usr/share/ant
++    - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64
++    - JAVA8_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - LANG: en_US.UTF-8
++    - KEEP_TEST_DIR: true
++    - DEFAULT_DIR: /home/cassandra/cassandra-dtest
++    - PYTHONIOENCODING: utf-8
++    - PYTHONUNBUFFERED: true
++    - CASS_DRIVER_NO_EXTENSIONS: true
++    - CASS_DRIVER_NO_CYTHON: true
++    - CASSANDRA_SKIP_SYNC: true
++    - DTEST_REPO: https://github.com/apache/cassandra-dtest.git
++    - DTEST_BRANCH: trunk
++    - CCM_MAX_HEAP_SIZE: 1024M
++    - CCM_HEAP_NEWSIZE: 256M
++    - REPEATED_TESTS_STOP_ON_FAILURE: false
++    - REPEATED_UTESTS: null
++    - REPEATED_UTESTS_COUNT: 500
++    - REPEATED_UTESTS_FQLTOOL: null
++    - REPEATED_UTESTS_FQLTOOL_COUNT: 500
++    - REPEATED_UTESTS_LONG: null
++    - REPEATED_UTESTS_LONG_COUNT: 100
++    - REPEATED_UTESTS_STRESS: null
++    - REPEATED_UTESTS_STRESS_COUNT: 500
++    - REPEATED_SIMULATOR_DTESTS: null
++    - REPEATED_SIMULATOR_DTESTS_COUNT: 500
++    - REPEATED_JVM_DTESTS: null
++    - REPEATED_JVM_DTESTS_COUNT: 500
++    - REPEATED_JVM_UPGRADE_DTESTS: null
++    - REPEATED_JVM_UPGRADE_DTESTS_COUNT: 500
++    - REPEATED_DTESTS: null
++    - REPEATED_DTESTS_COUNT: 500
++    - REPEATED_UPGRADE_DTESTS: null
++    - REPEATED_UPGRADE_DTESTS_COUNT: 25
++    - REPEATED_ANT_TEST_TARGET: testsome
++    - REPEATED_ANT_TEST_CLASS: null
++    - REPEATED_ANT_TEST_METHODS: null
++    - REPEATED_ANT_TEST_VNODES: false
++    - REPEATED_ANT_TEST_COUNT: 500
++    - JAVA_HOME: /usr/lib/jvm/java-8-openjdk-amd64
++    - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64
+   j8_cqlsh_dtests_py3_offheap:
+     docker:
+     - image: apache/cassandra-testing-ubuntu2004-java11-w-dependencies:latest
+     resource_class: large
+     working_directory: ~/
+     shell: /bin/bash -eo pipefail -l
+     parallelism: 50
+     steps:
+     - attach_workspace:
+         at: /home/cassandra
+     - run:
+         name: Clone Cassandra dtest Repository (via git)
+         command: |
+           git clone --single-branch --branch $DTEST_BRANCH --depth 1 $DTEST_REPO ~/cassandra-dtest
+     - run:
+         name: Configure virtualenv and python Dependencies
+         command: |
+           # note, this should be super quick as all dependencies should be pre-installed in the docker image
+           # if additional dependencies were added to requirmeents.txt and the docker image hasn't been updated
+           # we'd have to install it here at runtime -- which will make things slow, so do yourself a favor and
+           # rebuild the docker image! (it automatically pulls the latest requirements.txt on build)
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt
+           pip3 uninstall -y cqlsh
+           pip3 freeze
+     - run:
+         name: Determine Tests to Run (j8_dtests_offheap)
+         no_output_timeout: 5m
+         command: "# reminder: this code (along with all the steps) is independently executed on every circle container\n# so the goal here is to get the circleci script to return the tests *this* container will run\n# which we do via the `circleci` cli tool.\n\ncd cassandra-dtest\nsource ~/env3.6/bin/activate\nexport PATH=$JAVA_HOME/bin:$PATH\n\nif [ -n '' ]; then\n  export \nfi\n\necho \"***Collected DTests (j8_dtests_offheap)***\"\nset -eo pipefail && ./run_dtests.py --use-vnodes --us [...]
+     - run:
+         name: Run dtests (j8_dtests_offheap)
+         no_output_timeout: 15m
+         command: |
+           echo "cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt"
+           cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt
+ 
+           source ~/env3.6/bin/activate
+           export PATH=$JAVA_HOME/bin:$PATH
+           if [ -n 'CQLSH_PYTHON=/usr/bin/python3.6' ]; then
+             export CQLSH_PYTHON=/usr/bin/python3.6
            fi
-           ant testclasslist-trie   -Dtest.timeout="$test_timeout" -Dtest.classlistfile=/tmp/java_tests_${CIRCLE_NODE_INDEX}_final.txt -Dtest.classlistprefix=unit -Dno-build-test=true
-         no_output_timeout: 15m
+ 
+           java -version
+           cd ~/cassandra-dtest
+           mkdir -p /tmp/dtest
+ 
+           echo "env: $(env)"
+           echo "** done env"
+           mkdir -p /tmp/results/dtests
+           # we need the "set -o pipefail" here so that the exit code that circleci will actually use is from pytest and not the exit code from tee
+           export SPLIT_TESTS=`cat /tmp/split_dtest_tests_j8_dtests_offheap_final.txt`
+           set -o pipefail && cd ~/cassandra-dtest && pytest --use-vnodes --num-tokens=16 --use-off-heap-memtables --skip-resource-intensive-tests --log-cli-level=DEBUG --junit-xml=/tmp/results/dtests/pytest_result_j8_dtests_offheap.xml -s --cassandra-dir=/home/cassandra/cassandra --keep-test-dir $SPLIT_TESTS 2>&1 | tee /tmp/dtest/stdout.txt
      - store_test_results:
-         path: /tmp/cassandra/build/test/output/
+         path: /tmp/results
      - store_artifacts:
-         path: /tmp/cassandra/build/test/output
-         destination: junitxml
+         path: /tmp/dtest
+         destination: dtest_j8_dtests_offheap
      - store_artifacts:
-         path: /tmp/cassandra/build/test/logs
-         destination: logs
+         path: ~/cassandra-dtest/logs
+         destination: dtest_j8_dtests_offheap_logs
      environment:
      - ANT_HOME: /usr/share/ant
      - JAVA11_HOME: /usr/lib/jvm/java-11-openjdk-amd64


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