You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by mc...@apache.org on 2021/02/08 10:30:54 UTC

[cassandra] branch trunk updated (b04429b -> 637b242)

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

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


    from b04429b  ninja-fix debian cassandra.yaml patch for CASSANDRA-14793
     new d19f352  Generate JMH json report with `ant microbench`
     new 4333b5c  Merge branch 'cassandra-2.2' into cassandra-3.0
     new b0a5a7c  Merge branch 'cassandra-3.0' into cassandra-3.11
     new 637b242  Merge branch 'cassandra-3.11' into trunk

The 4 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:
 build.xml                     | 20 ++++++++++++++++----
 doc/source/development/ci.rst | 15 +++++++++------
 2 files changed, 25 insertions(+), 10 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-3.11' into trunk

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

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

commit 637b24284009c0e6c14c2817a6a673f5046dd763
Merge: b04429b b0a5a7c
Author: Mick Semb Wever <mc...@apache.org>
AuthorDate: Mon Feb 8 11:28:19 2021 +0100

    Merge branch 'cassandra-3.11' into trunk

 build.xml                     | 20 ++++++++++++++++----
 doc/source/development/ci.rst | 15 +++++++++------
 2 files changed, 25 insertions(+), 10 deletions(-)

diff --cc build.xml
index b2d0919,9e0bb73..c397019
--- a/build.xml
+++ b/build.xml
@@@ -157,105 -150,6 +157,105 @@@
          }
      </script>
  
 +    <condition property="java.version.8">
 +        <equals arg1="${ant.java.version}" arg2="1.8"/>
 +    </condition>
 +    <condition property="java.version.11">
 +        <not><isset property="java.version.8"/></not>
 +    </condition>
 +    <fail><condition><not><or>
 +        <isset property="java.version.8"/>
 +        <isset property="java.version.11"/>
 +    </or></not></condition></fail>
 +
 +    <resources id="_jvm11_arg_items">
 +        <string>-Djdk.attach.allowAttachSelf=true</string>
 +
 +        <string>-XX:+UseConcMarkSweepGC</string>
 +        <string>-XX:+CMSParallelRemarkEnabled</string>
 +        <string>-XX:SurvivorRatio=8</string>
 +        <string>-XX:MaxTenuringThreshold=1</string>
 +        <string>-XX:CMSInitiatingOccupancyFraction=75</string>
 +        <string>-XX:+UseCMSInitiatingOccupancyOnly</string>
 +        <string>-XX:CMSWaitDuration=10000</string>
 +        <string>-XX:+CMSParallelInitialMarkEnabled</string>
 +        <string>-XX:+CMSEdenChunksRecordAlways</string>
 +
 +        <string>--add-exports java.base/jdk.internal.misc=ALL-UNNAMED</string>
 +        <string>--add-exports java.base/jdk.internal.ref=ALL-UNNAMED</string>
 +        <string>--add-exports java.base/sun.nio.ch=ALL-UNNAMED</string>
 +        <string>--add-exports java.management.rmi/com.sun.jmx.remote.internal.rmi=ALL-UNNAMED</string>
 +        <string>--add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED</string>
 +        <string>--add-exports java.rmi/sun.rmi.server=ALL-UNNAMED</string>
 +        <string>--add-exports java.sql/java.sql=ALL-UNNAMED</string>
 +
 +        <string>--add-opens java.base/java.lang.module=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/java.net=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.loader=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.ref=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.reflect=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.math=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.module=ALL-UNNAMED</string>
 +        <string>--add-opens java.base/jdk.internal.util.jar=ALL-UNNAMED</string>
 +        <string>--add-opens jdk.management/com.sun.management.internal=ALL-UNNAMED</string>
 +    </resources>
 +    <pathconvert property="_jvm_args_concat" refid="_jvm11_arg_items" pathsep=" "/>
 +    <condition property="java11-jvmargs" value="${_jvm_args_concat}" else="">
 +        <not>
 +            <equals arg1="${ant.java.version}" arg2="1.8"/>
 +        </not>
 +    </condition>
 +
 +    <!--
 +      JVM arguments for tests.
 +
-       There is a race condition bug in java 11 (see CASSANDRA-15981) which causes a crash of the 
-       JVM; this race is between CMS and class unloading.  In java 8 we can cap the metaspace to 
-       make tests stable on low resource environments, but in java 11 we need to make it unlimited 
-       (don't define MaxMetaspaceSize) and disable class unloading in CMS outside of a 
++      There is a race condition bug in java 11 (see CASSANDRA-15981) which causes a crash of the
++      JVM; this race is between CMS and class unloading.  In java 8 we can cap the metaspace to
++      make tests stable on low resource environments, but in java 11 we need to make it unlimited
++      (don't define MaxMetaspaceSize) and disable class unloading in CMS outside of a
 +      stop-the-world pause.
 +    -->
 +    <resources id="_jvm8_test_arg_items">
 +      <!-- TODO see CASSANDRA-16212 - we seem to OOM non stop now after CASSANDRA-16212, so to have clean CI while this gets looked into, disabling limiting metaspace
 +        <string>-XX:MaxMetaspaceExpansion=64M</string>
 +        <string>-XX:MaxMetaspaceSize=512M</string>
 +        <string>-XX:MetaspaceSize=128M</string>
 +      -->
 +    </resources>
 +    <pathconvert property="_jvm8_test_arg_items_concat" refid="_jvm8_test_arg_items" pathsep=" "/>
 +    <resources id="_jvm11_test_arg_items">
 +        <string>-XX:-CMSClassUnloadingEnabled</string>
 +    </resources>
 +    <pathconvert property="_jvm11_test_arg_items_concat" refid="_jvm11_test_arg_items" pathsep=" "/>
 +    <condition property="test-jvmargs" value="${_jvm11_test_arg_items_concat}" else="${_jvm8_test_arg_items_concat}">
 +        <not>
 +            <equals arg1="${ant.java.version}" arg2="1.8"/>
 +        </not>
 +    </condition>
 +
 +    <!-- needed to compile org.apache.cassandra.utils.JMXServerUtils -->
 +    <condition property="jdk11-javac-exports" value="--add-exports java.rmi/sun.rmi.registry=ALL-UNNAMED" else="">
 +        <not>
 +            <equals arg1="${ant.java.version}" arg2="1.8"/>
 +        </not>
 +    </condition>
 +    <condition property="jdk11-javadoc-exports" value="${jdk11-javac-exports} --frames" else="">
 +        <not>
 +            <equals arg1="${ant.java.version}" arg2="1.8"/>
 +        </not>
 +    </condition>
 +
 +    <condition property="build.java.11">
 +        <istrue value="${use.jdk11}"/>
 +    </condition>
 +
 +    <condition property="source.version" value="8" else="11">
 +        <equals arg1="${java.version.8}" arg2="true"/>
 +    </condition>
 +    <condition property="target.version" value="8" else="11">
 +        <equals arg1="${java.version.8}" arg2="true"/>
 +    </condition>
 +
      <!--
           Add all the dependencies.
      -->
@@@ -2207,6 -1969,18 +2207,18 @@@
                    <include name="**/*.jar" />
                </fileset>
            </classpath>
+           <arg value="-foe"/>
+           <arg value="true"/>
+           <arg value="-rf"/>
+           <arg value="json"/>
+           <arg value="-rff"/>
+           <arg value="${build.test.dir}/jmh-result.json"/>
+           <arg value="-v"/>
+           <arg value="EXTRA"/>
+ 
 -          <!-- Broken: MutationBench,FastThreadLocalBench  (FIXME) -->
 -          <arg value="-e"/><arg value="MutationBench|FastThreadLocalBench"/>
++          <!-- Broken: ZeroCopyStreamingBench,MutationBench,FastThreadLocalBench  (FIXME) -->
++          <arg value="-e"/><arg value="ZeroCopyStreamingBench|MutationBench|FastThreadLocalBench"/>
+ 
            <arg value=".*microbench.*${benchmark.name}"/>
        </java>
    </target>
diff --cc doc/source/development/ci.rst
index d7a1bb6,0000000..4349259
mode 100644,000000..100644
--- a/doc/source/development/ci.rst
+++ b/doc/source/development/ci.rst
@@@ -1,81 -1,0 +1,84 @@@
 +.. Licensed to the Apache Software Foundation (ASF) under one
 +.. or more contributor license agreements.  See the NOTICE file
 +.. distributed with this work for additional information
 +.. regarding copyright ownership.  The ASF licenses this file
 +.. to you under the Apache License, Version 2.0 (the
 +.. "License"); you may not use this file except in compliance
 +.. with the License.  You may obtain a copy of the License at
 +..
 +..     http://www.apache.org/licenses/LICENSE-2.0
 +..
 +.. Unless required by applicable law or agreed to in writing, software
 +.. distributed under the License is distributed on an "AS IS" BASIS,
 +.. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +.. See the License for the specific language governing permissions and
 +.. limitations under the License.
 +
 +Jenkins CI Environment
 +**********************
 +
 +About CI testing and Apache Cassandra
 +=====================================
 +
 +Cassandra can be automatically tested using various test suites, that are either implemented based on JUnit or the `dtest <https://github.com/riptano/cassandra-dtest>`_ scripts written in Python. As outlined in :doc:`testing`, each kind of test suite addresses a different way how to test Cassandra. But in the end, all of them will be executed together on our CI platform at `builds.apache.org <https://builds.apache.org>`_, running `Jenkins <http://jenkins-ci.org>`_.
 +
 +
 +
 +Setting up your own Jenkins server
 +==================================
 +
 +Jenkins is an open source solution that can be installed on a large number of platforms. Setting up a custom Jenkins instance for Cassandra may be desirable for users who have hardware to spare, or organizations that want to run Cassandra tests for custom patches before contribution.
 +
 +Please refer to the Jenkins download and documentation pages for details on how to get Jenkins running, possibly also including slave build executor instances. The rest of the document will focus on how to setup Cassandra jobs in your Jenkins environment.
 +
 +Required plugins
 +----------------
 +
 +The following plugins need to be installed additionally to the standard plugins (git, ant, ..).
 +
 +You can install any missing plugins through the install manager.
 +
 +Go to ``Manage Jenkins -> Manage Plugins -> Available`` and install the following plugins and respective dependencies:
 +
- * Job DSL
- * Javadoc Plugin
++* Copy Artifact Plugin
 +* description setter plugin
- * Throttle Concurrent Builds Plug-in
++* Javadoc Plugin
++* Job DSL
++* Post build task
++* Publish Over SSH
++* JMH Report
++* Slack Notification Plugin
 +* Test stability history
- * Hudson Post build task
- * Slack Notification
- * Copy artifact
++* Throttle Concurrent Builds Plug-in
++* Timestamper
 +
 +
 +Configure Throttle Category
 +---------------------------
 +
 +Builds that are not containerized (e.g. cqlshlib tests and in-jvm dtests) use local resources for Cassandra (ccm). To prevent these builds running concurrently the ``Cassandra`` throttle category needs to be created.
 +
 +This is done under ``Manage Jenkins -> System Configuration -> Throttle Concurrent Builds``. Enter "Cassandra" for the ``Category Name`` and "1" for ``Maximum Concurrent Builds Per Node``.
 +
 +Setup seed job
 +--------------
 +
 +Config ``New Item``
 +
 +* Name it ``Cassandra-Job-DSL``
 +* Select ``Freestyle project``
 +
 +Under ``Source Code Management`` select Git using the repository: ``https://github.com/apache/cassandra-builds``
 +
 +Under ``Build``, confirm ``Add build step`` -> ``Process Job DSLs`` and enter at ``Look on Filesystem``: ``jenkins-dsl/cassandra_job_dsl_seed.groovy``
 +
 +Generated jobs will be created based on the Groovy script's default settings. You may want to override settings by checking ``This project is parameterized`` and add ``String Parameter`` for on the variables that can be found in the top of the script. This will allow you to setup jobs for your own repository and branches (e.g. working branches).
 +
 +**When done, confirm "Save"**
 +
 +You should now find a new entry with the given name in your project list. However, building the project will still fail and abort with an error message `"Processing DSL script cassandra_job_dsl_seed.groovy ERROR: script not yet approved for use"`. Goto ``Manage Jenkins`` -> ``In-process Script Approval`` to fix this issue. Afterwards you should be able to run the script and have it generate numerous new jobs based on the found branches and configured templates.
 +
 +Jobs are triggered by either changes in Git or are scheduled to execute periodically, e.g. on daily basis. Jenkins will use any available executor with the label "cassandra", once the job is to be run. Please make sure to make any executors available by selecting ``Build Executor Status`` -> ``Configure`` -> Add "``cassandra``" as label and save.
 +
 +Executors need to have "JDK 1.8 (latest)" installed. This is done under ``Manage Jenkins -> Global Tool Configuration -> JDK Installations…``. Executors also need to have the virtualenv package installed on their system.
 +


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