[cassandra] branch cassandra-3.11 updated: Frozen RawTuple is not annotated with frozen in the toString method
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.11 by this push: new d51c18f Frozen RawTuple is not annotated with frozen in the toString method d51c18f is described below commit d51c18f807c5c88ef44114341592214747487645 Author: Yifan Cai AuthorDate: Wed Jul 22 11:08:28 2020 +0200 Frozen RawTuple is not annotated with frozen in the toString method Patch by Yifan Cai; reviewed by Robert Stupp for CASSANDRA-15857 --- CHANGES.txt| 4 + src/java/org/apache/cassandra/cql3/CQL3Type.java | 20 +- .../cql3/statements/CreateAggregateStatement.java | 2 +- .../cql3/statements/CreateFunctionStatement.java | 2 +- .../cql3/statements/DropAggregateStatement.java| 2 +- .../cql3/statements/DropFunctionStatement.java | 2 +- .../cassandra/cql3/validation/entities/UFTest.java | 13 ++ .../cql3/validation/entities/UFTypesTest.java | 34 ++-- .../validation/operations/AggregationTest.java | 46 - .../cassandra/io/sstable/CQLSSTableWriterTest.java | 209 +++-- 10 files changed, 197 insertions(+), 137 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index b5b406b..22e7d1a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +3.11.8 + * Frozen RawTuple is not annotated with frozen in the toString method (CASSANDRA-15857) + + 3.11.7 * Fix cqlsh output when fetching all rows in batch mode (CASSANDRA-15905) * Upgrade Jackson to 2.9.10 (CASSANDRA-15867) diff --git a/src/java/org/apache/cassandra/cql3/CQL3Type.java b/src/java/org/apache/cassandra/cql3/CQL3Type.java index 095d536..d1e6809 100644 --- a/src/java/org/apache/cassandra/cql3/CQL3Type.java +++ b/src/java/org/apache/cassandra/cql3/CQL3Type.java @@ -511,6 +511,11 @@ public interface CQL3Type return false; } +public boolean isTuple() +{ +return false; +} + public String keyspace() { return null; @@ -660,7 +665,8 @@ public interface CQL3Type { assert values != null : "Got null values type for a collection"; -if (!frozen && values.supportsFreezing() && !values.frozen) +// skip if innerType is tuple, since tuple is implicitly forzen +if (!frozen && values.supportsFreezing() && !values.frozen && !values.isTuple()) throwNestedNonFrozenError(values); // we represent Thrift supercolumns as maps, internally, and we do allow counters in supercolumns. Thus, @@ -701,8 +707,6 @@ public interface CQL3Type throw new InvalidRequestException("Non-frozen collections are not allowed inside collections: " + this); else if (innerType.isUDT()) throw new InvalidRequestException("Non-frozen UDTs are not allowed inside collections: " + this); -else -throw new InvalidRequestException("Non-frozen tuples are not allowed inside collections: " + this); } public boolean referencesUserType(String name) @@ -805,7 +809,9 @@ public interface CQL3Type private RawTuple(List types) { +frozen = true; this.types = types; +freeze(); } public boolean supportsFreezing() @@ -824,9 +830,6 @@ public interface CQL3Type public CQL3Type prepare(String keyspace, Types udts) throws InvalidRequestException { -if (!frozen) -freeze(); - List> ts = new ArrayList<>(types.size()); for (CQL3Type.Raw t : types) { @@ -838,6 +841,11 @@ public interface CQL3Type return new Tuple(new TupleType(ts)); } +public boolean isTuple() +{ +return true; +} + public boolean referencesUserType(String name) { return types.stream().anyMatch(t -> t.referencesUserType(name)); diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java index e8a5e06..d0e7ebb 100644 --- a/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/CreateAggregateStatement.java @@ -141,7 +141,7 @@ public final class CreateAggregateStatement extends SchemaAlteringStatement private AbstractType prepareType(String typeName, CQL3Type.Raw rawType) { -if (rawType.isFrozen()) +
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit a76d288c32e9a062dfafc8e38a33b8aed064913e Merge: f3198c4 d51c18f Author: Yifan Cai AuthorDate: Wed Jul 22 11:11:25 2020 +0200 Merge branch 'cassandra-3.11' into trunk CHANGES.txt| 4 + src/java/org/apache/cassandra/cql3/CQL3Type.java | 37 ++-- .../schema/CreateAggregateStatement.java | 4 +- .../statements/schema/CreateFunctionStatement.java | 4 +- .../statements/schema/DropAggregateStatement.java | 2 +- .../statements/schema/DropFunctionStatement.java | 2 +- .../cassandra/cql3/validation/entities/UFTest.java | 13 ++ .../cql3/validation/entities/UFTypesTest.java | 34 ++-- .../validation/operations/AggregationTest.java | 46 - .../cassandra/io/sstable/CQLSSTableWriterTest.java | 203 ++--- 10 files changed, 200 insertions(+), 149 deletions(-) diff --cc CHANGES.txt index afb3d09,22e7d1a..b56ee27 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,64 -1,8 +1,68 @@@ -3.11.8 +4.0-beta2 + * Verify sstable components on startup (CASSANDRA-15945) ++Merged from 3.11: + * Frozen RawTuple is not annotated with frozen in the toString method (CASSANDRA-15857) + + -3.11.7 +4.0-beta1 + * Remove BackPressureStrategy (CASSANDRA-15375) + * Improve messaging on indexing frozen collections (CASSANDRA-15908) + * USING_G1 is incorrectly set in cassandra-env.sh if G1 is explicitly disabled with -UseG1GC (CASSANDRA-15931) + * Update compaction_throughput_mb_per_sec throttle default to 64 (CASSANDRA-14902) + * Add option to disable compaction at startup (CASSANDRA-15927) + * FBUtilities.getJustLocalAddress falls back to lo ip on misconfigured nodes (CASSANDRA-15901) + * Close channel and reduce buffer allocation during entire sstable streaming with SSL (CASSANDRA-15900) + * Prune expired messages less frequently in internode messaging (CASSANDRA-15700) + * Fix Ec2Snitch handling of legacy mode for dc names matching both formats, eg "us-west-2" (CASSANDRA-15878) + * Add support for server side DESCRIBE statements (CASSANDRA-14825) + * Fail startup if -Xmn is set when the G1 garbage collector is used (CASSANDRA-15839) + * generateSplits method replaced the generateRandomTokens for ReplicationAwareTokenAllocator. (CASSANDRA-15877) + * Several mbeans are not unregistered when dropping a keyspace and table (CASSANDRA-14888) + * Update defaults for server and client TLS settings (CASSANDRA-15262) + * Differentiate follower/initator in StreamMessageHeader (CASSANDRA-15665) + * Add a startup check to detect if LZ4 uses java rather than native implementation (CASSANDRA-15884) + * Fix missing topology events when running multiple nodes on the same network interface (CASSANDRA-15677) + * Create config.yml.MIDRES (CASSANDRA-15712) + * Fix handling of fully purged static rows in repaired data tracking (CASSANDRA-15848) + * Prevent validation request submission from blocking ANTI_ENTROPY stage (CASSANDRA-15812) + * Add fqltool and auditlogviewer to rpm and deb packages (CASSANDRA-14712) + * Include DROPPED_COLUMNS in schema digest computation (CASSANDRA-15843) + * Fix Cassandra restart from rpm install (CASSANDRA-15830) + * Improve handling of 2i initialization failures (CASSANDRA-13606) + * Add completion_ratio column to sstable_tasks virtual table (CASANDRA-15759) + * Add support for adding custom Verbs (CASSANDRA-15725) + * Speed up entire-file-streaming file containment check and allow entire-file-streaming for all compaction strategies (CASSANDRA-15657,CASSANDRA-15783) + * Provide ability to configure IAuditLogger (CASSANDRA-15748) + * Fix nodetool enablefullquerylog blocking param parsing (CASSANDRA-15819) + * Add isTransient to SSTableMetadataView (CASSANDRA-15806) + * Fix tools/bin/fqltool for all shells (CASSANDRA-15820) + * Fix clearing of legacy size_estimates (CASSANDRA-15776) + * Update port when reconnecting to pre-4.0 SSL storage (CASSANDRA-15727) + * Only calculate dynamicBadnessThreshold once per loop in DynamicEndpointSnitch (CASSANDRA-15798) + * Cleanup redundant nodetool commands added in 4.0 (CASSANDRA-15256) + * Update to Python driver 3.23 for cqlsh (CASSANDRA-15793) + * Add tunable initial size and growth factor to RangeTombstoneList (CASSANDRA-15763) + * Improve debug logging in SSTableReader for index summary (CASSANDRA-15755) + * bin/sstableverify should support user provided token ranges (CASSANDRA-15753) + * Improve logging when mutation passed to commit log is too large (CASSANDRA-14781) + * replace LZ4FastDecompressor with LZ4SafeDecompressor (CASSANDRA-15560) + * Fix buffer pool NPE with concurrent release due to in-progress tiny pool eviction (CASSANDRA-15726) + * Avoid race condition when completing stream sessions (CASSANDRA-15666)
[cassandra] branch trunk updated (f3198c4 -> a76d288)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from f3198c4 Verify sstable components on startup new d51c18f Frozen RawTuple is not annotated with frozen in the toString method new a76d288 Merge branch 'cassandra-3.11' into trunk The 2 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: CHANGES.txt| 4 + src/java/org/apache/cassandra/cql3/CQL3Type.java | 37 ++-- .../schema/CreateAggregateStatement.java | 4 +- .../statements/schema/CreateFunctionStatement.java | 4 +- .../statements/schema/DropAggregateStatement.java | 2 +- .../statements/schema/DropFunctionStatement.java | 2 +- .../cassandra/cql3/validation/entities/UFTest.java | 13 ++ .../cql3/validation/entities/UFTypesTest.java | 34 ++-- .../validation/operations/AggregationTest.java | 46 - .../cassandra/io/sstable/CQLSSTableWriterTest.java | 203 ++--- 10 files changed, 200 insertions(+), 149 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-dtest] branch master updated (ca00939 -> d08296b)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git. from ca00939 Fix `@since` for upgrade_internal_auth_test.TestAuthUpgrade.test_upgrade_to_22 + test_upgrade_to_30 new 01753e8 CASSANDRA-15835: use correct Java version for upgrade-tests new 94b1b4b CASSANDRA-15835: re-enable running upgrade-dtests for developer-CI runs against a local C* clone new 6a7f721 CASSANDRA-15835: don't let check_logs_for_errors() fail, if there's no log file new 76e87f9 CASSANDRA-15835: also copy the new ccm node startup-stdout/stderr.log files new d08296b Merge pull request #71 from snazy/15835-fix-upgrade-dtests The 5202 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: conftest.py | 55 +++ upgrade_tests/upgrade_base.py | 38 --- upgrade_tests/upgrade_manifest.py | 8 +++--- 3 files changed, 61 insertions(+), 40 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Use Docker image for dtests in CircleCI w/ JAVA8_HOME environment variable & Allow different pip-source-install repos in requirements.txt
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new d6552ce Use Docker image for dtests in CircleCI w/ JAVA8_HOME environment variable & Allow different pip-source-install repos in requirements.txt d6552ce is described below commit d6552ce3a42d3394277e8156959c9409bb302d81 Author: Robert Stupp AuthorDate: Tue May 26 15:40:43 2020 +0200 Use Docker image for dtests in CircleCI w/ JAVA8_HOME environment variable & Allow different pip-source-install repos in requirements.txt Related changes in cassandra-dtests + ccm fix more issues w/ upgraded-dtests Patch by Robert Stupp; reviewed by Eduard Tudenhöfner for CASSANDRA-15835 --- .circleci/config-2_1.yml | 6 +-- .circleci/config.yml | 92 ++-- .circleci/config.yml.HIGHRES | 92 ++-- .circleci/config.yml.LOWRES | 92 ++-- 4 files changed, 141 insertions(+), 141 deletions(-) diff --git a/.circleci/config-2_1.yml b/.circleci/config-2_1.yml index d711975..ab62124 100644 --- a/.circleci/config-2_1.yml +++ b/.circleci/config-2_1.yml @@ -277,7 +277,7 @@ executors: type: string default: medium docker: - - image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200406 + - image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200603 resource_class: << parameters.exec_resource_class >> working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -292,7 +292,7 @@ executors: type: string default: medium docker: -- image: nastra/cassandra-testing-ubuntu1910-java11:20200406 +- image: nastra/cassandra-testing-ubuntu1910-java11:20200603 resource_class: << parameters.exec_resource_class >> working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -914,7 +914,7 @@ commands: # rebuild the docker image! (it automatically pulls the latest requirements.txt on build) source ~/env<>/bin/activate export PATH=$JAVA_HOME/bin:$PATH - pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt + pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt pip3 uninstall -y cqlsh pip3 freeze diff --git a/.circleci/config.yml b/.circleci/config.yml index 7f6c93b..ffcb107 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: j8_jvm_upgrade_dtests: docker: -- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200406 +- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200603 resource_class: medium working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -93,7 +93,7 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j8_cqlsh-dtests-py2-with-vnodes: docker: -- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200406 +- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200603 resource_class: medium working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -114,7 +114,7 @@ jobs: # 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 --upgrade -r ~/cassandra-dtest/requirements.txt + pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt pip3 uninstall -y cqlsh pip3 freeze - run: @@ -170,7 +170,7 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 j11_unit_tests: docker: -- image: nastra/cassandra-testing-ubuntu1910-java11:20200406 +- image: nastra/cassandra-testing-ubuntu1910-java11:20200603 resource_class: medium working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -262,7 +262,7 @@ jobs: - CASSANDRA_USE_JDK11: true j8_cqlsh-dtests-py38-no-vnodes: docker: -- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200406 +- image: nastra/cassandra-testing-ubuntu1910-java11-w-dependencies:20200603 resource_class: medium working_directory: ~/ shell: /bin/bash -eo pipefail -l @@ -283,7 +283,7 @@ jobs: # rebuild the docker image! (it automatically pulls the latest requirements.txt on build) source ~/env3.8/bin/activate export PATH=$JAVA_HOME/bin:$PATH - pip3 install --upgrade -r ~/cassandra-dtest/requirements.txt + pip3 install --exists-action w --upgrade -r ~/cassandra-dtest/requirements.txt pip3 uninstall -y cqlsh pip3 freeze - run: @@ -339,7
[cassandra-dtest] branch master updated: Fix `@since` for upgrade_internal_auth_test.TestAuthUpgrade.test_upgrade_to_22 + test_upgrade_to_30
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git The following commit(s) were added to refs/heads/master by this push: new ca00939 Fix `@since` for upgrade_internal_auth_test.TestAuthUpgrade.test_upgrade_to_22 + test_upgrade_to_30 ca00939 is described below commit ca009392d1697ef5a42e87a62930fe9274a3c2fe Author: Robert Stupp AuthorDate: Thu Jun 4 10:21:27 2020 +0200 Fix `@since` for upgrade_internal_auth_test.TestAuthUpgrade.test_upgrade_to_22 + test_upgrade_to_30 Patch by Robert Stupp; reviewed by Eduard Tudenhöfner for CASSANDRA-15853 --- upgrade_internal_auth_test.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/upgrade_internal_auth_test.py b/upgrade_internal_auth_test.py index d0425b1..b86c00e 100644 --- a/upgrade_internal_auth_test.py +++ b/upgrade_internal_auth_test.py @@ -36,10 +36,11 @@ class TestAuthUpgrade(Tester): r'Can\'t send migration request: node.*is down', ) +@since('2.2', max_version='2.2.X') def test_upgrade_to_22(self): self.do_upgrade_with_internal_auth("github:apache/cassandra-2.2") -@since('3.0') +@since('3.0', max_version='3.0.X') @pytest.mark.no_offheap_memtables def test_upgrade_to_30(self): self.do_upgrade_with_internal_auth("github:apache/cassandra-3.0") - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-builds] branch master updated: CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git The following commit(s) were added to refs/heads/master by this push: new 45dc010 CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV 45dc010 is described below commit 45dc010227d75bf05e34617729de5389e62f8f99 Author: Robert Stupp AuthorDate: Tue Jun 2 12:43:30 2020 +0200 CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV --- docker/testing/ubuntu1810_j11.docker | 5 + docker/testing/ubuntu18_j11.docker | 5 + docker/testing/ubuntu1910_j11.docker | 5 + 3 files changed, 15 insertions(+) diff --git a/docker/testing/ubuntu1810_j11.docker b/docker/testing/ubuntu1810_j11.docker index 835d2ad..58fea47 100644 --- a/docker/testing/ubuntu1810_j11.docker +++ b/docker/testing/ubuntu1810_j11.docker @@ -80,6 +80,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) RUN virtualenv --python=python3.6 --no-site-packages env diff --git a/docker/testing/ubuntu18_j11.docker b/docker/testing/ubuntu18_j11.docker index 7e92c0f..3e6fe6b 100644 --- a/docker/testing/ubuntu18_j11.docker +++ b/docker/testing/ubuntu18_j11.docker @@ -80,6 +80,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) RUN virtualenv --python=python3.6 --no-site-packages env diff --git a/docker/testing/ubuntu1910_j11.docker b/docker/testing/ubuntu1910_j11.docker index 38f60bb..70dd44b 100644 --- a/docker/testing/ubuntu1910_j11.docker +++ b/docker/testing/ubuntu1910_j11.docker @@ -92,6 +92,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) for Python 3.6/3.7/3.8 RUN virtualenv --python=python3.6 env3.6 - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-builds] branch master updated: CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git The following commit(s) were added to refs/heads/master by this push: new 45dc010 CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV 45dc010 is described below commit 45dc010227d75bf05e34617729de5389e62f8f99 Author: Robert Stupp AuthorDate: Tue Jun 2 12:43:30 2020 +0200 CASSANDRA-15835 Update Docker image w/ JAVA8_HOME via ENV --- docker/testing/ubuntu1810_j11.docker | 5 + docker/testing/ubuntu18_j11.docker | 5 + docker/testing/ubuntu1910_j11.docker | 5 + 3 files changed, 15 insertions(+) diff --git a/docker/testing/ubuntu1810_j11.docker b/docker/testing/ubuntu1810_j11.docker index 835d2ad..58fea47 100644 --- a/docker/testing/ubuntu1810_j11.docker +++ b/docker/testing/ubuntu1810_j11.docker @@ -80,6 +80,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) RUN virtualenv --python=python3.6 --no-site-packages env diff --git a/docker/testing/ubuntu18_j11.docker b/docker/testing/ubuntu18_j11.docker index 7e92c0f..3e6fe6b 100644 --- a/docker/testing/ubuntu18_j11.docker +++ b/docker/testing/ubuntu18_j11.docker @@ -80,6 +80,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) RUN virtualenv --python=python3.6 --no-site-packages env diff --git a/docker/testing/ubuntu1910_j11.docker b/docker/testing/ubuntu1910_j11.docker index 38f60bb..70dd44b 100644 --- a/docker/testing/ubuntu1910_j11.docker +++ b/docker/testing/ubuntu1910_j11.docker @@ -92,6 +92,11 @@ RUN echo 'export ANT_HOME=/usr/share/ant' >> /home/cassandra/.bashrc && \ echo 'export JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64' >> /home/cassandra/.bashrc && \ echo 'export JAVA_HOME=$JAVA8_HOME' >> /home/cassandra/.bashrc +ENV ANT_HOME=/usr/share/ant \ +JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA8_HOME=/usr/lib/jvm/java-8-openjdk-amd64 \ +JAVA11_HOME=/usr/lib/jvm/java-11-openjdk-amd64 + # run pip commands and setup virtualenv (note we do this after we switch to cassandra user so we # setup the virtualenv for the cassandra user and not the root user by accident) for Python 3.6/3.7/3.8 RUN virtualenv --python=python3.6 env3.6 - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-builds] branch master updated: Allow different pip-source-install repos in requirements.txt (#23)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-builds.git The following commit(s) were added to refs/heads/master by this push: new bf6bc98 Allow different pip-source-install repos in requirements.txt (#23) bf6bc98 is described below commit bf6bc98085330172f323c27b21810ac0eb0cc732 Author: Robert Stupp AuthorDate: Tue Jun 2 15:28:08 2020 +0200 Allow different pip-source-install repos in requirements.txt (#23) --- .gitignore | 2 ++ build-scripts/cassandra-dtest-pytest.sh | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 5b88705..1348a5d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ dist/cassandra* .idea +*.iml + diff --git a/build-scripts/cassandra-dtest-pytest.sh b/build-scripts/cassandra-dtest-pytest.sh index c70ed5a..ef89780 100755 --- a/build-scripts/cassandra-dtest-pytest.sh +++ b/build-scripts/cassandra-dtest-pytest.sh @@ -52,7 +52,7 @@ fi set -e # enable immediate exit if venv setup fails virtualenv --python=python3 venv source venv/bin/activate -pip3 install -r cassandra-dtest/requirements.txt +pip3 install --exists-action w -r cassandra-dtest/requirements.txt pip3 freeze - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Fixed non-deterministic test in CasWriteTest
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new fdcd0df Fixed non-deterministic test in CasWriteTest fdcd0df is described below commit fdcd0dff216d9e1ad242be1a7d5be3ef67044ac3 Author: Gianluca Righetto AuthorDate: Wed May 20 06:30:29 2020 +0200 Fixed non-deterministic test in CasWriteTest patch by Gianluca Righetto; reviewed by Ekaterina Dimitrova & Yifan Cai for CASSANDRA-15676 --- .../cassandra/distributed/test/CasWriteTest.java | 40 +- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/test/distributed/org/apache/cassandra/distributed/test/CasWriteTest.java b/test/distributed/org/apache/cassandra/distributed/test/CasWriteTest.java index 1d886cf..81b52f7 100644 --- a/test/distributed/org/apache/cassandra/distributed/test/CasWriteTest.java +++ b/test/distributed/org/apache/cassandra/distributed/test/CasWriteTest.java @@ -32,6 +32,7 @@ import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Supplier; +import com.google.common.util.concurrent.Uninterruptibles; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; @@ -249,28 +250,33 @@ public class CasWriteTest extends TestBaseImpl @Test public void testWriteUnknownResult() { -while (true) -{ -cluster.filters().reset(); -int pk = pkGen.getAndIncrement(); - cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(3).messagesMatching((from, to, msg) -> { +cluster.filters().reset(); +int pk = pkGen.getAndIncrement(); +CountDownLatch ready = new CountDownLatch(1); +cluster.filters().verbs(Verb.PAXOS_PROPOSE_REQ.id).from(1).to(2, 3).messagesMatching((from, to, msg) -> { +if (to == 2) +{ // Inject a single CAS request in-between prepare and propose phases cluster.coordinator(2).execute(mkCasInsertQuery((a) -> pk, 1, 2), ConsistencyLevel.QUORUM); -return false; -}).drop(); - -try -{ -cluster.coordinator(1).execute(mkCasInsertQuery((a) -> pk, 1, 1), ConsistencyLevel.QUORUM); -} -catch (Throwable t) -{ -Assert.assertEquals("Expecting cause to be CasWriteUncertainException", - CasWriteUnknownResultException.class.getCanonicalName(), t.getClass().getCanonicalName()); -return; +ready.countDown(); +} else { +Uninterruptibles.awaitUninterruptibly(ready); } +return false; +}).drop(); + +try +{ +cluster.coordinator(1).execute(mkCasInsertQuery((a) -> pk, 1, 1), ConsistencyLevel.QUORUM); +} +catch (Throwable t) +{ +Assert.assertEquals("Expecting cause to be CasWriteUnknownResultException", + CasWriteUnknownResultException.class.getCanonicalName(), t.getClass().getCanonicalName()); +return; } +Assert.fail("Expecting test to throw a CasWriteUnknownResultException"); } // every invokation returns a query with an unique pk - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Add isTransient to SSTableMetadataView
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 3f689e9 Add isTransient to SSTableMetadataView 3f689e9 is described below commit 3f689e93768ea670f7a8351ec30128dd4b410c9c Author: Ekaterina Dimitrova AuthorDate: Wed May 13 15:07:56 2020 -0400 Add isTransient to SSTableMetadataView patch by Sequoyha Pelletier; reviewed by Ekaterina Dimitrova for CASSANDRA-15806 --- CHANGES.txt| 1 + src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGES.txt b/CHANGES.txt index 43aef72..56212f9 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha5 + * Add isTransient to SSTableMetadataView (CASSANDRA-15806) * Fix tools/bin/fqltool for all shells (CASSANDRA-15820) * Fix clearing of legacy size_estimates (CASSANDRA-15776) * Update port when reconnecting to pre-4.0 SSL storage (CASSANDRA-15727) diff --git a/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java b/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java index eb8670c..6366fd5 100755 --- a/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java +++ b/src/java/org/apache/cassandra/tools/SSTableMetadataViewer.java @@ -432,6 +432,7 @@ public class SSTableMetadataViewer field("ClusteringTypes", clusteringTypes.toString()); field("StaticColumns", FBUtilities.toString(statics)); field("RegularColumns", FBUtilities.toString(regulars)); +field("IsTransient", stats.isTransient); } } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Fix tools/bin/fqltool for all shells
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new ec07cd7 Fix tools/bin/fqltool for all shells ec07cd7 is described below commit ec07cd7e76c93bf713618f381480f500f6c4e62f Author: Robert Stupp AuthorDate: Tue May 19 07:00:41 2020 +0200 Fix tools/bin/fqltool for all shells patch by Robert Stupp; reviewed by Mick Semb Wever and Eduard Tudenhöfner for CASSANDRA-15820 --- CHANGES.txt | 1 + tools/bin/fqltool | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index f430f5c..43aef72 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha5 + * Fix tools/bin/fqltool for all shells (CASSANDRA-15820) * Fix clearing of legacy size_estimates (CASSANDRA-15776) * Update port when reconnecting to pre-4.0 SSL storage (CASSANDRA-15727) * Only calculate dynamicBadnessThreshold once per loop in DynamicEndpointSnitch (CASSANDRA-15798) diff --git a/tools/bin/fqltool b/tools/bin/fqltool index a34128e..dc49e50 100755 --- a/tools/bin/fqltool +++ b/tools/bin/fqltool @@ -52,7 +52,7 @@ ARGS="" JVM_ARGS="" while true do - if [ ! $1 ]; then break; fi + if [ "x" = "x$1" ]; then break; fi case $1 in -D*) JVM_ARGS="$JVM_ARGS $1" - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Less test stderr spam when running tests w/ java 11
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new e394dc0 Less test stderr spam when running tests w/ java 11 e394dc0 is described below commit e394dc0bb32f612a476269010930c617dd1ed3cb Author: Robert Stupp AuthorDate: Wed Apr 1 17:08:55 2020 +0200 Less test stderr spam when running tests w/ java 11 patch by Robert Stupp; reviewed by Eduard Tudenhöfner for CASSANDRA-15780 --- src/java/org/apache/cassandra/utils/FBUtilities.java| 5 + .../org/apache/cassandra/io/util/BufferedDataOutputStreamTest.java | 5 + test/unit/org/apache/cassandra/tools/ToolsTester.java | 6 ++ 3 files changed, 16 insertions(+) diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java index 115cd43..9b39f2d 100644 --- a/src/java/org/apache/cassandra/utils/FBUtilities.java +++ b/src/java/org/apache/cassandra/utils/FBUtilities.java @@ -72,6 +72,11 @@ import org.apache.cassandra.net.AsyncOneResponse; public class FBUtilities { +static +{ +preventIllegalAccessWarnings(); +} + private static final Logger logger = LoggerFactory.getLogger(FBUtilities.class); private static final ObjectMapper jsonMapper = new ObjectMapper(new JsonFactory()); diff --git a/test/unit/org/apache/cassandra/io/util/BufferedDataOutputStreamTest.java b/test/unit/org/apache/cassandra/io/util/BufferedDataOutputStreamTest.java index 7c1a0da..c5c3b60 100644 --- a/test/unit/org/apache/cassandra/io/util/BufferedDataOutputStreamTest.java +++ b/test/unit/org/apache/cassandra/io/util/BufferedDataOutputStreamTest.java @@ -44,10 +44,15 @@ import com.google.common.primitives.UnsignedBytes; import com.google.common.primitives.UnsignedInteger; import com.google.common.primitives.UnsignedLong; +import static org.apache.cassandra.utils.FBUtilities.preventIllegalAccessWarnings; import static org.junit.Assert.*; public class BufferedDataOutputStreamTest { +static +{ +preventIllegalAccessWarnings(); +} @Test(expected = BufferOverflowException.class) public void testDataOutputBufferFixedByes() throws Exception diff --git a/test/unit/org/apache/cassandra/tools/ToolsTester.java b/test/unit/org/apache/cassandra/tools/ToolsTester.java index 391c9b9..0bb9beb 100644 --- a/test/unit/org/apache/cassandra/tools/ToolsTester.java +++ b/test/unit/org/apache/cassandra/tools/ToolsTester.java @@ -39,6 +39,7 @@ import org.junit.BeforeClass; import org.slf4j.LoggerFactory; +import static org.apache.cassandra.utils.FBUtilities.preventIllegalAccessWarnings; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -49,6 +50,11 @@ import static org.junit.Assert.fail; */ public abstract class ToolsTester { +static +{ +preventIllegalAccessWarnings(); +} + private static List initialThreads; static final String[] EXPECTED_THREADS_WITH_SCHEMA = { - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Fix flakiness of org.apache.cassandra.metrics.DecayingEstimatedHistogramReservoirTest#testStriping and apply the same "fix" to other tests
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new df8e736 Fix flakiness of org.apache.cassandra.metrics.DecayingEstimatedHistogramReservoirTest#testStriping and apply the same "fix" to other tests df8e736 is described below commit df8e736700ae2a06675ff50381788d708bc22b96 Author: Robert Stupp AuthorDate: Sun May 3 18:22:46 2020 +0200 Fix flakiness of org.apache.cassandra.metrics.DecayingEstimatedHistogramReservoirTest#testStriping and apply the same "fix" to other tests Patch by Robert Stupp; reviewed by Eduard Tudenhöfner for CASSANDRA-15781 --- test/unit/org/apache/cassandra/cql3/validation/entities/JsonTest.java | 2 +- .../org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java | 3 ++- .../org/apache/cassandra/db/compaction/CompactionExecutorTest.java | 3 ++- test/unit/org/apache/cassandra/db/monitoring/MonitoringTaskTest.java | 2 +- test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java | 2 +- test/unit/org/apache/cassandra/io/util/RandomAccessReaderTest.java | 3 ++- .../cassandra/metrics/DecayingEstimatedHistogramReservoirTest.java | 3 ++- test/unit/org/apache/cassandra/net/ConnectionTest.java | 2 +- test/unit/org/apache/cassandra/utils/StatusLoggerTest.java | 3 ++- test/unit/org/apache/cassandra/utils/UUIDTests.java| 3 ++- 10 files changed, 16 insertions(+), 10 deletions(-) diff --git a/test/unit/org/apache/cassandra/cql3/validation/entities/JsonTest.java b/test/unit/org/apache/cassandra/cql3/validation/entities/JsonTest.java index 7f8bcba..71c1d62 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/entities/JsonTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/entities/JsonTest.java @@ -1364,7 +1364,7 @@ public class JsonTest extends CQLTester future.get(30, TimeUnit.SECONDS); executor.shutdown(); -Assert.assertTrue(executor.awaitTermination(30, TimeUnit.SECONDS)); +Assert.assertTrue(executor.awaitTermination(1, TimeUnit.MINUTES)); } @Test diff --git a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java index d2ad42f..680a0e7 100644 --- a/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java +++ b/test/unit/org/apache/cassandra/db/commitlog/CommitLogUpgradeTestMaker.java @@ -33,6 +33,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; import com.google.common.util.concurrent.RateLimiter; +import org.junit.Assert; import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.Util; @@ -110,7 +111,7 @@ public class CommitLogUpgradeTestMaker Thread.sleep(runTimeMs); stop = true; scheduled.shutdown(); -scheduled.awaitTermination(2, TimeUnit.SECONDS); +Assert.assertTrue(scheduled.awaitTermination(1, TimeUnit.MINUTES)); int hash = 0; int cells = 0; diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionExecutorTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionExecutorTest.java index 2f8b5b2..ab3d9e5 100644 --- a/test/unit/org/apache/cassandra/db/compaction/CompactionExecutorTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/CompactionExecutorTest.java @@ -22,6 +22,7 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; @@ -62,7 +63,7 @@ public class CompactionExecutorTest public void destroy() throws Exception { executor.shutdown(); -executor.awaitTermination(1, TimeUnit.MINUTES); +Assert.assertTrue(executor.awaitTermination(1, TimeUnit.MINUTES)); } @Test diff --git a/test/unit/org/apache/cassandra/db/monitoring/MonitoringTaskTest.java b/test/unit/org/apache/cassandra/db/monitoring/MonitoringTaskTest.java index 454d0b4..dc8c317 100644 --- a/test/unit/org/apache/cassandra/db/monitoring/MonitoringTaskTest.java +++ b/test/unit/org/apache/cassandra/db/monitoring/MonitoringTaskTest.java @@ -276,7 +276,7 @@ public class MonitoringTaskTest } executorService.shutdown(); -assertTrue(executorService.awaitTermination(30, TimeUnit.SECONDS)); +assertTrue(executorService.awaitTermination(1, TimeUnit.MINUTES)); assertEquals(opCount, operations.size()); waitForOperationsToComplete(operations); diff --git a/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java b/test/unit/org/apache/cassandra/index/sasi/SASIIndexTest.java index c64
[cassandra] branch trunk updated: Fix flaky CustomNowInSecondsTest.testSelectQuery()
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 7f0df2e Fix flaky CustomNowInSecondsTest.testSelectQuery() 7f0df2e is described below commit 7f0df2e5e55ccad7ae23ed74e3caabba53d63d5e Author: Robert Stupp AuthorDate: Thu Apr 23 13:55:42 2020 +0200 Fix flaky CustomNowInSecondsTest.testSelectQuery() patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-15751 --- test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java b/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java index f013fc0..983acfa 100644 --- a/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java +++ b/test/unit/org/apache/cassandra/cql3/CustomNowInSecondsTest.java @@ -54,7 +54,6 @@ public class CustomNowInSecondsTest extends CQLTester private void testSelectQuery(boolean prepared) { -int now = (int) (System.currentTimeMillis() / 1000); int day = 86400; String ks = createKeyspace("CREATE KEYSPACE %s WITH replication={ 'class' : 'SimpleStrategy', 'replication_factor' : 1 }"); @@ -63,6 +62,8 @@ public class CustomNowInSecondsTest extends CQLTester // insert a row with TTL = 1 day. executeModify(format("INSERT INTO %s.%s (id, val) VALUES (0, 0) USING TTL %d", ks, tbl, day), Integer.MIN_VALUE, prepared); +int now = (int) (System.currentTimeMillis() / 1000); + // execute a SELECT query without overriding nowInSeconds - make sure we observe one row. assertEquals(1, executeSelect(format("SELECT * FROM %s.%s", ks, tbl), Integer.MIN_VALUE, prepared).size()); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit b870562008672edfe57d11cb1d147d3d57da5ead Merge: b05fe7a d833df8 Author: Robert Stupp AuthorDate: Tue Apr 21 16:14:05 2020 +0200 Merge branch 'cassandra-3.11' into trunk .../apache/cassandra/utils/FBUtilitiesTest.java| 54 +- 1 file changed, 33 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (b05fe7a -> b870562)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from b05fe7a Optimize Zero Copy Streaming file containment check by using file sections new 2aa7cf8 FBUtilitities.testWaitFirstFuture is flaky new d833df8 Merge branch 'cassandra-3.0' into cassandra-3.11 new b870562 Merge branch 'cassandra-3.11' into trunk The 3 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: .../apache/cassandra/utils/FBUtilitiesTest.java| 54 +- 1 file changed, 33 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.0 updated: FBUtilitities.testWaitFirstFuture is flaky
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.0 by this push: new 2aa7cf8 FBUtilitities.testWaitFirstFuture is flaky 2aa7cf8 is described below commit 2aa7cf8114f3c63359e65fd741bfb990ebac2ebe Author: Robert Stupp AuthorDate: Tue Apr 21 13:12:33 2020 +0200 FBUtilitities.testWaitFirstFuture is flaky patch by Robert Stupp; reviewed by Eduard Tudenhöfner for CASSANDRA-15744 --- .../apache/cassandra/utils/FBUtilitiesTest.java| 56 +- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java b/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java index c5126a0..f13d076 100644 --- a/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java +++ b/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.TreeMap; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @@ -140,30 +141,41 @@ public class FBUtilitiesTest @Test public void testWaitFirstFuture() throws ExecutionException, InterruptedException { - -ExecutorService executor = Executors.newFixedThreadPool(4); -FBUtilities.reset(); -List> futures = new ArrayList<>(); -for (int i = 4; i >= 1; i--) +final int threadCount = 10; +ExecutorService executor = Executors.newFixedThreadPool(threadCount); +try +{ +List> futures = new ArrayList<>(threadCount); +List latches = new ArrayList<>(threadCount); + +for (int i = 0; i < threadCount; i++) +{ +CountDownLatch latch = new CountDownLatch(1); +latches.add(latch); +int finalI = i; +futures.add(executor.submit(() -> { +latch.await(10, TimeUnit.SECONDS); +// Sleep to emulate "work" done by the future to make it not return immediately +// after counting down the latch in order to test for delay and spinning done +// in FBUtilities#waitOnFirstFuture. +TimeUnit.MILLISECONDS.sleep(10); +return latch.getCount() == 0 ? finalI : -1; +})); +} + +for (int i = 0; i < threadCount; i++) +{ +latches.get(i).countDown(); +Future fut = FBUtilities.waitOnFirstFuture(futures, 3); +int futSleep = (Integer) fut.get(); +assertEquals(futSleep, i); +futures.remove(fut); +} +} +finally { -final int sleep = i * 10; -futures.add(executor.submit(() -> { TimeUnit.MILLISECONDS.sleep(sleep); return sleep; })); +executor.shutdown(); } -Future fut = FBUtilities.waitOnFirstFuture(futures, 3); -int futSleep = (Integer) fut.get(); -assertEquals(futSleep, 10); -futures.remove(fut); -fut = FBUtilities.waitOnFirstFuture(futures, 3); -futSleep = (Integer) fut.get(); -assertEquals(futSleep, 20); -futures.remove(fut); -fut = FBUtilities.waitOnFirstFuture(futures, 3); -futSleep = (Integer) fut.get(); -assertEquals(futSleep, 30); -futures.remove(fut); -fut = FBUtilities.waitOnFirstFuture(futures, 3); -futSleep = (Integer) fut.get(); -assertEquals(futSleep, 40); } } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.11 updated (9b940a5 -> d833df8)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 9b940a5 Merge branch 'cassandra-3.0' into cassandra-3.11 new 2aa7cf8 FBUtilitities.testWaitFirstFuture is flaky new d833df8 Merge branch 'cassandra-3.0' into cassandra-3.11 The 2 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: .../apache/cassandra/utils/FBUtilitiesTest.java| 54 +- 1 file changed, 33 insertions(+), 21 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git commit d833df80a9b1225f80cb1cc8847411509a9dc77a Merge: 9b940a5 2aa7cf8 Author: Robert Stupp AuthorDate: Tue Apr 21 16:12:47 2020 +0200 Merge branch 'cassandra-3.0' into cassandra-3.11 .../apache/cassandra/utils/FBUtilitiesTest.java| 54 +- 1 file changed, 33 insertions(+), 21 deletions(-) diff --cc test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java index 0300b9d,f13d076..ecdb03e --- a/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java +++ b/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java @@@ -23,11 -23,11 +23,12 @@@ import java.net.InetAddress import java.nio.ByteBuffer; import java.nio.charset.CharacterCodingException; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.TreeMap; +import java.util.ArrayList; +import java.util.List; + import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Ninja add CHANGES.txt for CASSANDRA-14737
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/trunk by this push: new 425c14e Ninja add CHANGES.txt for CASSANDRA-14737 425c14e is described below commit 425c14e15a57e11b1c890e2efa0a772735e206dd Author: Robert Stupp AuthorDate: Wed Feb 12 10:00:20 2020 +0100 Ninja add CHANGES.txt for CASSANDRA-14737 --- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.txt b/CHANGES.txt index e6f967d..e6b3d6b 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0-alpha4 + * Limit the dependencies used by UDFs/UDAs (CASSANDRA-14737) * Make native_transport_max_concurrent_requests_in_bytes updatable (CASSANDRA-15519) * Cleanup and improvements to IndexInfo/ColumnIndex (CASSANDRA-15469) * Potential Overflow in DatabaseDescriptor Functions That Convert Between KB/MB & Bytes (CASSANDRA-15470) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-dtest] branch master updated: dtest for UDT fix on upgrade
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/cassandra-dtest.git The following commit(s) were added to refs/heads/master by this push: new c5f6d28 dtest for UDT fix on upgrade c5f6d28 is described below commit c5f6d28d88f314f70185de16777c52a79e1be053 Author: Robert Stupp AuthorDate: Sat Feb 9 10:47:05 2019 +0100 dtest for UDT fix on upgrade patch by Robert Stupp; reviewed by Brandon Williams for CASSANDRA-15035 --- upgrade_tests/upgrade_udtfix_test.py | 162 +++ 1 file changed, 162 insertions(+) diff --git a/upgrade_tests/upgrade_udtfix_test.py b/upgrade_tests/upgrade_udtfix_test.py new file mode 100644 index 000..a138755 --- /dev/null +++ b/upgrade_tests/upgrade_udtfix_test.py @@ -0,0 +1,162 @@ +import pytest +import logging + +from dtest import RUN_STATIC_UPGRADE_MATRIX, Tester +from distutils.version import LooseVersion +from tools.misc import add_skip +from .upgrade_manifest import build_upgrade_pairs + +since = pytest.mark.since +logger = logging.getLogger(__name__) + +@pytest.mark.upgrade_test +class UpgradeUDTFixTest(Tester): +__test__ = False + +""" +@jira_ticket: CASSANDRA-TBD + +3.0 sstable cannot be read by 3.11 and newer + +OSS C* 3.0 only support frozen UDTs. A frozen type is marked using +"org.apache.cassandra.db.marshal.FrozenType(...)" using the AbstractType class hierarchy. +But 3.0 does not write the "FrozenType()" type into the serialization header in the sstable +metadata. CASSANDRA-7423 added support for non-frozen UDTs) in C* 3.6. Since then, UDTs can +be either frozen or non-frozen, so it becomes important that the "FrozenType bracket" is +present in the serialization header, because the serialization order of columns depends on +its type (fixed length type column first, then variable length type columns, then multi-cell +(non-frozen) type columns). This means, that C* 3.6 and newer will interpret the originally +frozen UDT as non-frozen and deserialization fails. +""" + +def test_udtfix_in_sstable(self): +""" +Verify that the fix to modify the serialization-header in the sstable metadata works for a single node. +""" +cluster = self.cluster +cluster.set_install_dir(version=self.UPGRADE_PATH.starting_version) +cluster.populate(1) +node1, = cluster.nodelist() +cluster.start() + +session = self.patient_cql_connection(node1) +self._schema_and_data(node1, session, "ks", "{'class': 'SimpleStrategy', 'replication_factor': 1}") +references = self._read_rows(session, "ks") +session.cluster.shutdown() + +logger.debug("Upgrading from {} to {}".format(self.UPGRADE_PATH.starting_version, self.UPGRADE_PATH.upgrade_version)) +cluster.stop() +cluster.set_install_dir(version=self.UPGRADE_PATH.upgrade_version) + +log_mark = node1.mark_log() +cluster.start() +self._verify_upgrade_log(log_mark, node1) + +session = self.patient_cql_connection(node1) +check = self._read_rows(session, "ks") +assert references == check + +def test_udtfix_in_messaging(self): +""" +Paranoia test for CASSANDRA-TBD, but verify that internode reads are not affected - with the data +both on the upgraded and non-upgraded node. +""" +cluster = self.cluster +cluster.set_install_dir(version=self.UPGRADE_PATH.starting_version) +cluster.populate([1, 1]) +node1, node2 = cluster.nodelist() +cluster.start() + +logger.debug("Started 2-DC cluster") + +session = self.patient_cql_connection(node1) +self._schema_and_data(node1, session, "ks1", "{'class': 'NetworkTopologyStrategy', 'dc1': 1}") +self._schema_and_data(node1, session, "ks2", "{'class': 'NetworkTopologyStrategy', 'dc2': 1}") +references11 = self._read_rows(session, "ks1") +references12 = self._read_rows(session, "ks2") +session.cluster.shutdown() + +session = self.patient_cql_connection(node2) +references21 = self._read_rows(session, "ks1") +references22 = self._read_rows(session, "ks2") +session.cluster.shutdown() + +assert references11 == references21 +assert references12 == references22 + +logger.debug("Upgrading {} from {} to {}".format(node1.name, self.UPGRADE_PATH.starting_version, self.UPGRADE_PATH.upgrade_version)) +
[cassandra] 01/02: C* 3.0 sstables w/ UDTs are corrupted in C* 3.11 and 4.0
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 4f27a37d7dd2750cc25261773a67ee8b4a07142c Author: Robert Stupp AuthorDate: Fri Feb 15 14:24:39 2019 +0100 C* 3.0 sstables w/ UDTs are corrupted in C* 3.11 and 4.0 patch by Robert Stupp; reviewed by Brandon Williams for CASSANDRA-15035 --- CHANGES.txt| 1 + NEWS.txt | 18 + src/java/org/apache/cassandra/cql3/CQL3Type.java | 4 +- .../apache/cassandra/db/SerializationHeader.java | 12 + .../org/apache/cassandra/db/SystemKeyspace.java| 2 + .../org/apache/cassandra/db/rows/AbstractCell.java | 15 +- .../org/apache/cassandra/db/rows/AbstractRow.java | 22 +- .../db/rows/AbstractTypeVersionComparator.java | 121 --- .../db/rows/ColumnMetadataVersionComparator.java | 85 ++ src/java/org/apache/cassandra/db/rows/Row.java | 2 +- src/java/org/apache/cassandra/db/rows/Rows.java| 2 +- .../cassandra/io/sstable/SSTableHeaderFix.java | 918 .../cassandra/io/sstable/format/SSTableReader.java | 5 + .../io/sstable/metadata/IMetadataSerializer.java | 5 + .../io/sstable/metadata/MetadataSerializer.java| 2 +- .../apache/cassandra/service/CassandraDaemon.java | 3 + .../apache/cassandra/tools/StandaloneScrubber.java | 144 ++- .../org/apache/cassandra/utils/FBUtilities.java| 12 + ...va => ColumnMetadataVersionComparatorTest.java} | 29 +- .../cassandra/io/sstable/SSTableHeaderFixTest.java | 964 + .../schema/TupleTypesRepresentationTest.java | 403 + 21 files changed, 2621 insertions(+), 148 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 98c189a..9554a00 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ otherwise synchronize their clocks, and that clocks are mostly in sync, since this is a requirement for general correctness of last write wins. (CASSANDRA-15216) Merged from 3.11: + * Fix bad UDT sstable metadata serialization headers written by C* 3.0 on upgrade and in sstablescrub (CASSANDRA-15035) * Fix nodetool compactionstats showing extra pending task for TWCS - patch implemented (CASSANDRA-15409) * Fix SELECT JSON formatting for the "duration" type (CASSANDRA-15075) * Update nodetool help stop output (CASSANDRA-15401) diff --git a/NEWS.txt b/NEWS.txt index 9c6b43f..7d716fc 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -113,6 +113,24 @@ New features Upgrading - +- Sstables for tables using with a frozen UDT written by C* 3.0 appear as corrupted. + + Background: The serialization-header in the -Statistics.db sstable component contains the type information + of the table columns. C* 3.0 write incorrect type information for frozen UDTs by omitting the + "frozen" information. Non-frozen UDTs were introduced by CASSANDRA-7423 in C* 3.6. Since then, the missing + "frozen" information leads to deserialization issues that result in CorruptSSTableExceptions, potentially other + exceptions as well. + + As a mitigation, the sstable serialization-headers are rewritten to contain the missing "frozen" information for + UDTs once, when an upgrade from C* 3.0 is detected. This migration does not touch snapshots or backups. + + The sstablescrub tool now performs a check of the sstable serialization-header against the schema. A mismatch of + the types in the serialization-header and the schema will cause sstablescrub to error out and stop by default. + See the new `-e` option. `-e off` disables the new validation code. `-e fix` or `-e fix-only`, e.g. + `sstablescrub -e fix keyspace table`, will validate the serialization-header, rewrite the non-frozen UDTs + in the serialzation-header to frozen UDTs, if that matches the schema, and continue with scrub. + See `sstablescrub -h`. + (CASSANDRA-15035) - CASSANDRA-13241 lowered the default chunk_lengh_in_kb for compresesd tables from 64kb to 16kb. For highly compressible data this can have a noticeable impact on space utilization. You may want to consider manually specifying this value. diff --git a/src/java/org/apache/cassandra/cql3/CQL3Type.java b/src/java/org/apache/cassandra/cql3/CQL3Type.java index 340a992..ee2db68 100644 --- a/src/java/org/apache/cassandra/cql3/CQL3Type.java +++ b/src/java/org/apache/cassandra/cql3/CQL3Type.java @@ -704,8 +704,10 @@ public interface CQL3Type { if (innerType instanceof RawCollection) throw new InvalidRequestException("Non-frozen collections are not allowed inside collections: " + this); -else +else if (innerType.isUDT()) throw new InvalidRequestException
[cassandra] branch trunk updated (5f7c886 -> 7a7eece)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 5f7c886 Merge branch 'cassandra-3.11' into trunk new 4f27a37 C* 3.0 sstables w/ UDTs are corrupted in C* 3.11 and 4.0 new ffab2b8 C* 3.0 sstables w/ UDTs are corrupted in C* 3.11 and 4.0 new 7a7eece Merge branch 'cassandra-3.11' into trunk The 3 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: CHANGES.txt| 1 + NEWS.txt | 18 + src/java/org/apache/cassandra/cql3/CQL3Type.java | 4 +- .../apache/cassandra/db/SerializationHeader.java | 12 + .../org/apache/cassandra/db/SystemKeyspace.java| 2 + .../org/apache/cassandra/db/rows/AbstractCell.java | 15 +- .../org/apache/cassandra/db/rows/AbstractRow.java | 22 +- .../db/rows/AbstractTypeVersionComparator.java | 121 --- .../db/rows/ColumnMetadataVersionComparator.java | 85 ++ src/java/org/apache/cassandra/db/rows/Row.java | 2 +- src/java/org/apache/cassandra/db/rows/Rows.java| 2 +- .../cassandra/io/sstable/SSTableHeaderFix.java | 918 .../cassandra/io/sstable/format/SSTableReader.java | 5 + .../io/sstable/metadata/IMetadataSerializer.java | 5 + .../io/sstable/metadata/MetadataSerializer.java| 2 +- .../apache/cassandra/service/CassandraDaemon.java | 3 + .../apache/cassandra/tools/StandaloneScrubber.java | 144 ++- .../org/apache/cassandra/utils/FBUtilities.java| 12 + ...va => ColumnMetadataVersionComparatorTest.java} | 29 +- .../cassandra/io/sstable/SSTableHeaderFixTest.java | 964 + .../schema/TupleTypesRepresentationTest.java | 403 + 21 files changed, 2621 insertions(+), 148 deletions(-) delete mode 100644 src/java/org/apache/cassandra/db/rows/AbstractTypeVersionComparator.java create mode 100644 src/java/org/apache/cassandra/db/rows/ColumnMetadataVersionComparator.java create mode 100644 src/java/org/apache/cassandra/io/sstable/SSTableHeaderFix.java rename test/unit/org/apache/cassandra/db/rows/{AbstractTypeVersionComparatorTest.java => ColumnMetadataVersionComparatorTest.java} (71%) create mode 100644 test/unit/org/apache/cassandra/io/sstable/SSTableHeaderFixTest.java create mode 100644 test/unit/org/apache/cassandra/schema/TupleTypesRepresentationTest.java - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 02/02: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 7a7eece9578312a2f9d77de6e0755a3c3c542e99 Merge: 4f27a37 ffab2b8 Author: Robert Stupp AuthorDate: Fri Jan 31 10:08:33 2020 +0100 Merge branch 'cassandra-3.11' into trunk - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated: Close channels on error
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git View the commit online: https://github.com/apache/cassandra/commit/c2e11bd4224b2110abe6aa84c8882e85980e3491 The following commit(s) were added to refs/heads/trunk by this push: new c2e11bd Close channels on error c2e11bd is described below commit c2e11bd4224b2110abe6aa84c8882e85980e3491 Author: Ekaterina Dimitrova AuthorDate: Fri Nov 8 15:15:20 2019 -0500 Close channels on error Patch by Ekaterina Dimitrova, reviewed by Robert Stupp for CASSANDRA-15407 --- CHANGES.txt| 1 + .../cassandra/hints/ChecksummedDataInput.java | 11 +- .../hints/CompressedChecksummedDataInput.java | 11 +- .../hints/EncryptedChecksummedDataInput.java | 11 +- .../org/apache/cassandra/hints/HintsWriter.java| 12 +++--- .../org/apache/cassandra/io/util/FileHandle.java | 9 + .../org/apache/cassandra/utils/Throwables.java | 45 ++ 7 files changed, 91 insertions(+), 9 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index da57886..d44306c 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,6 +3,7 @@ * Optimise native protocol ASCII string encoding (CASSANDRA-15410) * Make sure all exceptions are propagated in DebuggableThreadPoolExecutor (CASSANDRA-15332) * Make it possible to resize concurrent read / write thread pools at runtime (CASSANDRA-15277) + * Close channels on error (CASSANDRA-15407) Merged from 2.2: * In-JVM DTest: Set correct internode message version for upgrade test (CASSANDRA-15371) diff --git a/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java b/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java index 6ebc830..30d18fa 100644 --- a/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java +++ b/src/java/org/apache/cassandra/hints/ChecksummedDataInput.java @@ -26,6 +26,7 @@ import com.google.common.base.Preconditions; import org.apache.cassandra.io.compress.BufferType; import org.apache.cassandra.io.util.*; +import org.apache.cassandra.utils.Throwables; import org.apache.cassandra.utils.NativeLibrary; import org.apache.cassandra.utils.memory.BufferPool; @@ -74,7 +75,15 @@ public class ChecksummedDataInput extends RebufferingInputStream @SuppressWarnings("resource") public static ChecksummedDataInput open(File file) { -return new ChecksummedDataInput(new ChannelProxy(file)); +ChannelProxy channel = new ChannelProxy(file); +try +{ +return new ChecksummedDataInput(channel); +} +catch (Throwable t) +{ +throw Throwables.cleaned(channel.close(t)); +} } public boolean isEOF() diff --git a/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java b/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java index 4982a03..0381b00 100644 --- a/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java +++ b/src/java/org/apache/cassandra/hints/CompressedChecksummedDataInput.java @@ -27,6 +27,7 @@ import org.apache.cassandra.io.FSReadError; import org.apache.cassandra.io.compress.ICompressor; import org.apache.cassandra.io.util.ChannelProxy; import org.apache.cassandra.utils.memory.BufferPool; +import org.apache.cassandra.utils.Throwables; public final class CompressedChecksummedDataInput extends ChecksummedDataInput { @@ -160,7 +161,15 @@ public final class CompressedChecksummedDataInput extends ChecksummedDataInput long position = input.getPosition(); input.close(); -return new CompressedChecksummedDataInput(new ChannelProxy(input.getPath()), compressor, position); +ChannelProxy channel = new ChannelProxy(input.getPath()); +try +{ +return new CompressedChecksummedDataInput(channel, compressor, position); +} +catch (Throwable t) +{ +throw Throwables.cleaned(channel.close(t)); +} } @VisibleForTesting diff --git a/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java b/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java index a70a443..5edd8a8 100644 --- a/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java +++ b/src/java/org/apache/cassandra/hints/EncryptedChecksummedDataInput.java @@ -28,6 +28,7 @@ import org.apache.cassandra.security.EncryptionUtils; import org.apache.cassandra.io.FSReadError; import org.apache.cassandra.io.compress.ICompressor; import org.apache.cassandra.io.util.ChannelProxy; +import org.apache.cassandra.utils.Throwables; public class EncryptedChecksummedDataInput extends ChecksummedDataInput { @@ -137,7 +138,15 @@ public class EncryptedChecksummedDataInput extends ChecksummedDataInput lon
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit c79422d7f50472daea75c9e8a246f6d76b13d4f2 Merge: cf55294 eb2c549 Author: Robert Stupp AuthorDate: Fri Aug 23 14:15:26 2019 +0200 Merge branch 'cassandra-3.11' into trunk - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (cf55294 -> c79422d)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from cf55294 Merge branch 'cassandra-3.11' into trunk new eb2c549 ninja: fix build error on LegacyLayoutTest new c79422d Merge branch 'cassandra-3.11' into trunk The 2 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: - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.11 updated: ninja: fix build error on LegacyLayoutTest
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.11 by this push: new eb2c549 ninja: fix build error on LegacyLayoutTest eb2c549 is described below commit eb2c549940baf0e30a8c07ea51fe4a1d828ca3ac Author: Paulo Motta AuthorDate: Fri Aug 23 09:06:45 2019 -0300 ninja: fix build error on LegacyLayoutTest --- test/unit/org/apache/cassandra/db/LegacyLayoutTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java b/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java index 4058b03..5a08e3e 100644 --- a/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java +++ b/test/unit/org/apache/cassandra/db/LegacyLayoutTest.java @@ -374,8 +374,8 @@ public class LegacyLayoutTest ByteBuffer one = Int32Type.instance.decompose(1); ByteBuffer two = Int32Type.instance.decompose(2); PartitionUpdate p = new PartitionUpdate(table, table.decorateKey(one), table.partitionColumns(), 0); -p.add(new RangeTombstone(Slice.make(new Slice.Bound(ClusteringPrefix.Kind.EXCL_START_BOUND, new ByteBuffer[] { one, one }), -new Slice.Bound(ClusteringPrefix.Kind.INCL_END_BOUND, new ByteBuffer[] { two })), +p.add(new RangeTombstone(Slice.make(new ClusteringBound(ClusteringPrefix.Kind.EXCL_START_BOUND, new ByteBuffer[] { one, one }), +new ClusteringBound(ClusteringPrefix.Kind.INCL_END_BOUND, new ByteBuffer[] { two })), new DeletionTime(1, 1) )); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (ef6c5f8 -> 5ea3394)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from ef6c5f8 Merge branch cassandra-3.11 into trunk new 62d66a4 Fix CHANGES.txt new 737a566 Merge branch 'cassandra-3.0' into cassandra-3.11 new 5ea3394 Merge branch 'cassandra-3.11' into trunk The 3 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: CHANGES.txt | 1 + 1 file changed, 1 insertion(+) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.11 updated (16c96c2 -> 737a566)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 16c96c2 Merge branch cassandra-3.0 into cassandra-3.11 new 62d66a4 Fix CHANGES.txt new 737a566 Merge branch 'cassandra-3.0' into cassandra-3.11 The 2 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: CHANGES.txt | 1 + 1 file changed, 1 insertion(+) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 5ea3394e9561591322356b19f41ef450fe1972ab Merge: ef6c5f8 737a566 Author: Robert Stupp AuthorDate: Fri Feb 1 12:34:56 2019 +0100 Merge branch 'cassandra-3.11' into trunk CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --cc CHANGES.txt index a905ad3,76cd7d7..4f52cca --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -348,10 -2,13 +348,11 @@@ * Make stop-server.bat wait for Cassandra to terminate (CASSANDRA-14829) * Correct sstable sorting for garbagecollect and levelled compaction (CASSANDRA-14870) Merged from 3.0: + * Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser * Add a script to make running the cqlsh tests in cassandra repo easier (CASSANDRA-14951) * If SizeEstimatesRecorder misses a 'onDropTable' notification, the size_estimates table will never be cleared for that table. (CASSANDRA-14905) - * Counters fail to increment in 2.1/2.2 to 3.X mixed version clusters (CASSANDRA-14958) * Streaming needs to synchronise access to LifecycleTransaction (CASSANDRA-14554) * Fix cassandra-stress write hang with default options (CASSANDRA-14616) - * Differentiate between slices and RTs when decoding legacy bounds (CASSANDRA-14919) * Netty epoll IOExceptions caused by unclean client disconnects being logged at INFO (CASSANDRA-14909) * Unfiltered.isEmpty conflicts with Row extends AbstractCollection.isEmpty (CASSANDRA-14588) * RangeTombstoneList doesn't properly clean up mergeable or superseded rts in some cases (CASSANDRA-14894) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.0 updated: Fix CHANGES.txt
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.0 by this push: new 62d66a4 Fix CHANGES.txt 62d66a4 is described below commit 62d66a43c67042c46eb67e272c4dec5cb328c9d7 Author: Robert Stupp AuthorDate: Fri Feb 1 12:34:12 2019 +0100 Fix CHANGES.txt --- CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.txt b/CHANGES.txt index 812af0a..e3b23ee 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.18 + * Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser * Add a script to make running the cqlsh tests in cassandra repo easier (CASSANDRA-14951) * If SizeEstimatesRecorder misses a 'onDropTable' notification, the size_estimates table will never be cleared for that table. (CASSANDRA-14905) * Counters fail to increment in 2.1/2.2 to 3.X mixed version clusters (CASSANDRA-14958) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 737a5666b021caea7e74c33f12e30865a52e4b99 Merge: 16c96c2 62d66a4 Author: Robert Stupp AuthorDate: Fri Feb 1 12:34:43 2019 +0100 Merge branch 'cassandra-3.0' into cassandra-3.11 CHANGES.txt | 1 + 1 file changed, 1 insertion(+) diff --cc CHANGES.txt index d85a4af,e3b23ee..76cd7d7 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,7 -1,5 +1,8 @@@ -3.0.18 +3.11.4 + * Make stop-server.bat wait for Cassandra to terminate (CASSANDRA-14829) + * Correct sstable sorting for garbagecollect and levelled compaction (CASSANDRA-14870) +Merged from 3.0: + * Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser * Add a script to make running the cqlsh tests in cassandra repo easier (CASSANDRA-14951) * If SizeEstimatesRecorder misses a 'onDropTable' notification, the size_estimates table will never be cleared for that table. (CASSANDRA-14905) * Counters fail to increment in 2.1/2.2 to 3.X mixed version clusters (CASSANDRA-14958) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch cassandra-3.0 into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 16c96c20dadfbda98d4b5daf7f6c169b691459b9 Merge: 2d05bff bc18b4d Author: Robert Stupp AuthorDate: Fri Feb 1 12:26:43 2019 +0100 Merge branch cassandra-3.0 into cassandra-3.11 .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 14 +- .../compaction/DateTieredCompactionStrategy.java | 20 +- .../compaction/SizeTieredCompactionStrategy.java | 6 +- .../compaction/TimeWindowCompactionStrategy.java | 4 +- .../apache/cassandra/db/marshal/TypeParser.java| 30 +- .../cassandra/locator/NetworkTopologyStrategy.java | 3 +- .../apache/cassandra/locator/TokenMetadata.java| 364 - .../locator/NetworkTopologyStrategyTest.java | 3 +- .../cassandra/locator/TokenMetadataTest.java | 23 +- 10 files changed, 280 insertions(+), 188 deletions(-) diff --cc src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index bb9f4b9,7c38fa8..83d77a9 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@@ -105,10 -89,10 +105,14 @@@ public class DateTieredCompactionStrate */ private synchronized List getNextBackgroundSSTables(final int gcBefore) { - if (sstables.isEmpty()) -if (Iterables.isEmpty(cfs.getSSTables(SSTableSet.LIVE))) --return Collections.emptyList(); ++Set uncompacting; ++synchronized (sstables) ++{ ++if (sstables.isEmpty()) ++return Collections.emptyList(); --Set uncompacting = ImmutableSet.copyOf(filter(cfs.getUncompactingSSTables(), sstables::contains)); ++uncompacting = ImmutableSet.copyOf(filter(cfs.getUncompactingSSTables(), sstables::contains)); ++} Set expired = Collections.emptySet(); // we only check for expired sstables every 10 minutes (by default) due to it being an expensive operation diff --cc src/java/org/apache/cassandra/db/marshal/TypeParser.java index 78af800,590eea3..7416d49 --- a/src/java/org/apache/cassandra/db/marshal/TypeParser.java +++ b/src/java/org/apache/cassandra/db/marshal/TypeParser.java @@@ -23,7 -23,9 +23,10 @@@ import java.lang.reflect.Method import java.nio.ByteBuffer; import java.util.*; + import com.google.common.base.Verify; + import com.google.common.collect.ImmutableMap; + +import org.apache.cassandra.cql3.FieldIdentifier; import org.apache.cassandra.exceptions.*; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.FBUtilities; diff --cc src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java index 756b689,82183bb..d48dec3 --- a/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java +++ b/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java @@@ -28,8 -28,8 +28,9 @@@ import org.apache.cassandra.exceptions. import org.apache.cassandra.dht.Token; import org.apache.cassandra.locator.TokenMetadata.Topology; import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.Pair; + import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; /** @@@ -151,29 -92,22 +152,29 @@@ public class NetworkTopologyStrategy ex // all endpoints in each DC, so we can check when we have exhausted all the members of a DC Multimap allEndpoints = topology.getDatacenterEndpoints(); // all racks in a DC so we can check when we have exhausted all racks in a DC - Map> racks = topology.getDatacenterRacks(); + Map> racks = topology.getDatacenterRacks(); assert !allEndpoints.isEmpty() && !racks.isEmpty() : "not aware of any cluster members"; -// tracks the racks we have already placed replicas in -Map> seenRacks = new HashMap<>(datacenters.size()); -for (Map.Entry dc : datacenters.entrySet()) -seenRacks.put(dc.getKey(), new HashSet()); +int dcsToFill = 0; +Map dcs = new HashMap<>(datacenters.size() * 2); -// tracks the endpoints that we skipped over while looking for unique racks -// when we relax the rack uniqueness we can append this to the current result so we don't have to wind back the iterator -Map> skippedDcEndpoints = new HashMap<>(datacenters.size()); -for (Map.Entry dc : datacenters.entrySet()) -skippedDcEndpoints.put(dc.getKey(), new LinkedHashSet()); +// Create a DatacenterEndpoints object for each non-empty DC. +for (Map.Entry en : datacenters.entrySet()) +{ +String
[cassandra] branch cassandra-3.11 updated (2d05bff -> 16c96c2)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 2d05bff Merge branch 'cassandra-3.0' into cassandra-3.11 new bc18b4d Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser new 16c96c2 Merge branch cassandra-3.0 into cassandra-3.11 The 2 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: .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 14 +- .../compaction/DateTieredCompactionStrategy.java | 20 +- .../compaction/SizeTieredCompactionStrategy.java | 6 +- .../compaction/TimeWindowCompactionStrategy.java | 4 +- .../apache/cassandra/db/marshal/TypeParser.java| 30 +- .../cassandra/locator/NetworkTopologyStrategy.java | 3 +- .../apache/cassandra/locator/TokenMetadata.java| 364 - .../locator/NetworkTopologyStrategyTest.java | 3 +- .../cassandra/locator/TokenMetadataTest.java | 23 +- 10 files changed, 280 insertions(+), 188 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.0 updated: Severe concurrency issues in STCS, DTCS, TWCS, TMD.Topology, TypeParser
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.0 by this push: new bc18b4d Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser bc18b4d is described below commit bc18b4dd4e33020d0d58c3701077d0af5c39bce6 Author: Robert Stupp AuthorDate: Wed Oct 31 12:48:19 2018 +0100 Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser patch by Robert Stupp; reviewed by Blake Eggleston for CASSANDRA-14781 --- .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 14 +- .../compaction/DateTieredCompactionStrategy.java | 12 +- .../compaction/SizeTieredCompactionStrategy.java | 8 +- .../compaction/TimeWindowCompactionStrategy.java | 4 +- .../apache/cassandra/db/marshal/TypeParser.java| 30 +- .../cassandra/locator/NetworkTopologyStrategy.java | 3 +- .../apache/cassandra/locator/TokenMetadata.java| 354 - .../cassandra/locator/TokenMetadataTest.java | 23 +- 9 files changed, 269 insertions(+), 180 deletions(-) diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index 3482909..355d710 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -2138,7 +2138,6 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean assert data.getCompacting().isEmpty() : data.getCompacting(); Iterable sstables = getLiveSSTables(); sstables = AbstractCompactionStrategy.filterSuspectSSTables(sstables); -sstables = ImmutableList.copyOf(sstables); LifecycleTransaction modifier = data.tryModify(sstables, operationType); assert modifier != null: "something marked things compacting while compactions are disabled"; return modifier; diff --git a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java index 9f07691..2348d19 100644 --- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java @@ -252,15 +252,15 @@ public abstract class AbstractCompactionStrategy * @param originalCandidates The collection to check for blacklisted SSTables * @return list of the SSTables with blacklisted ones filtered out */ -public static Iterable filterSuspectSSTables(Iterable originalCandidates) +public static List filterSuspectSSTables(Iterable originalCandidates) { -return Iterables.filter(originalCandidates, new Predicate() +List filtered = new ArrayList<>(); +for (SSTableReader sstable : originalCandidates) { -public boolean apply(SSTableReader sstable) -{ -return !sstable.isMarkedSuspect(); -} -}); +if (!sstable.isMarkedSuspect()) +filtered.add(sstable); +} +return filtered; } diff --git a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java index 3e6ae61..7c38fa8 100644 --- a/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/DateTieredCompactionStrategy.java @@ -87,7 +87,7 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy * @param gcBefore * @return */ -private List getNextBackgroundSSTables(final int gcBefore) +private synchronized List getNextBackgroundSSTables(final int gcBefore) { if (Iterables.isEmpty(cfs.getSSTables(SSTableSet.LIVE))) return Collections.emptyList(); @@ -193,11 +193,6 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy }); } -/** - * - * @param sstables - * @return - */ public static List> createSSTableAndMinTimestampPairs(Iterable sstables) { List> sstableMinTimestampPairs = Lists.newArrayListWithCapacity(Iterables.size(sstables)); @@ -205,14 +200,15 @@ public class DateTieredCompactionStrategy extends AbstractCompactionStrategy sstableMinTimestampPairs.add(Pair.create(sstable, sstable.getMinTimestamp())); return sstableMinTimestampPairs; } + @Override -public void addSSTable(SSTableReader sstable) +public synchronized void addSSTable(SSTableReader sstable) { sstables.add(sstable); } @Ove
[cassandra] branch trunk updated (7f634fe -> ef6c5f8)
This is an automated email from the ASF dual-hosted git repository. snazy pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 7f634fe Avoid leaking threads when remote nodes fail anticompaction and rate limit anticompactions new bc18b4d Severe concurrency issues in STCS,DTCS,TWCS,TMD.Topology,TypeParser new 16c96c2 Merge branch cassandra-3.0 into cassandra-3.11 new ef6c5f8 Merge branch cassandra-3.11 into trunk The 3 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: .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 14 +- .../compaction/DateTieredCompactionStrategy.java | 20 +- .../compaction/SizeTieredCompactionStrategy.java | 6 +- .../compaction/TimeWindowCompactionStrategy.java | 4 +- .../apache/cassandra/db/marshal/TypeParser.java| 30 +- .../cassandra/locator/NetworkTopologyStrategy.java | 3 +- .../apache/cassandra/locator/TokenMetadata.java| 414 - .../locator/NetworkTopologyStrategyTest.java | 3 +- .../cassandra/locator/TokenMetadataTest.java | 23 +- 10 files changed, 312 insertions(+), 206 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch cassandra-3.11 into trunk
This is an automated email from the ASF dual-hosted git repository. snazy pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit ef6c5f8ba9dc18e7a5bacfd5d8461ae5d9f12df4 Merge: 7f634fe 16c96c2 Author: Robert Stupp AuthorDate: Fri Feb 1 12:27:49 2019 +0100 Merge branch cassandra-3.11 into trunk .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 14 +- .../compaction/DateTieredCompactionStrategy.java | 20 +- .../compaction/SizeTieredCompactionStrategy.java | 6 +- .../compaction/TimeWindowCompactionStrategy.java | 4 +- .../apache/cassandra/db/marshal/TypeParser.java| 30 +- .../cassandra/locator/NetworkTopologyStrategy.java | 3 +- .../apache/cassandra/locator/TokenMetadata.java| 414 - .../locator/NetworkTopologyStrategyTest.java | 3 +- .../cassandra/locator/TokenMetadataTest.java | 23 +- 10 files changed, 312 insertions(+), 206 deletions(-) diff --cc src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java index c9f24e0,d48dec3..be63ea1 --- a/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java +++ b/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java @@@ -175,9 -150,9 +176,9 @@@ public class NetworkTopologyStrategy ex Topology topology = tokenMetadata.getTopology(); // all endpoints in each DC, so we can check when we have exhausted all the members of a DC -Multimap allEndpoints = topology.getDatacenterEndpoints(); +Multimap allEndpoints = topology.getDatacenterEndpoints(); // all racks in a DC so we can check when we have exhausted all racks in a DC - Map> racks = topology.getDatacenterRacks(); -Map> racks = topology.getDatacenterRacks(); ++Map> racks = topology.getDatacenterRacks(); assert !allEndpoints.isEmpty() && !racks.isEmpty() : "not aware of any cluster members"; int dcsToFill = 0; diff --cc src/java/org/apache/cassandra/locator/TokenMetadata.java index f95ee0c,8a1d9d0..cb189c8 --- a/src/java/org/apache/cassandra/locator/TokenMetadata.java +++ b/src/java/org/apache/cassandra/locator/TokenMetadata.java @@@ -96,19 -95,28 +96,20 @@@ public class TokenMetadat /* Use this lock for manipulating the token map */ private final ReadWriteLock lock = new ReentrantReadWriteLock(true); - private volatile ArrayList sortedTokens; + private volatile ArrayList sortedTokens; // safe to be read without a lock, as it's never mutated + + private volatile Topology topology; - private final Topology topology; public final IPartitioner partitioner; -private static final Comparator inetaddressCmp = new Comparator() -{ -public int compare(InetAddress o1, InetAddress o2) -{ -return ByteBuffer.wrap(o1.getAddress()).compareTo(ByteBuffer.wrap(o2.getAddress())); -} -}; - // signals replication strategies that nodes have joined or left the ring and they need to recompute ownership private volatile long ringVersion = 0; public TokenMetadata() { -this(SortedBiMultiValMap.create(null, inetaddressCmp), - HashBiMap.create(), +this(SortedBiMultiValMap.create(), + HashBiMap.create(), - new Topology(), + Topology.empty(), DatabaseDescriptor.getPartitioner()); } @@@ -186,7 -194,8 +187,8 @@@ try { boolean shouldSortTokens = false; + Topology.Builder topologyBuilder = topology.unbuild(); -for (InetAddress endpoint : endpointTokens.keySet()) +for (InetAddressAndPort endpoint : endpointTokens.keySet()) { Collection tokens = endpointTokens.get(endpoint); @@@ -372,14 -382,30 +375,30 @@@ } } -public Optional getReplacementNode(InetAddress endpoint) +public Optional getReplacementNode(InetAddressAndPort endpoint) { - return Optional.ofNullable(replacementToOriginal.inverse().get(endpoint)); + lock.readLock().lock(); + try + { + return Optional.ofNullable(replacementToOriginal.inverse().get(endpoint)); + } + finally + { + lock.readLock().unlock(); + } } -public Optional getReplacingNode(InetAddress endpoint) +public Optional getReplacingNode(InetAddressAndPort endpoint) { - return Optional.ofNullable((replacementToOriginal.get(endpoint))); + lock.readLock().lock(); + try + { + return Optional.ofNullable((replacementToOriginal.get(endpoint))); + } + finally + { + lock.readLock().unlock(); + } } public void removeB
cassandra git commit: Fix SafeMemoryWriterTest
Repository: cassandra Updated Branches: refs/heads/trunk f8d34d356 -> 8b1a6247e Fix SafeMemoryWriterTest patch by Robert Stupp; reviewed by Branimir Lambov for CASSANDRA-14681 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8b1a6247 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8b1a6247 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8b1a6247 Branch: refs/heads/trunk Commit: 8b1a6247ec5aabad92a664ff2cbf6d6529d8ceb7 Parents: f8d34d3 Author: Robert Stupp Authored: Thu Aug 30 19:10:57 2018 +0200 Committer: Robert Stupp Committed: Thu Aug 30 19:10:57 2018 +0200 -- .../cassandra/io/util/SafeMemoryWriterTest.java | 28 +--- 1 file changed, 24 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b1a6247/test/unit/org/apache/cassandra/io/util/SafeMemoryWriterTest.java -- diff --git a/test/unit/org/apache/cassandra/io/util/SafeMemoryWriterTest.java b/test/unit/org/apache/cassandra/io/util/SafeMemoryWriterTest.java index 12c8c98..8b37c2d 100644 --- a/test/unit/org/apache/cassandra/io/util/SafeMemoryWriterTest.java +++ b/test/unit/org/apache/cassandra/io/util/SafeMemoryWriterTest.java @@ -24,8 +24,6 @@ import java.util.Random; import org.junit.Assert; import org.junit.Test; -import sun.misc.VM; - import static org.junit.Assert.assertEquals; public class SafeMemoryWriterTest @@ -33,6 +31,28 @@ public class SafeMemoryWriterTest Random rand = new Random(); static final int CHUNK = 54321; +static final long maxDirectMemory; +static +{ +try +{ +Class cVM; +try +{ +cVM = Class.forName("jdk.internal.misc.VM"); +} +catch (ClassNotFoundException e) +{ +cVM = Class.forName("sun.misc.VM"); +} +maxDirectMemory = (Long) cVM.getDeclaredMethod("maxDirectMemory").invoke(null); +} +catch (Exception e) +{ +throw new RuntimeException(e); +} +} + @Test public void testTrim() throws IOException { @@ -51,9 +71,9 @@ public class SafeMemoryWriterTest while (initialSize * 2 / 3 > 1024L * 1024L * DataOutputBuffer.DOUBLING_THRESHOLD) initialSize = initialSize * 2 / 3; -if (VM.maxDirectMemory() * 2 / 3 < testSize) +if (maxDirectMemory * 2 / 3 < testSize) { -testSize = VM.maxDirectMemory() * 2 / 3; +testSize = maxDirectMemory * 2 / 3; System.err.format("Insufficient direct memory for full test, reducing to: %,d %x\n", testSize, testSize); } - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[4/4] cassandra git commit: Make C* compile and run on Java 11 and Java 8
Make C* compile and run on Java 11 and Java 8 patch by Robert Stupp; reviewed by Jason Brown for CASSANDRA-9608 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6ba2fb93 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6ba2fb93 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6ba2fb93 Branch: refs/heads/trunk Commit: 6ba2fb9395226491872b41312d978a169f36fcdb Parents: 176d4ba Author: Robert Stupp Authored: Tue Sep 12 20:04:30 2017 +0200 Committer: Robert Stupp Committed: Thu Jul 26 18:20:00 2018 +0200 -- .circleci/config.yml| 4 +- .gitignore | 2 + CHANGES.txt | 1 + NEWS.txt| 5 + bin/cassandra | 24 +- bin/cassandra.bat | 2 +- bin/cassandra.in.sh | 100 +++- bin/debug-cql | 12 - bin/fqltool | 12 - bin/nodetool| 14 +- bin/sstableloader | 12 - bin/sstablescrub| 12 - bin/sstableupgrade | 12 - bin/sstableutil | 12 - bin/sstableverify | 12 - build.xml | 230 - conf/cassandra-env.ps1 | 11 +- conf/cassandra-env.sh | 76 ++ conf/jvm-clients.options| 10 + conf/jvm-server.options | 191 ++ conf/jvm.options| 254 --- conf/jvm11-clients.options | 21 ++ conf/jvm11-server.options | 89 +++ conf/jvm8-clients.options | 9 + conf/jvm8-server.options| 76 ++ debian/cassandra.in.sh | 84 +- debian/cassandra.install| 2 +- ide/idea-iml-file.xml | 5 +- ide/idea/misc.xml | 2 +- ide/idea/workspace.xml | 6 +- lib/asm-5.0.4.jar | Bin 53297 -> 0 bytes lib/asm-6.2.jar | Bin 0 -> 111214 bytes lib/chronicle-bytes-1.10.1.jar | Bin 273664 -> 0 bytes lib/chronicle-bytes-1.16.3.jar | Bin 0 -> 289991 bytes lib/chronicle-core-1.16.3-SNAPSHOT.jar | Bin 0 -> 218156 bytes lib/chronicle-core-1.9.21.jar | Bin 199833 -> 0 bytes lib/chronicle-queue-4.16.3.jar | Bin 0 -> 237198 bytes lib/chronicle-queue-4.6.55.jar | Bin 215247 -> 0 bytes lib/chronicle-threads-1.16.0.jar| Bin 0 -> 50299 bytes lib/chronicle-threads-1.9.1.jar | Bin 40530 -> 0 bytes lib/chronicle-wire-1.10.1.jar | Bin 419054 -> 0 bytes lib/chronicle-wire-1.16.1.jar | Bin 0 -> 437898 bytes lib/ecj-4.4.2.jar | Bin 2310271 -> 0 bytes lib/ecj-4.6.1.jar | Bin 0 -> 2440899 bytes lib/jamm-0.3.0.jar | Bin 21033 -> 0 bytes lib/jamm-0.3.2.jar | Bin 0 -> 22572 bytes lib/licenses/asm-5.0.4.txt | 29 --- lib/licenses/asm-6.2.txt| 29 +++ lib/licenses/chronicle-bytes-1.10.1.txt | 14 - lib/licenses/chronicle-bytes-1.16.3.txt | 14 + lib/licenses/chronicle-core-1.16.3-SNAPSHOT.txt | 14 + lib/licenses/chronicle-core-1.9.21.txt | 14 - lib/licenses/chronicle-queue-4.16.3.txt | 14 + lib/licenses/chronicle-queue-4.6.55.txt | 14 - lib/licenses/chronicle-threads-1.16.0.txt | 14 + lib/licenses/chronicle-threads-1.9.1.txt| 14 - lib/licenses/chronicle-wire-1.10.1.txt | 14 - lib/licenses/chronicle-wire-1.16.1.txt | 14 + lib/licenses/ecj-4.4.2.txt | 210 --- lib/licenses/ecj-4.6.1.txt | 210 +++ lib/licenses/jamm-0.3.0.txt | 202 --- lib/licenses/jamm-0.3.2.txt | 202 +++ lib/licenses/ohc-0.4.4.txt | 201 --- lib/licenses/ohc-0.5.1.txt | 201 +++ lib/ohc-core-0.4.4.jar | Bin 135369 -> 0 bytes lib/ohc-core-0.5.1.jar | Bin 0 -> 122716 bytes lib/ohc-core-j8-0.4.4.jar | Bin 4995 -> 0 bytes lib/ohc-core-j8-0.5.1.ja
[2/4] cassandra git commit: Make C* compile and run on Java 11 and Java 8
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/lib/licenses/ohc-0.4.4.txt -- diff --git a/lib/licenses/ohc-0.4.4.txt b/lib/licenses/ohc-0.4.4.txt deleted file mode 100644 index eb6b5d3..000 --- a/lib/licenses/ohc-0.4.4.txt +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 -http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute
[3/4] cassandra git commit: Make C* compile and run on Java 11 and Java 8
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/conf/jvm8-server.options -- diff --git a/conf/jvm8-server.options b/conf/jvm8-server.options new file mode 100644 index 000..14d0261 --- /dev/null +++ b/conf/jvm8-server.options @@ -0,0 +1,76 @@ +### +# jvm8-server.options# +# # +# See jvm-server.options. This file is specific for Java 8 and newer. # +### + + +# GENERAL JVM SETTINGS # + + +# allows lowering thread priority without being root on linux - probably +# not necessary on Windows but doesn't harm anything. +# see http://tech.stolsvik.com/2010/01/linux-java-thread-priorities-workaround.html +-XX:ThreadPriorityPolicy=42 + +# +# GC SETTINGS # +# + +### CMS Settings +#-XX:+UseParNewGC +#-XX:+UseConcMarkSweepGC +#-XX:+CMSParallelRemarkEnabled +#-XX:SurvivorRatio=8 +#-XX:MaxTenuringThreshold=1 +#-XX:CMSInitiatingOccupancyFraction=75 +#-XX:+UseCMSInitiatingOccupancyOnly +#-XX:CMSWaitDuration=1 +#-XX:+CMSParallelInitialMarkEnabled +#-XX:+CMSEdenChunksRecordAlways +## some JVMs will fill up their heap when accessed via JMX, see CASSANDRA-6541 +#-XX:+CMSClassUnloadingEnabled + +### G1 Settings +## Use the Hotspot garbage-first collector. +-XX:+UseG1GC +-XX:+ParallelRefProcEnabled + +# +## Have the JVM do less remembered set work during STW, instead +## preferring concurrent GC. Reduces p99.9 latency. +-XX:G1RSetUpdatingPauseTimePercent=5 +# +## Main G1GC tunable: lowering the pause target will lower throughput and vise versa. +## 200ms is the JVM default and lowest viable setting +## 1000ms increases throughput. Keep it smaller than the timeouts in cassandra.yaml. +-XX:MaxGCPauseMillis=500 + +## Optional G1 Settings +# Save CPU time on large (>= 16GB) heaps by delaying region scanning +# until the heap is 70% full. The default in Hotspot 8u40 is 40%. +#-XX:InitiatingHeapOccupancyPercent=70 + +# For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores. +# Otherwise equal to the number of cores when 8 or less. +# Machines with > 10 cores should try setting these to <= full cores. +#-XX:ParallelGCThreads=16 +# By default, ConcGCThreads is 1/4 of ParallelGCThreads. +# Setting both to the same value can reduce STW durations. +#-XX:ConcGCThreads=16 + +### GC logging options -- uncomment to enable + +-XX:+PrintGCDetails +-XX:+PrintGCDateStamps +-XX:+PrintHeapAtGC +-XX:+PrintTenuringDistribution +-XX:+PrintGCApplicationStoppedTime +-XX:+PrintPromotionFailure +#-XX:PrintFLSStatistics=1 +#-Xloggc:/var/log/cassandra/gc.log +-XX:+UseGCLogFileRotation +-XX:NumberOfGCLogFiles=10 +-XX:GCLogFileSize=10M + +# The newline in the end of file is intentional http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/debian/cassandra.in.sh -- diff --git a/debian/cassandra.in.sh b/debian/cassandra.in.sh index 8fcaf9c..552731d 100644 --- a/debian/cassandra.in.sh +++ b/debian/cassandra.in.sh @@ -27,8 +27,84 @@ CLASSPATH="$CLASSPATH:$EXTRA_CLASSPATH" # set JVM javaagent opts to avoid warnings/errors -if [ "$JVM_VENDOR" != "OpenJDK" -o "$JVM_VERSION" \> "1.6.0" ] \ - || [ "$JVM_VERSION" = "1.6.0" -a "$JVM_PATCH_VERSION" -ge 23 ] -then -JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.0.jar" +JAVA_AGENT="$JAVA_AGENT -javaagent:$CASSANDRA_HOME/lib/jamm-0.3.2.jar" + + +# +# Java executable and per-Java version JVM settings +# + +# Use JAVA_HOME if set, otherwise look for java in PATH +if [ -n "$JAVA_HOME" ]; then +# Why we can't have nice things: Solaris combines x86 and x86_64 +# installations in the same tree, using an unconventional path for the +# 64bit JVM. Since we prefer 64bit, search the alternate path first, +# (see https://issues.apache.org/jira/browse/CASSANDRA-4638). +for java in "$JAVA_HOME"/bin/amd64/java "$JAVA_HOME"/bin/java; do +if [ -x "$java" ]; then +JAVA="$java" +break +fi +done +else +JAVA=java fi + +if [ -z $JAVA ] ; then +echo Unable to find java executable. Check JAVA_HOME and PATH environment variables. >&2 +exit 1; +fi + +# Determine the sort of JVM we'll be running on. +java_ver_output=`"${JAVA:-java}" -version 2>&1` +jvmver=`echo "$java_ver_output" | grep '[openjdk|java] version' | awk -F'"' 'NR==1 {print $2}' | cut -d\- -f1` +JVM_VERSION=${jvmver%_*} + +JAVA_VERSION=11 +if [ "$JVM_VERSION" = "1.8.0" ] ; then +JVM_PATCH_VERSION=${jvmver#*_} +if [ "$JVM_VERSION" \< "1.8" ] || [ "$JVM_VERSION" \> "1.8.2" ] ; then +echo "Cassandra 4.0 require
[1/4] cassandra git commit: Make C* compile and run on Java 11 and Java 8
Repository: cassandra Updated Branches: refs/heads/trunk 176d4bac2 -> 6ba2fb939 http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java -- diff --git a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java index 1db4b7f..16cb45d 100644 --- a/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java +++ b/src/java/org/apache/cassandra/utils/memory/SlabAllocator.java @@ -26,9 +26,9 @@ import java.util.concurrent.atomic.AtomicReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.concurrent.OpOrder; -import sun.nio.ch.DirectBuffer; /** + * The SlabAllocator is a bump-the-pointer allocator that allocates @@ -116,7 +116,7 @@ public class SlabAllocator extends MemtableBufferAllocator public void setDiscarded() { for (Region region : offHeapRegions) -((DirectBuffer) region.data).cleaner().clean(); +FileUtils.clean(region.data); super.setDiscarded(); } http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/src/java11/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java -- diff --git a/src/java11/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java b/src/java11/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java new file mode 100644 index 000..ac1a11d --- /dev/null +++ b/src/java11/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java @@ -0,0 +1,60 @@ +/* + * 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. + */ + +package org.apache.cassandra.db.partitions; + +import java.util.concurrent.locks.ReentrantLock; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import org.apache.cassandra.db.DecoratedKey; + +/** + * Java 11 version for the partition-locks in {@link AtomicBTreePartition}. + */ +public abstract class AtomicBTreePartitionBase extends AbstractBTreePartition +{ +private static final Logger logger = LoggerFactory.getLogger(AtomicBTreePartitionBase.class); + +protected AtomicBTreePartitionBase(DecoratedKey partitionKey) +{ +super(partitionKey); +} + +// Replacement for Unsafe.monitorEnter/monitorExit. +private final ReentrantLock lock = new ReentrantLock(); + +static +{ +logger.info("Initializing Java 11 support for AtomicBTreePartition"); + +if (Runtime.version().version().get(0) < 11) +throw new RuntimeException("Java 11 required, but found " + Runtime.version()); +} + +protected final void acquireLock() +{ +lock.lock(); +} + +protected final void releaseLock() +{ +lock.unlock(); +} +} http://git-wip-us.apache.org/repos/asf/cassandra/blob/6ba2fb93/src/java8/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java -- diff --git a/src/java8/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java b/src/java8/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java new file mode 100644 index 000..32209e9 --- /dev/null +++ b/src/java8/org/apache/cassandra/db/partitions/AtomicBTreePartitionBase.java @@ -0,0 +1,81 @@ +/* + * 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, ei
cassandra-dtest git commit: Fix jmxutils.py
Repository: cassandra-dtest Updated Branches: refs/heads/master f210e532e -> f45a06b2e Fix jmxutils.py patch by Robert Stupp; reviewed by Philip Thompson and Jason Brown for CASSANDRA-9608 Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/f45a06b2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/f45a06b2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/f45a06b2 Branch: refs/heads/master Commit: f45a06b2efd08e9971d29b0e15c9ba388e4ae6bd Parents: f210e53 Author: Robert Stupp Authored: Wed Jul 25 16:03:35 2018 +0200 Committer: Robert Stupp Committed: Wed Jul 25 16:03:35 2018 +0200 -- tools/jmxutils.py | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/f45a06b2/tools/jmxutils.py -- diff --git a/tools/jmxutils.py b/tools/jmxutils.py index 8c78022..b0d6c68 100644 --- a/tools/jmxutils.py +++ b/tools/jmxutils.py @@ -1,3 +1,4 @@ +import glob import json import os import subprocess @@ -13,7 +14,6 @@ logger = logging.getLogger(__name__) JOLOKIA_JAR = os.path.join('lib', 'jolokia-jvm-1.2.3-agent.jar') CLASSPATH_SEP = ';' if common.is_win() else ':' -JVM_OPTIONS = "jvm.options" def jolokia_classpath(): @@ -162,15 +162,16 @@ def remove_perf_disable_shared_mem(node): edits cassandra-env.sh (or the Windows equivalent), or jvm.options file on 3.2+ to remove that option. """ if node.get_cassandra_version() >= LooseVersion('3.2'): -conf_file = os.path.join(node.get_conf_dir(), JVM_OPTIONS) pattern = '\-XX:\+PerfDisableSharedMem' replacement = '#-XX:+PerfDisableSharedMem' +for f in glob.glob(os.path.join(node.get_conf_dir(), common.JVM_OPTS_PATTERN)): +if os.path.isfile(f): +common.replace_in_file(f, pattern, replacement) else: conf_file = node.envfilename() pattern = 'PerfDisableSharedMem' replacement = '' - -common.replace_in_file(conf_file, pattern, replacement) +common.replace_in_file(conf_file, pattern, replacement) class JolokiaAgent(object): - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Fix cqlshtests
Repository: cassandra Updated Branches: refs/heads/trunk cc4367700 -> 1b82de8c9 Fix cqlshtests patch by Alex Petrov; reviewed by Robert Stupp for CASSANDRA-14007 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1b82de8c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1b82de8c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1b82de8c Branch: refs/heads/trunk Commit: 1b82de8c9fe62cf78f07cf54fe32b561058eebe5 Parents: cc43677 Author: Alex Petrov Authored: Thu Feb 22 18:29:54 2018 +0100 Committer: Robert Stupp Committed: Thu Feb 22 18:30:50 2018 +0100 -- pylib/cqlshlib/test/test_keyspace_init.cql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1b82de8c/pylib/cqlshlib/test/test_keyspace_init.cql -- diff --git a/pylib/cqlshlib/test/test_keyspace_init.cql b/pylib/cqlshlib/test/test_keyspace_init.cql index c64163a..26e8dae 100644 --- a/pylib/cqlshlib/test/test_keyspace_init.cql +++ b/pylib/cqlshlib/test/test_keyspace_init.cql @@ -63,12 +63,12 @@ CREATE TABLE empty_table ( -CREATE COLUMNFAMILY dynamic_columns ( +CREATE TABLE dynamic_columns ( somekey int, column1 float, value text, PRIMARY KEY(somekey, column1) -) WITH COMPACT STORAGE; +); INSERT INTO dynamic_columns (somekey, column1, value) VALUES (1, 1.2, 'one point two'); INSERT INTO dynamic_columns (somekey, column1, value) VALUES (2, 2.3, 'two point three'); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra-dtest] Git Push Summary
Repository: cassandra-dtest Updated Branches: refs/heads/schema-migration-upgrade-bug [deleted] 777c9ab43 - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra-dtest git commit: Verify that no migration storm happens during an upgrade from 3.0 to 3.11
Repository: cassandra-dtest Updated Branches: refs/heads/master 3d2a6cc73 -> e67ef2b80 Verify that no migration storm happens during an upgrade from 3.0 to 3.11 patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-14109 Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/e67ef2b8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/e67ef2b8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/e67ef2b8 Branch: refs/heads/master Commit: e67ef2b80a45ae02cc15f4e1a6c57cc68c09b0f8 Parents: 3d2a6cc Author: Robert Stupp Authored: Fri Dec 8 22:29:08 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 14:12:34 2017 +0100 -- upgrade_tests/upgrade_schema_agreement_test.py | 258 1 file changed, 258 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/e67ef2b8/upgrade_tests/upgrade_schema_agreement_test.py -- diff --git a/upgrade_tests/upgrade_schema_agreement_test.py b/upgrade_tests/upgrade_schema_agreement_test.py new file mode 100644 index 000..8541411 --- /dev/null +++ b/upgrade_tests/upgrade_schema_agreement_test.py @@ -0,0 +1,258 @@ +import re +import time + +from ccmlib.node import TimeoutError +from dtest import Tester, debug + + +class TestSchemaAgreementUpgrade(Tester): +""" +Verifies that upgrades do not produce migration storms. + +For upgrades from 3.0 to 3.x we have encountered that the beloved 'cdc' column +caused rolling upgrades to produce migration storms, because the schema digest calculated +by 3.11 differs from that in 3.0, because 3.11 included the 'cdc' column in the digest +calculation. + +This test verifies that (after some grace time, i.e. nodes in status NORMAL) neither the +upgraded node nor the other nodes perform schema pulls (migration tasks) resulting in a +"migration storm". + +A few schema migrations however happen before all nodes are in status NORMAL. This is not ideal, +but legit. In an ideal world, those should not happen - but we would have to do the schema +changes atomically - and currently there is just nothing like a concurrent schema change. + +The tests run for a quite some time, about 5 minutes per test. +But there's some debug output for your entertainment - enjoy. + +The node.start/stop calls pass wait_other_notice=False intentionally, because there seem to +be issues in 3.0 to thoroughly detect and _log_ the status change - i.e. the wait_other_notice +check doesn't seem to be reliable - at least not in this test. +""" + +# The number of seconds we wait for schema migration log entries to verify +migration_check_time = 30 + +def __init__(self, *args, **kwargs): +self.ignore_log_patterns = [ +# This one occurs if we do a non-rolling upgrade, the node +# it's trying to send the migration to hasn't started yet, +# and when it does, it gets replayed and everything is fine. +r'Can\'t send migration request: node.*is down', +] + +Tester.__init__(self, *args, **kwargs) + +def _prepare(self, version, num_nodes=3): +cluster = self.cluster + +# Forcing cluster version on purpose +cluster.set_install_dir(version=version) +cluster.populate(num_nodes).start() + +return cluster + +def _set_verify_log_mark(self, nodes): +for node in nodes: +node.verify_log_mark = node.mark_log(filename='debug.log') + +def _expect_no_schema_migrations(self, nodes): +""" +Inspects the debug.log files from the given nodes whether any log about schema migration is present. +""" + +# Verify that there are _no_ log messages like: +expressions = [" - [pP]ulling schema from endpoint", + " - [Ss]ubmitting migration task", + " - [Pp]ulled schema from endpoint"] +debug("Inspecting log files of {}...".format([n.name for n in nodes])) +all_matchings = "" +for node in nodes: +try: +matchings = node.watch_log_for(expressions, from_mark=node.verify_log_mark, timeout=0, filename='debug.log') +all_matchings = all_matchings + "\n{}: {}".format(node.name, matchings) +except TimeoutError: +# good +debug(" {}: log files don't show schema migration messages (good)".format(node.name)) +if all_matchings != "": +msg = "Expected no schema migration log entries, but got:{}".format(all_matchings) +debug(msg) # debug message for the validation test case (3.0 vs 3.11.1) +
cassandra-dtest git commit: Verify that no migration storm happens during an upgrade from 3.0 to 3.11
Repository: cassandra-dtest Updated Branches: refs/heads/schema-migration-upgrade-bug [created] 777c9ab43 Verify that no migration storm happens during an upgrade from 3.0 to 3.11 patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-14109 Project: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/commit/777c9ab4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/tree/777c9ab4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra-dtest/diff/777c9ab4 Branch: refs/heads/schema-migration-upgrade-bug Commit: 777c9ab431e9fc2c344e7e4ee41a505a659df2d8 Parents: 3d2a6cc Author: Robert Stupp Authored: Fri Dec 8 22:29:08 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 14:10:44 2017 +0100 -- upgrade_tests/upgrade_schema_agreement_test.py | 258 1 file changed, 258 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra-dtest/blob/777c9ab4/upgrade_tests/upgrade_schema_agreement_test.py -- diff --git a/upgrade_tests/upgrade_schema_agreement_test.py b/upgrade_tests/upgrade_schema_agreement_test.py new file mode 100644 index 000..8541411 --- /dev/null +++ b/upgrade_tests/upgrade_schema_agreement_test.py @@ -0,0 +1,258 @@ +import re +import time + +from ccmlib.node import TimeoutError +from dtest import Tester, debug + + +class TestSchemaAgreementUpgrade(Tester): +""" +Verifies that upgrades do not produce migration storms. + +For upgrades from 3.0 to 3.x we have encountered that the beloved 'cdc' column +caused rolling upgrades to produce migration storms, because the schema digest calculated +by 3.11 differs from that in 3.0, because 3.11 included the 'cdc' column in the digest +calculation. + +This test verifies that (after some grace time, i.e. nodes in status NORMAL) neither the +upgraded node nor the other nodes perform schema pulls (migration tasks) resulting in a +"migration storm". + +A few schema migrations however happen before all nodes are in status NORMAL. This is not ideal, +but legit. In an ideal world, those should not happen - but we would have to do the schema +changes atomically - and currently there is just nothing like a concurrent schema change. + +The tests run for a quite some time, about 5 minutes per test. +But there's some debug output for your entertainment - enjoy. + +The node.start/stop calls pass wait_other_notice=False intentionally, because there seem to +be issues in 3.0 to thoroughly detect and _log_ the status change - i.e. the wait_other_notice +check doesn't seem to be reliable - at least not in this test. +""" + +# The number of seconds we wait for schema migration log entries to verify +migration_check_time = 30 + +def __init__(self, *args, **kwargs): +self.ignore_log_patterns = [ +# This one occurs if we do a non-rolling upgrade, the node +# it's trying to send the migration to hasn't started yet, +# and when it does, it gets replayed and everything is fine. +r'Can\'t send migration request: node.*is down', +] + +Tester.__init__(self, *args, **kwargs) + +def _prepare(self, version, num_nodes=3): +cluster = self.cluster + +# Forcing cluster version on purpose +cluster.set_install_dir(version=version) +cluster.populate(num_nodes).start() + +return cluster + +def _set_verify_log_mark(self, nodes): +for node in nodes: +node.verify_log_mark = node.mark_log(filename='debug.log') + +def _expect_no_schema_migrations(self, nodes): +""" +Inspects the debug.log files from the given nodes whether any log about schema migration is present. +""" + +# Verify that there are _no_ log messages like: +expressions = [" - [pP]ulling schema from endpoint", + " - [Ss]ubmitting migration task", + " - [Pp]ulled schema from endpoint"] +debug("Inspecting log files of {}...".format([n.name for n in nodes])) +all_matchings = "" +for node in nodes: +try: +matchings = node.watch_log_for(expressions, from_mark=node.verify_log_mark, timeout=0, filename='debug.log') +all_matchings = all_matchings + "\n{}: {}".format(node.name, matchings) +except TimeoutError: +# good +debug(" {}: log files don't show schema migration messages (good)".format(node.name)) +if all_matchings != "": +msg = "Expected no schema migration log entries, but got:{}".format(all_matchings) +debug(msg) # debug message for the v
[3/4] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3e4e7d95 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3e4e7d95 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3e4e7d95 Branch: refs/heads/trunk Commit: 3e4e7d9546d69a0e1c807b3e2d585d3a659500bc Parents: 0d8199b e646e50 Author: Robert Stupp Authored: Wed Dec 13 14:00:11 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 14:00:11 2017 +0100 -- -- - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[1/4] cassandra git commit: Prevent continuous schema exchange between 3.0 to 3.11 nodes
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 f6381db8e -> e646e5032 refs/heads/trunk 0d8199bab -> 7a40abb6a Prevent continuous schema exchange between 3.0 to 3.11 nodes patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-14109 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e646e503 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e646e503 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e646e503 Branch: refs/heads/cassandra-3.11 Commit: e646e5032b68622f7ec1dd0c53137be08baabed9 Parents: f6381db Author: Robert Stupp Authored: Wed Dec 13 13:58:53 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 13:58:53 2017 +0100 -- CHANGES.txt | 1 + NEWS.txt| 9 +++ .../org/apache/cassandra/config/Schema.java | 79 ++-- src/java/org/apache/cassandra/db/Columns.java | 7 ++ .../cassandra/db/SchemaCheckVerbHandler.java| 9 ++- .../apache/cassandra/db/rows/AbstractRow.java | 10 ++- .../db/rows/RangeTombstoneBoundMarker.java | 7 ++ .../db/rows/RangeTombstoneBoundaryMarker.java | 7 ++ .../apache/cassandra/db/rows/RowIterators.java | 21 +- .../apache/cassandra/db/rows/Unfiltered.java| 12 +++ .../org/apache/cassandra/gms/EndpointState.java | 23 ++ src/java/org/apache/cassandra/gms/Gossiper.java | 65 +--- .../cassandra/hints/HintsDispatchTrigger.java | 3 +- .../apache/cassandra/schema/SchemaKeyspace.java | 15 +++- .../cassandra/service/MigrationManager.java | 58 +- .../cassandra/service/StorageService.java | 25 +++ .../cassandra/utils/CassandraVersion.java | 5 ++ 17 files changed, 300 insertions(+), 56 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index eaf312f..60794f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.2 + * Prevent continuous schema exchange between 3.0 and 3.11 nodes (CASSANDRA-14109) * Fix imbalanced disks when replacing node with same address with JBOD (CASSANDRA-14084) * Reload compaction strategies when disk boundaries are invalidated (CASSANDRA-13948) * Remove OpenJDK log warning (CASSANDRA-13916) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 0c32278..f4b15e7 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -25,6 +25,15 @@ Upgrading - Cassandra is not logging anymore by default an Heap histogram on OutOfMemoryError. To enable that behavior set the 'cassandra.printHeapHistogramOnOutOfMemoryError' System property to 'true'. See CASSANDRA-13006 for more details. +- Upgrades from 3.0 might have produced unnecessary schema migrations while + there was at least one 3.0 node in the cluster. It is therefore highly + recommended to upgrade from 3.0 to at least 3.11.2. The root cause of + this schema mismatch was a difference in the way how schema digests were computed + in 3.0 and 3.11.2. To mitigate this issue, 3.11.2 and newer announce + 3.0 compatible digests as long as there is at least one 3.0 node in the + cluster. Once all nodes have been upgraded, the "real" schema version will be + announced. Note: this fix is only necessary in 3.11.2 and therefore only applies + to 3.11. (CASSANDRA-14109) Materialized Views --- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/src/java/org/apache/cassandra/config/Schema.java -- diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index 8fc83df..253a66b 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -22,6 +22,7 @@ import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; +import org.cliffc.high_scale_lib.NonBlockingHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +34,7 @@ import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.UserType; +import org.apache.cassandra.gms.Gossiper; import org.apache.cassandra.index.Index; import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.locator.LocalStrategy; @@ -40,7 +42,6 @@ import o
[2/4] cassandra git commit: Prevent continuous schema exchange between 3.0 to 3.11 nodes
Prevent continuous schema exchange between 3.0 to 3.11 nodes patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-14109 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e646e503 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e646e503 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e646e503 Branch: refs/heads/trunk Commit: e646e5032b68622f7ec1dd0c53137be08baabed9 Parents: f6381db Author: Robert Stupp Authored: Wed Dec 13 13:58:53 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 13:58:53 2017 +0100 -- CHANGES.txt | 1 + NEWS.txt| 9 +++ .../org/apache/cassandra/config/Schema.java | 79 ++-- src/java/org/apache/cassandra/db/Columns.java | 7 ++ .../cassandra/db/SchemaCheckVerbHandler.java| 9 ++- .../apache/cassandra/db/rows/AbstractRow.java | 10 ++- .../db/rows/RangeTombstoneBoundMarker.java | 7 ++ .../db/rows/RangeTombstoneBoundaryMarker.java | 7 ++ .../apache/cassandra/db/rows/RowIterators.java | 21 +- .../apache/cassandra/db/rows/Unfiltered.java| 12 +++ .../org/apache/cassandra/gms/EndpointState.java | 23 ++ src/java/org/apache/cassandra/gms/Gossiper.java | 65 +--- .../cassandra/hints/HintsDispatchTrigger.java | 3 +- .../apache/cassandra/schema/SchemaKeyspace.java | 15 +++- .../cassandra/service/MigrationManager.java | 58 +- .../cassandra/service/StorageService.java | 25 +++ .../cassandra/utils/CassandraVersion.java | 5 ++ 17 files changed, 300 insertions(+), 56 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index eaf312f..60794f0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.2 + * Prevent continuous schema exchange between 3.0 and 3.11 nodes (CASSANDRA-14109) * Fix imbalanced disks when replacing node with same address with JBOD (CASSANDRA-14084) * Reload compaction strategies when disk boundaries are invalidated (CASSANDRA-13948) * Remove OpenJDK log warning (CASSANDRA-13916) http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 0c32278..f4b15e7 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -25,6 +25,15 @@ Upgrading - Cassandra is not logging anymore by default an Heap histogram on OutOfMemoryError. To enable that behavior set the 'cassandra.printHeapHistogramOnOutOfMemoryError' System property to 'true'. See CASSANDRA-13006 for more details. +- Upgrades from 3.0 might have produced unnecessary schema migrations while + there was at least one 3.0 node in the cluster. It is therefore highly + recommended to upgrade from 3.0 to at least 3.11.2. The root cause of + this schema mismatch was a difference in the way how schema digests were computed + in 3.0 and 3.11.2. To mitigate this issue, 3.11.2 and newer announce + 3.0 compatible digests as long as there is at least one 3.0 node in the + cluster. Once all nodes have been upgraded, the "real" schema version will be + announced. Note: this fix is only necessary in 3.11.2 and therefore only applies + to 3.11. (CASSANDRA-14109) Materialized Views --- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e646e503/src/java/org/apache/cassandra/config/Schema.java -- diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java index 8fc83df..253a66b 100644 --- a/src/java/org/apache/cassandra/config/Schema.java +++ b/src/java/org/apache/cassandra/config/Schema.java @@ -22,6 +22,7 @@ import java.util.stream.Collectors; import com.google.common.collect.ImmutableList; import com.google.common.collect.Sets; +import org.cliffc.high_scale_lib.NonBlockingHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,6 +34,7 @@ import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.compaction.CompactionManager; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.db.marshal.UserType; +import org.apache.cassandra.gms.Gossiper; import org.apache.cassandra.index.Index; import org.apache.cassandra.io.sstable.Descriptor; import org.apache.cassandra.locator.LocalStrategy; @@ -40,7 +42,6 @@ import org.apache.cassandra.schema.*; import org.apache.cassandra.service.MigrationManager; import org.apache.cassandra.utils.ConcurrentBiMap; import
[4/4] cassandra git commit: Bring code improvements of CASSANDRA-14109 into trunk (but not the change itself)
Bring code improvements of CASSANDRA-14109 into trunk (but not the change itself) patch by Robert Stupp; reviewed by Andrés de la Peña for CASSANDRA-14109 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7a40abb6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7a40abb6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7a40abb6 Branch: refs/heads/trunk Commit: 7a40abb6a5108688fb1b10c375bb751cbb782ea4 Parents: 3e4e7d9 Author: Robert Stupp Authored: Wed Dec 13 14:00:38 2017 +0100 Committer: Robert Stupp Committed: Wed Dec 13 14:00:38 2017 +0100 -- .../org/apache/cassandra/gms/EndpointState.java | 27 +-- src/java/org/apache/cassandra/gms/Gossiper.java | 31 - .../cassandra/hints/HintsDispatchTrigger.java | 3 +- .../cassandra/schema/MigrationManager.java | 48 ++-- .../org/apache/cassandra/schema/Schema.java | 30 .../cassandra/service/StorageService.java | 4 +- 6 files changed, 100 insertions(+), 43 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7a40abb6/src/java/org/apache/cassandra/gms/EndpointState.java -- diff --git a/src/java/org/apache/cassandra/gms/EndpointState.java b/src/java/org/apache/cassandra/gms/EndpointState.java index 70f2a68..847041f 100644 --- a/src/java/org/apache/cassandra/gms/EndpointState.java +++ b/src/java/org/apache/cassandra/gms/EndpointState.java @@ -18,18 +18,19 @@ package org.apache.cassandra.gms; import java.io.*; -import java.util.Collections; -import java.util.EnumMap; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; +import javax.annotation.Nullable; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.cassandra.db.TypeSizes; import org.apache.cassandra.io.IVersionedSerializer; import org.apache.cassandra.io.util.DataInputPlus; import org.apache.cassandra.io.util.DataOutputPlus; +import org.apache.cassandra.utils.CassandraVersion; + /** * This abstraction represents both the HeartBeatState and the ApplicationState in an EndpointState * instance. Any state for a given endpoint can be retrieved from this instance. @@ -154,6 +155,24 @@ public class EndpointState return pieces[0]; } +@Nullable +public UUID getSchemaVersion() +{ +VersionedValue applicationState = getApplicationState(ApplicationState.SCHEMA); +return applicationState != null + ? UUID.fromString(applicationState.value) + : null; +} + +@Nullable +public CassandraVersion getReleaseVersion() +{ +VersionedValue applicationState = getApplicationState(ApplicationState.RELEASE_VERSION); +return applicationState != null + ? new CassandraVersion(applicationState.value) + : null; +} + public String toString() { return "EndpointState: HeartBeatState = " + hbState + ", AppStateMap = " + applicationState.get(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/7a40abb6/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index 15dad71..e675d92 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -25,6 +25,7 @@ import java.util.Map.Entry; import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; +import javax.annotation.Nullable; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -852,20 +853,6 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean return endpointStateMap.get(ep); } -public boolean valuesEqual(InetAddress ep1, InetAddress ep2, ApplicationState as) -{ -EndpointState state1 = getEndpointStateForEndpoint(ep1); -EndpointState state2 = getEndpointStateForEndpoint(ep2); - -if (state1 == null || state2 == null) -return false; - -VersionedValue value1 = state1.getApplicationState(as); -VersionedValue value2 = state2.getApplicationState(as); - -return !(value1 == null || value2 == null) && value1.value.equals(value2.value); -} - public Set> getEndpointStates() { return endpointStateMap.entrySet(); @@ -1624,16 +1611,18 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean return System.currentTimeMillis() + Gossiper.aVeryLongTime; } +@Nullable public CassandraVersion ge
[3/3] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e5f3bb6e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e5f3bb6e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e5f3bb6e Branch: refs/heads/trunk Commit: e5f3bb6e583a4f71a2522a040a93468404dfb653 Parents: fb0e001 bed7fa5 Author: Robert Stupp Authored: Fri Sep 1 19:16:29 2017 +0200 Committer: Robert Stupp Committed: Fri Sep 1 19:16:29 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/utils/btree/BTree.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5f3bb6e/CHANGES.txt -- diff --cc CHANGES.txt index 78c2947,c4a3170..023ff06 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,134 -1,6 +1,135 @@@ +4.0 + * Add stress profile yaml with LWT (CASSANDRA-7960) + * Reduce memory copies and object creations when acting on ByteBufs (CASSANDRA-13789) + * simplify mx4j configuration (Cassandra-13578) + * Fix trigger example on 4.0 (CASSANDRA-13796) + * force minumum timeout value (CASSANDRA-9375) + * use netty for streaming (CASSANDRA-12229) + * Use netty for internode messaging (CASSANDRA-8457) + * Add bytes repaired/unrepaired to nodetool tablestats (CASSANDRA-13774) + * Don't delete incremental repair sessions if they still have sstables (CASSANDRA-13758) + * Fix pending repair manager index out of bounds check (CASSANDRA-13769) + * Don't use RangeFetchMapCalculator when RF=1 (CASSANDRA-13576) + * Don't optimise trivial ranges in RangeFetchMapCalculator (CASSANDRA-13664) + * Use an ExecutorService for repair commands instead of new Thread(..).start() (CASSANDRA-13594) + * Fix race / ref leak in anticompaction (CASSANDRA-13688) + * Expose tasks queue length via JMX (CASSANDRA-12758) + * Fix race / ref leak in PendingRepairManager (CASSANDRA-13751) + * Enable ppc64le runtime as unsupported architecture (CASSANDRA-13615) + * Improve sstablemetadata output (CASSANDRA-11483) + * Support for migrating legacy users to roles has been dropped (CASSANDRA-13371) + * Introduce error metrics for repair (CASSANDRA-13387) + * Refactoring to primitive functional interfaces in AuthCache (CASSANDRA-13732) + * Update metrics to 3.1.5 (CASSANDRA-13648) + * batch_size_warn_threshold_in_kb can now be set at runtime (CASSANDRA-13699) + * Avoid always rebuilding secondary indexes at startup (CASSANDRA-13725) + * Upgrade JMH from 1.13 to 1.19 (CASSANDRA-13727) + * Upgrade SLF4J from 1.7.7 to 1.7.25 (CASSANDRA-12996) + * Default for start_native_transport now true if not set in config (CASSANDRA-13656) + * Don't add localhost to the graph when calculating where to stream from (CASSANDRA-13583) + * Make CDC availability more deterministic via hard-linking (CASSANDRA-12148) + * Allow skipping equality-restricted clustering columns in ORDER BY clause (CASSANDRA-10271) + * Use common nowInSec for validation compactions (CASSANDRA-13671) + * Improve handling of IR prepare failures (CASSANDRA-13672) + * Send IR coordinator messages synchronously (CASSANDRA-13673) + * Flush system.repair table before IR finalize promise (CASSANDRA-13660) + * Fix column filter creation for wildcard queries (CASSANDRA-13650) + * Add 'nodetool getbatchlogreplaythrottle' and 'nodetool setbatchlogreplaythrottle' (CASSANDRA-13614) + * fix race condition in PendingRepairManager (CASSANDRA-13659) + * Allow noop incremental repair state transitions (CASSANDRA-13658) + * Run repair with down replicas (CASSANDRA-10446) + * Added started & completed repair metrics (CASSANDRA-13598) + * Added started & completed repair metrics (CASSANDRA-13598) + * Improve secondary index (re)build failure and concurrency handling (CASSANDRA-10130) + * Improve calculation of available disk space for compaction (CASSANDRA-13068) + * Change the accessibility of RowCacheSerializer for third party row cache plugins (CASSANDRA-13579) + * Allow sub-range repairs for a preview of repaired data (CASSANDRA-13570) + * NPE in IR cleanup when columnfamily has no sstables (CASSANDRA-13585) + * Fix Randomness of stress values (CASSANDRA-12744) + * Allow selecting Map values and Set elements (CASSANDRA-7396) + * Fast and garbage-free Streaming Histogram (CASSANDRA-13444) + * Update repairTime for keyspaces on completion (CASSANDRA-13539) + * Add configurable upper bound for validation executor threads (CASSANDRA-13521) + * Bring back maxHintTTL propery (CASSANDRA-12982) + * Add testing guidelines (CASSANDRA-13497) + * Add more repair metrics (CASSANDRA-13531) + * RangeStreamer should be smarter when picking endpoints for streaming
[1/3] cassandra git commit: BTree.Builder memory leak
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 cd3aca036 -> bed7fa5ef refs/heads/trunk fb0e0019e -> e5f3bb6e5 BTree.Builder memory leak patch by Robert Stupp; reviewed by Jeremiah Jordan for CASSANDRA-13754 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bed7fa5e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bed7fa5e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bed7fa5e Branch: refs/heads/cassandra-3.11 Commit: bed7fa5ef8492d1ff3852cf299622a5ad4e0b621 Parents: cd3aca0 Author: Robert Stupp Authored: Fri Sep 1 19:11:32 2017 +0200 Committer: Robert Stupp Committed: Fri Sep 1 19:12:01 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/utils/btree/BTree.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bed7fa5e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e5ccf45..c4a3170 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.1 + * BTree.Builder memory leak (CASSANDRA-13754) * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798) * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938) * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744) http://git-wip-us.apache.org/repos/asf/cassandra/blob/bed7fa5e/src/java/org/apache/cassandra/utils/btree/BTree.java -- diff --git a/src/java/org/apache/cassandra/utils/btree/BTree.java b/src/java/org/apache/cassandra/utils/btree/BTree.java index 1a5d9ae..a4519b9 100644 --- a/src/java/org/apache/cassandra/utils/btree/BTree.java +++ b/src/java/org/apache/cassandra/utils/btree/BTree.java @@ -866,7 +866,7 @@ public class BTree private void cleanup() { quickResolver = null; -Arrays.fill(values, 0, count, null); +Arrays.fill(values, null); count = 0; detected = true; auto = true; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[2/3] cassandra git commit: BTree.Builder memory leak
BTree.Builder memory leak patch by Robert Stupp; reviewed by Jeremiah Jordan for CASSANDRA-13754 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bed7fa5e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bed7fa5e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bed7fa5e Branch: refs/heads/trunk Commit: bed7fa5ef8492d1ff3852cf299622a5ad4e0b621 Parents: cd3aca0 Author: Robert Stupp Authored: Fri Sep 1 19:11:32 2017 +0200 Committer: Robert Stupp Committed: Fri Sep 1 19:12:01 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/utils/btree/BTree.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/bed7fa5e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e5ccf45..c4a3170 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.1 + * BTree.Builder memory leak (CASSANDRA-13754) * Revert CASSANDRA-10368 of supporting non-pk column filtering due to correctness (CASSANDRA-13798) * Fix cassandra-stress hang issues when an error during cluster connection happens (CASSANDRA-12938) * Better bootstrap failure message when blocked by (potential) range movement (CASSANDRA-13744) http://git-wip-us.apache.org/repos/asf/cassandra/blob/bed7fa5e/src/java/org/apache/cassandra/utils/btree/BTree.java -- diff --git a/src/java/org/apache/cassandra/utils/btree/BTree.java b/src/java/org/apache/cassandra/utils/btree/BTree.java index 1a5d9ae..a4519b9 100644 --- a/src/java/org/apache/cassandra/utils/btree/BTree.java +++ b/src/java/org/apache/cassandra/utils/btree/BTree.java @@ -866,7 +866,7 @@ public class BTree private void cleanup() { quickResolver = null; -Arrays.fill(values, 0, count, null); +Arrays.fill(values, null); count = 0; detected = true; auto = true; - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[2/3] cassandra git commit: Properly evict pstmts from prepared statements cache
Properly evict pstmts from prepared statements cache patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13641 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9562b9b6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9562b9b6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9562b9b6 Branch: refs/heads/trunk Commit: 9562b9b69e08b84ec1e8e431a846548fa8a83b44 Parents: bb7e522 Author: Robert Stupp Authored: Wed Jun 28 21:15:03 2017 +0200 Committer: Robert Stupp Committed: Wed Jun 28 21:15:03 2017 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 9 +- .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++ test/conf/cassandra.yaml| 1 + .../cassandra/cql3/PstmtPersistenceTest.java| 108 ++- 5 files changed, 100 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4297a15..88aa1ef 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.1 + * Properly evict pstmts from prepared statements cache (CASSANDRA-13641) Merged from 3.0: * Fix secondary index queries on COMPACT tables (CASSANDRA-13627) * Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index f5ce7e4..0e0ba3c 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -88,6 +88,7 @@ public class QueryProcessor implements QueryHandler .listener((md5Digest, prepared) -> { metrics.preparedStatementsEvicted.inc(); lastMinuteEvictionsCount.incrementAndGet(); + SystemKeyspace.removePreparedStatement(md5Digest); }).build(); thriftPreparedStatements = new ConcurrentLinkedHashMap.Builder() @@ -162,11 +163,17 @@ public class QueryProcessor implements QueryHandler logger.info("Preloaded {} prepared statements", count); } +/** + * Clears the prepared statement cache. + * @param memoryOnly {@code true} if only the in memory caches must be cleared, {@code false} otherwise. + */ @VisibleForTesting -public static void clearPrepraredStatements() +public static void clearPreparedStatements(boolean memoryOnly) { preparedStatements.clear(); thriftPreparedStatements.clear(); +if (!memoryOnly) +SystemKeyspace.resetPreparedStatements(); } private static QueryState internalQueryState() http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/src/java/org/apache/cassandra/db/SystemKeyspace.java -- diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java index 82c9752..6c45329 100644 --- a/src/java/org/apache/cassandra/db/SystemKeyspace.java +++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java @@ -1488,6 +1488,12 @@ public final class SystemKeyspace key.byteBuffer()); } +public static void resetPreparedStatements() +{ +ColumnFamilyStore availableRanges = Keyspace.open(SchemaConstants.SYSTEM_KEYSPACE_NAME).getColumnFamilyStore(PREPARED_STATEMENTS); +availableRanges.truncateBlocking(); +} + public static List> loadPreparedStatements() { String query = String.format("SELECT logged_keyspace, query_string FROM %s.%s", SchemaConstants.SYSTEM_KEYSPACE_NAME, PREPARED_STATEMENTS); http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/test/conf/cassandra.yaml -- diff --git a/test/conf/cassandra.yaml b/test/conf/cassandra.yaml index cf02634..96ca9a0 100644 --- a/test/conf/cassandra.yaml +++ b/test/conf/cassandra.yaml @@ -44,3 +44,4 @@ row_cache_class_name: org.apache.cassandra.cache.OHCProvider row_cache_size_in_mb: 16 enable_user_defined_functions: true enable_scripted_user_defined_functions: true +prepared_statements_cache_size_mb: 1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/test/unit/org/apache/cassandra/cql3/PstmtPersi
[1/3] cassandra git commit: Properly evict pstmts from prepared statements cache
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 bb7e522b4 -> 9562b9b69 refs/heads/trunk 26e025804 -> 9c6f87c35 Properly evict pstmts from prepared statements cache patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13641 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9562b9b6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9562b9b6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9562b9b6 Branch: refs/heads/cassandra-3.11 Commit: 9562b9b69e08b84ec1e8e431a846548fa8a83b44 Parents: bb7e522 Author: Robert Stupp Authored: Wed Jun 28 21:15:03 2017 +0200 Committer: Robert Stupp Committed: Wed Jun 28 21:15:03 2017 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 9 +- .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++ test/conf/cassandra.yaml| 1 + .../cassandra/cql3/PstmtPersistenceTest.java| 108 ++- 5 files changed, 100 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4297a15..88aa1ef 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.1 + * Properly evict pstmts from prepared statements cache (CASSANDRA-13641) Merged from 3.0: * Fix secondary index queries on COMPACT tables (CASSANDRA-13627) * Nodetool listsnapshots output is missing a newline, if there are no snapshots (CASSANDRA-13568) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java index f5ce7e4..0e0ba3c 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -88,6 +88,7 @@ public class QueryProcessor implements QueryHandler .listener((md5Digest, prepared) -> { metrics.preparedStatementsEvicted.inc(); lastMinuteEvictionsCount.incrementAndGet(); + SystemKeyspace.removePreparedStatement(md5Digest); }).build(); thriftPreparedStatements = new ConcurrentLinkedHashMap.Builder() @@ -162,11 +163,17 @@ public class QueryProcessor implements QueryHandler logger.info("Preloaded {} prepared statements", count); } +/** + * Clears the prepared statement cache. + * @param memoryOnly {@code true} if only the in memory caches must be cleared, {@code false} otherwise. + */ @VisibleForTesting -public static void clearPrepraredStatements() +public static void clearPreparedStatements(boolean memoryOnly) { preparedStatements.clear(); thriftPreparedStatements.clear(); +if (!memoryOnly) +SystemKeyspace.resetPreparedStatements(); } private static QueryState internalQueryState() http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/src/java/org/apache/cassandra/db/SystemKeyspace.java -- diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java b/src/java/org/apache/cassandra/db/SystemKeyspace.java index 82c9752..6c45329 100644 --- a/src/java/org/apache/cassandra/db/SystemKeyspace.java +++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java @@ -1488,6 +1488,12 @@ public final class SystemKeyspace key.byteBuffer()); } +public static void resetPreparedStatements() +{ +ColumnFamilyStore availableRanges = Keyspace.open(SchemaConstants.SYSTEM_KEYSPACE_NAME).getColumnFamilyStore(PREPARED_STATEMENTS); +availableRanges.truncateBlocking(); +} + public static List> loadPreparedStatements() { String query = String.format("SELECT logged_keyspace, query_string FROM %s.%s", SchemaConstants.SYSTEM_KEYSPACE_NAME, PREPARED_STATEMENTS); http://git-wip-us.apache.org/repos/asf/cassandra/blob/9562b9b6/test/conf/cassandra.yaml -- diff --git a/test/conf/cassandra.yaml b/test/conf/cassandra.yaml index cf02634..96ca9a0 100644 --- a/test/conf/cassandra.yaml +++ b/test/conf/cassandra.yaml @@ -44,3 +44,4 @@ row_cache_class_name: org.apache.cassandra.cache.OHCProvider row_cache_size_in_mb: 16 enable_user_defined_functions: true enable_scripted_user_defined_functions: true +pre
[3/3] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9c6f87c3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9c6f87c3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9c6f87c3 Branch: refs/heads/trunk Commit: 9c6f87c35f364ec6a88775cb3d0cf143e36635e7 Parents: 26e0258 9562b9b Author: Robert Stupp Authored: Wed Jun 28 21:17:06 2017 +0200 Committer: Robert Stupp Committed: Wed Jun 28 21:17:06 2017 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 20 +++- .../org/apache/cassandra/db/SystemKeyspace.java | 6 + test/conf/cassandra.yaml| 1 + .../cassandra/cql3/PstmtPersistenceTest.java| 110 ++- 5 files changed, 107 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c6f87c3/CHANGES.txt -- diff --cc CHANGES.txt index 04640ab,88aa1ef..6ffd11a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,90 -1,8 +1,91 @@@ +4.0 + * Improve secondary index (re)build failure and concurrency handling (CASSANDRA-10130) + * Improve calculation of available disk space for compaction (CASSANDRA-13068) + * Change the accessibility of RowCacheSerializer for third party row cache plugins (CASSANDRA-13579) + * Allow sub-range repairs for a preview of repaired data (CASSANDRA-13570) + * NPE in IR cleanup when columnfamily has no sstables (CASSANDRA-13585) + * Fix Randomness of stress values (CASSANDRA-12744) + * Allow selecting Map values and Set elements (CASSANDRA-7396) + * Fast and garbage-free Streaming Histogram (CASSANDRA-13444) + * Update repairTime for keyspaces on completion (CASSANDRA-13539) + * Add configurable upper bound for validation executor threads (CASSANDRA-13521) + * Bring back maxHintTTL propery (CASSANDRA-12982) + * Add testing guidelines (CASSANDRA-13497) + * Add more repair metrics (CASSANDRA-13531) + * RangeStreamer should be smarter when picking endpoints for streaming (CASSANDRA-4650) + * Avoid rewrapping an exception thrown for cache load functions (CASSANDRA-13367) + * Log time elapsed for each incremental repair phase (CASSANDRA-13498) + * Add multiple table operation support to cassandra-stress (CASSANDRA-8780) + * Fix incorrect cqlsh results when selecting same columns multiple times (CASSANDRA-13262) + * Fix WriteResponseHandlerTest is sensitive to test execution order (CASSANDRA-13421) + * Improve incremental repair logging (CASSANDRA-13468) + * Start compaction when incremental repair finishes (CASSANDRA-13454) + * Add repair streaming preview (CASSANDRA-13257) + * Cleanup isIncremental/repairedAt usage (CASSANDRA-13430) + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145) + * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661) + * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354) + * Skip building views during base table streams on range movements (CASSANDRA-13065) + * Improve error messages for +/- operations on maps and tuples (CASSANDRA-13197) + * Remove deprecated repair JMX APIs (CASSANDRA-11530) + * Fix version check to enable streaming keep-alive (CASSANDRA-12929) + * Make it possible to monitor an ideal consistency level separate from actual consistency level (CASSANDRA-13289) + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324) + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) + * Upgrade snappy-java to 1.1.2.6 (CASSANDRA-13336) + * Incremental repair not streaming correct sstables (CASSANDRA-13328) + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132) + * Remove config option index_interval (CASSANDRA-10671) + * Reduce lock contention for collection types and serializers (CASSANDRA-13271) + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283) + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292) + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520) + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226) + * Remove unused method (CASSANDRA-13227) + * Fix minor bugs related to #9143 (CASSANDRA-13217) + * Output warning if user increases RF (CASSANDRA-13079) + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081) + * Add support for + and - operations on dates (CASSANDRA-11936) + * Fix consistency of incrementally repaired data
[2/6] cassandra git commit: UDA fails without input rows
UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/cassandra-3.11 Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert Stupp Authored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map, type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[3/6] cassandra git commit: UDA fails without input rows
UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/trunk Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert Stupp Authored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map, type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[1/6] cassandra git commit: UDA fails without input rows
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 6c840c0cd -> b77e754a0 refs/heads/cassandra-3.11 ca034eacf -> 388c961e4 refs/heads/trunk d4933a019 -> 675829564 UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/cassandra-3.0 Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert Stupp Authored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map, type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/388c961e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/388c961e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/388c961e Branch: refs/heads/cassandra-3.11 Commit: 388c961e4bb8f0a414c6aa700c67cd76eaf01046 Parents: ca034ea b77e754 Author: Robert Stupp Authored: Tue May 2 16:12:45 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:45 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/CHANGES.txt -- diff --cc CHANGES.txt index 1690e31,19cd39c..3844bfa --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,33 -1,4 +1,34 @@@ -3.0.14 +3.11.0 ++ * UDA fails without input rows (CASSANDRA-13399) + * Fix compaction-stress by using daemonInitialization (CASSANDRA-13188) + * V5 protocol flags decoding broken (CASSANDRA-13443) + * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) + * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) + * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) + * Add charset to Analyser input stream (CASSANDRA-13151) + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) + * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417) + * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307) + * Tracing payload not passed from QueryMessage to tracing session (CASSANDRA-12835) +Merged from 3.0: * Fail repair if insufficient responses received (CASSANDRA-13397) * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276) * Avoid name clashes in CassandraIndexTest (CASSANDRA-13427) http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java -- diff --cc src/java/org/apache/cassandra/cql3/functions/UDAggregate.java index 87c955f,96e19de..1a3174c --- a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java @@@ -156,21 -150,18 +156,15 @@@ public class UDAggregate extends Abstra private long stateFunctionCount; private long stateFunctionDuration; -private ByteBuffer state; -{ -reset(); -} +private Object state; +private boolean needsInit = true; -public void addInput(int protocolVersion, List values) throws InvalidRequestException +public void addInput(ProtocolVersion protocolVersion, List values) throws InvalidRequestException { - if (needsInit) - { - state = initcond != null ? UDHelper.deserialize(stateTypeCodec, protocolVersion, initcond.duplicate()) : null; - stateFunctionDuration = 0; - stateFunctionCount = 0; - needsInit = false; - } ++ma
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67582956 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67582956 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67582956 Branch: refs/heads/trunk Commit: 6758295648d21cabf2e4f1f4f9f244bf8bd4a8c2 Parents: d4933a0 388c961 Author: Robert Stupp Authored: Tue May 2 16:13:09 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:13:09 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/67582956/CHANGES.txt -- diff --cc CHANGES.txt index 79ecb99,3844bfa..77edb25 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,66 -1,5 +1,67 @@@ +4.0 + * Fix WriteResponseHandlerTest is sensitive to test execution order (CASSANDRA-13421) + * Improve incremental repair logging (CASSANDRA-13468) + * Start compaction when incremental repair finishes (CASSANDRA-13454) + * Add repair streaming preview (CASSANDRA-13257) + * Cleanup isIncremental/repairedAt usage (CASSANDRA-13430) + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145) + * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661) + * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354) + * Skip building views during base table streams on range movements (CASSANDRA-13065) + * Improve error messages for +/- operations on maps and tuples (CASSANDRA-13197) + * Remove deprecated repair JMX APIs (CASSANDRA-11530) + * Fix version check to enable streaming keep-alive (CASSANDRA-12929) + * Make it possible to monitor an ideal consistency level separate from actual consistency level (CASSANDRA-13289) + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324) + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) + * Incremental repair not streaming correct sstables (CASSANDRA-13328) + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132) + * Remove config option index_interval (CASSANDRA-10671) + * Reduce lock contention for collection types and serializers (CASSANDRA-13271) + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283) + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292) + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520) + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226) + * Remove unused method (CASSANDRA-13227) + * Fix minor bugs related to #9143 (CASSANDRA-13217) + * Output warning if user increases RF (CASSANDRA-13079) + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081) + * Add support for + and - operations on dates (CASSANDRA-11936) + * Fix consistency of incrementally repaired data (CASSANDRA-9143) + * Increase commitlog version (CASSANDRA-13161) + * Make TableMetadata immutable, optimize Schema (CASSANDRA-9425) + * Refactor ColumnCondition (CASSANDRA-12981) + * Parallelize streaming of different keyspaces (CASSANDRA-4663) + * Improved compactions metrics (CASSANDRA-13015) + * Speed-up start-up sequence by avoiding un-needed flushes (CASSANDRA-13031) + * Use Caffeine (W-TinyLFU) for on-heap caches (CASSANDRA-10855) + * Thrift removal (CASSANDRA-5) + * Remove pre-3.0 compatibility code for 4.0 (CASSANDRA-12716) + * Add column definition kind to dropped columns in schema (CASSANDRA-12705) + * Add (automate) Nodetool Documentation (CASSANDRA-12672) + * Update bundled cqlsh python driver to 3.7.0 (CASSANDRA-12736) + * Reject invalid replication settings when creating or altering a keyspace (CASSANDRA-12681) + * Clean up the SSTableReader#getScanner API wrt removal of RateLimiter (CASSANDRA-12422) + * Use new token allocation for non bootstrap case as well (CASSANDRA-13080) + * Avoid byte-array copy when key cache is disabled (CASSANDRA-13084) + * Require forceful decommission if number of nodes is less than replication factor (CASSANDRA-12510) + * Allow IN restrictions on column families with collections (CASSANDRA-12654) + * Log message size in trace message in OutboundTcpConnection (CASSANDRA-13028) + * Add timeUnit Days for cassandra-stress (CASSANDRA-13029) + * Add mutation size and batch metrics (CASSANDRA-12649) + * Add method to get
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/388c961e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/388c961e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/388c961e Branch: refs/heads/trunk Commit: 388c961e4bb8f0a414c6aa700c67cd76eaf01046 Parents: ca034ea b77e754 Author: Robert Stupp Authored: Tue May 2 16:12:45 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:45 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/CHANGES.txt -- diff --cc CHANGES.txt index 1690e31,19cd39c..3844bfa --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,33 -1,4 +1,34 @@@ -3.0.14 +3.11.0 ++ * UDA fails without input rows (CASSANDRA-13399) + * Fix compaction-stress by using daemonInitialization (CASSANDRA-13188) + * V5 protocol flags decoding broken (CASSANDRA-13443) + * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) + * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) + * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) + * Add charset to Analyser input stream (CASSANDRA-13151) + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) + * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417) + * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307) + * Tracing payload not passed from QueryMessage to tracing session (CASSANDRA-12835) +Merged from 3.0: * Fail repair if insufficient responses received (CASSANDRA-13397) * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276) * Avoid name clashes in CassandraIndexTest (CASSANDRA-13427) http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java -- diff --cc src/java/org/apache/cassandra/cql3/functions/UDAggregate.java index 87c955f,96e19de..1a3174c --- a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java @@@ -156,21 -150,18 +156,15 @@@ public class UDAggregate extends Abstra private long stateFunctionCount; private long stateFunctionDuration; -private ByteBuffer state; -{ -reset(); -} +private Object state; +private boolean needsInit = true; -public void addInput(int protocolVersion, List values) throws InvalidRequestException +public void addInput(ProtocolVersion protocolVersion, List values) throws InvalidRequestException { - if (needsInit) - { - state = initcond != null ? UDHelper.deserialize(stateTypeCodec, protocolVersion, initcond.duplicate()) : null; - stateFunctionDuration = 0; - stateFunctionCount = 0; - needsInit = false; - } ++maybeInit(p
[3/3] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7da45312 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7da45312 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7da45312 Branch: refs/heads/trunk Commit: 7da45312aa7a26070d32ca3d153d86f1ea202a19 Parents: 1f53326 0a438d5 Author: Robert Stupp Authored: Thu Apr 13 11:06:37 2017 +0200 Committer: Robert Stupp Committed: Thu Apr 13 11:06:37 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cql3/QueryOptions.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7da45312/CHANGES.txt -- diff --cc CHANGES.txt index dd33fcf,5516bbd..dae275f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,60 -1,5 +1,61 @@@ +4.0 + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145) + * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661) + * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354) + * Skip building views during base table streams on range movements (CASSANDRA-13065) + * Improve error messages for +/- operations on maps and tuples (CASSANDRA-13197) + * Remove deprecated repair JMX APIs (CASSANDRA-11530) + * Fix version check to enable streaming keep-alive (CASSANDRA-12929) + * Make it possible to monitor an ideal consistency level separate from actual consistency level (CASSANDRA-13289) + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324) + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) + * Incremental repair not streaming correct sstables (CASSANDRA-13328) + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132) + * Remove config option index_interval (CASSANDRA-10671) + * Reduce lock contention for collection types and serializers (CASSANDRA-13271) + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283) + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292) + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520) + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226) + * Remove unused method (CASSANDRA-13227) + * Fix minor bugs related to #9143 (CASSANDRA-13217) + * Output warning if user increases RF (CASSANDRA-13079) + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081) + * Add support for + and - operations on dates (CASSANDRA-11936) + * Fix consistency of incrementally repaired data (CASSANDRA-9143) + * Increase commitlog version (CASSANDRA-13161) + * Make TableMetadata immutable, optimize Schema (CASSANDRA-9425) + * Refactor ColumnCondition (CASSANDRA-12981) + * Parallelize streaming of different keyspaces (CASSANDRA-4663) + * Improved compactions metrics (CASSANDRA-13015) + * Speed-up start-up sequence by avoiding un-needed flushes (CASSANDRA-13031) + * Use Caffeine (W-TinyLFU) for on-heap caches (CASSANDRA-10855) + * Thrift removal (CASSANDRA-5) + * Remove pre-3.0 compatibility code for 4.0 (CASSANDRA-12716) + * Add column definition kind to dropped columns in schema (CASSANDRA-12705) + * Add (automate) Nodetool Documentation (CASSANDRA-12672) + * Update bundled cqlsh python driver to 3.7.0 (CASSANDRA-12736) + * Reject invalid replication settings when creating or altering a keyspace (CASSANDRA-12681) + * Clean up the SSTableReader#getScanner API wrt removal of RateLimiter (CASSANDRA-12422) + * Use new token allocation for non bootstrap case as well (CASSANDRA-13080) + * Avoid byte-array copy when key cache is disabled (CASSANDRA-13084) + * Require forceful decommission if number of nodes is less than replication factor (CASSANDRA-12510) + * Allow IN restrictions on column families with collections (CASSANDRA-12654) + * Log message size in trace message in OutboundTcpConnection (CASSANDRA-13028) + * Add timeUnit Days for cassandra-stress (CASSANDRA-13029) + * Add mutation size and batch metrics (CASSANDRA-12649) + * Add method to get size of endpoints to TokenMetadata (CASSANDRA-12999) + * Expose time spent waiting in thread pool queue (CASSANDRA-8398) + * Conditionally update index built status to avoid unnecessary flushes (CASSANDRA-12969) + * cqlsh auto completion: refactor definition of compaction strategy options (CASSANDRA-12946) + * Add support for arithmetic operators (CASSANDRA-11935) + * Add histogram for delay to deli
[1/3] cassandra git commit: V5 protocol flags decoding broken
Repository: cassandra Updated Branches: refs/heads/cassandra-3.11 fe8e21109 -> 0a438d59e refs/heads/trunk 1f533260a -> 7da45312a V5 protocol flags decoding broken patch by Robert Stupp; reviewed by Stefania for CASSANDRA-13443 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0a438d59 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0a438d59 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0a438d59 Branch: refs/heads/cassandra-3.11 Commit: 0a438d59e65ee79bca7ffc44b8b958e62448e5c3 Parents: fe8e211 Author: Robert Stupp Authored: Thu Apr 13 11:06:29 2017 +0200 Committer: Robert Stupp Committed: Thu Apr 13 11:06:29 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cql3/QueryOptions.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a438d59/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7998e10..5516bbd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.0 + * V5 protocol flags decoding broken (CASSANDRA-13443) * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a438d59/src/java/org/apache/cassandra/cql3/QueryOptions.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryOptions.java b/src/java/org/apache/cassandra/cql3/QueryOptions.java index 1ba8f89..f1787a7 100644 --- a/src/java/org/apache/cassandra/cql3/QueryOptions.java +++ b/src/java/org/apache/cassandra/cql3/QueryOptions.java @@ -403,7 +403,7 @@ public abstract class QueryOptions ConsistencyLevel consistency = CBUtil.readConsistencyLevel(body); EnumSet flags = Flag.deserialize(version.isGreaterOrEqualTo(ProtocolVersion.V5) ? (int)body.readUnsignedInt() - : (int)body.readByte()); + : (int)body.readUnsignedByte()); List values = Collections.emptyList(); List names = null;
[2/3] cassandra git commit: V5 protocol flags decoding broken
V5 protocol flags decoding broken patch by Robert Stupp; reviewed by Stefania for CASSANDRA-13443 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0a438d59 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0a438d59 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0a438d59 Branch: refs/heads/trunk Commit: 0a438d59e65ee79bca7ffc44b8b958e62448e5c3 Parents: fe8e211 Author: Robert Stupp Authored: Thu Apr 13 11:06:29 2017 +0200 Committer: Robert Stupp Committed: Thu Apr 13 11:06:29 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cql3/QueryOptions.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a438d59/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7998e10..5516bbd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.0 + * V5 protocol flags decoding broken (CASSANDRA-13443) * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0a438d59/src/java/org/apache/cassandra/cql3/QueryOptions.java -- diff --git a/src/java/org/apache/cassandra/cql3/QueryOptions.java b/src/java/org/apache/cassandra/cql3/QueryOptions.java index 1ba8f89..f1787a7 100644 --- a/src/java/org/apache/cassandra/cql3/QueryOptions.java +++ b/src/java/org/apache/cassandra/cql3/QueryOptions.java @@ -403,7 +403,7 @@ public abstract class QueryOptions ConsistencyLevel consistency = CBUtil.readConsistencyLevel(body); EnumSet flags = Flag.deserialize(version.isGreaterOrEqualTo(ProtocolVersion.V5) ? (int)body.readUnsignedInt() - : (int)body.readByte()); + : (int)body.readUnsignedByte()); List values = Collections.emptyList(); List names = null;
cassandra git commit: Change protocol to allow sending key space independent of query string
Repository: cassandra Updated Branches: refs/heads/trunk 1096f9f5e -> 1f533260a Change protocol to allow sending key space independent of query string patch by Sandeep Tamhankar; reviewed by Tyler Hobbs + Robert Stupp for CASSANDRA-10145 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1f533260 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1f533260 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1f533260 Branch: refs/heads/trunk Commit: 1f533260a01552790aff0f5f2f8f2f0aee8dbf10 Parents: 1096f9f Author: Sandeep Tamhankar Authored: Wed Apr 12 20:56:35 2017 +0200 Committer: Robert Stupp Committed: Wed Apr 12 20:56:35 2017 +0200 -- CHANGES.txt | 1 + doc/native_protocol_v5.spec | 25 +- .../cassandra/cql3/BatchQueryOptions.java | 5 ++ .../CustomPayloadMirroringQueryHandler.java | 5 +- .../org/apache/cassandra/cql3/QueryHandler.java | 3 +- .../org/apache/cassandra/cql3/QueryOptions.java | 37 +--- .../apache/cassandra/cql3/QueryProcessor.java | 24 ++ .../cassandra/cql3/statements/CFStatement.java | 8 +- .../cql3/statements/ParsedStatement.java| 2 +- .../apache/cassandra/service/ClientState.java | 24 ++ .../org/apache/cassandra/transport/Client.java | 4 +- .../cassandra/transport/SimpleClient.java | 2 +- .../transport/messages/BatchMessage.java| 3 +- .../transport/messages/PrepareMessage.java | 43 +- .../org/apache/cassandra/cql3/CQLTester.java| 2 +- .../cassandra/transport/MessagePayloadTest.java | 89 +++- .../cassandra/transport/SerDeserTest.java | 32 +-- 17 files changed, 249 insertions(+), 60 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f533260/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4f3cb3b..dd33fcf 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145) * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661) * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354) * Skip building views during base table streams on range movements (CASSANDRA-13065) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f533260/doc/native_protocol_v5.spec -- diff --git a/doc/native_protocol_v5.spec b/doc/native_protocol_v5.spec index ac3373c..320f6c0 100644 --- a/doc/native_protocol_v5.spec +++ b/doc/native_protocol_v5.spec @@ -332,7 +332,7 @@ Table of Contents where is a [long string] representing the query and must be - [[name_1]...[name_n]][][][][] + [[name_1]...[name_n]][][][][][] where: - is the [consistency] level for the operation. - is a [int] whose bits define the options for this query and @@ -375,6 +375,9 @@ Table of Contents since the names for the expected values was returned during preparation, a client can always provide values in the right order without any names and using this flag, while supported, is almost surely inefficient. +0x80: With keyspace. If set, must be present. is a + [string] indicating the keyspace that the query should be executed in. + It supercedes the keyspace that the connection is bound to, if any. Note that the consistency is ignored by some queries (USE, CREATE, ALTER, TRUNCATE, ...). @@ -385,8 +388,17 @@ Table of Contents 4.1.5. PREPARE - Prepare a query for later execution (through EXECUTE). The body consists of - the CQL query to prepare as a [long string]. + Prepare a query for later execution (through EXECUTE). The body of the message must be: +[] + where: +- is a [long string] representing the CQL query. +- is a [int] whose bits define the options for this statement and in particular + influence what the remainder of the message contains. + A flag is set if the bit corresponding to its `mask` is set. Supported + flags are, given their mask: +0x01: With keyspace. If set, must be present. is a + [string] indicating the keyspace that the query should be executed in. + It supercedes the keyspace that the connection is bound to, if any. The server will respond with a RESULT message with a `prepared` kind (0x0004, see Section 4.2.5). @@ -408,7 +420,7 @@ Table of Contents Allows executing a list of queries (prepared or not) as a batch (note that only DML statements are accepted in a batch). The body of t
[03/10] cassandra git commit: Fix weightedSize() for row-cache reported by JMX and NodeTool
Fix weightedSize() for row-cache reported by JMX and NodeTool patch by Fuud; reviewed by Robert Stupp for CASSANDRA-13393 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/470f15be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/470f15be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/470f15be Branch: refs/heads/cassandra-3.11 Commit: 470f15be652ffb3c471161d6fb10c8893ff59e46 Parents: 194329d Author: Fuud Authored: Sun Apr 9 10:54:25 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:54:25 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ea2d59..366db50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.10 + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/src/java/org/apache/cassandra/cache/OHCProvider.java -- diff --git a/src/java/org/apache/cassandra/cache/OHCProvider.java b/src/java/org/apache/cassandra/cache/OHCProvider.java index 9b1c8cf..ab2745a 100644 --- a/src/java/org/apache/cassandra/cache/OHCProvider.java +++ b/src/java/org/apache/cassandra/cache/OHCProvider.java @@ -100,7 +100,7 @@ public class OHCProvider implements CacheProvider public long weightedSize() { -return ohCache.size(); +return ohCache.memUsed(); } public void clear()
[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/58e8008a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/58e8008a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/58e8008a Branch: refs/heads/cassandra-3.11 Commit: 58e8008a50ed9fddf87e92b2199894ce11156f2a Parents: fee2a3a 470f15b Author: Robert Stupp Authored: Sun Apr 9 10:55:13 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:58:15 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/CHANGES.txt -- diff --cc CHANGES.txt index 7b577dd,366db50..c5e517f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,6 +1,25 @@@ -2.2.10 +3.0.13 + * Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213) + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) + * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) + * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) + * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) + * Use the Kernel32 library to retrieve the PID on Windows and fix startup checks (CASSANDRA-1) + * Fix code to not exchange schema across major versions (CASSANDRA-13274) + * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) + * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) + * Fix CONTAINS filtering for null collections (CASSANDRA-13246) + * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216) + * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320) + * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305) + * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238) + * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) + * Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410) + * Fix NPE issue in StorageService (CASSANDRA-13060) +Merged from 2.2: + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) - * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153) http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/src/java/org/apache/cassandra/cache/OHCProvider.java --
[01/10] cassandra git commit: Fix weightedSize() for row-cache reported by JMX and NodeTool
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 194329d3c -> 470f15be6 refs/heads/cassandra-3.0 fee2a3a09 -> 58e8008a5 refs/heads/cassandra-3.11 99881b971 -> c38e618d6 refs/heads/trunk 7fa1577c2 -> 333ebd67a Fix weightedSize() for row-cache reported by JMX and NodeTool patch by Fuud; reviewed by Robert Stupp for CASSANDRA-13393 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/470f15be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/470f15be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/470f15be Branch: refs/heads/cassandra-2.2 Commit: 470f15be652ffb3c471161d6fb10c8893ff59e46 Parents: 194329d Author: Fuud Authored: Sun Apr 9 10:54:25 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:54:25 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ea2d59..366db50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.10 + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/src/java/org/apache/cassandra/cache/OHCProvider.java -- diff --git a/src/java/org/apache/cassandra/cache/OHCProvider.java b/src/java/org/apache/cassandra/cache/OHCProvider.java index 9b1c8cf..ab2745a 100644 --- a/src/java/org/apache/cassandra/cache/OHCProvider.java +++ b/src/java/org/apache/cassandra/cache/OHCProvider.java @@ -100,7 +100,7 @@ public class OHCProvider implements CacheProvider public long weightedSize() { -return ohCache.size(); +return ohCache.memUsed(); } public void clear()
[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/58e8008a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/58e8008a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/58e8008a Branch: refs/heads/trunk Commit: 58e8008a50ed9fddf87e92b2199894ce11156f2a Parents: fee2a3a 470f15b Author: Robert Stupp Authored: Sun Apr 9 10:55:13 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:58:15 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/CHANGES.txt -- diff --cc CHANGES.txt index 7b577dd,366db50..c5e517f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,6 +1,25 @@@ -2.2.10 +3.0.13 + * Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213) + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) + * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) + * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) + * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) + * Use the Kernel32 library to retrieve the PID on Windows and fix startup checks (CASSANDRA-1) + * Fix code to not exchange schema across major versions (CASSANDRA-13274) + * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) + * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) + * Fix CONTAINS filtering for null collections (CASSANDRA-13246) + * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216) + * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320) + * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305) + * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238) + * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) + * Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410) + * Fix NPE issue in StorageService (CASSANDRA-13060) +Merged from 2.2: + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) - * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153) http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/src/java/org/apache/cassandra/cache/OHCProvider.java --
[04/10] cassandra git commit: Fix weightedSize() for row-cache reported by JMX and NodeTool
Fix weightedSize() for row-cache reported by JMX and NodeTool patch by Fuud; reviewed by Robert Stupp for CASSANDRA-13393 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/470f15be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/470f15be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/470f15be Branch: refs/heads/trunk Commit: 470f15be652ffb3c471161d6fb10c8893ff59e46 Parents: 194329d Author: Fuud Authored: Sun Apr 9 10:54:25 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:54:25 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ea2d59..366db50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.10 + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/src/java/org/apache/cassandra/cache/OHCProvider.java -- diff --git a/src/java/org/apache/cassandra/cache/OHCProvider.java b/src/java/org/apache/cassandra/cache/OHCProvider.java index 9b1c8cf..ab2745a 100644 --- a/src/java/org/apache/cassandra/cache/OHCProvider.java +++ b/src/java/org/apache/cassandra/cache/OHCProvider.java @@ -100,7 +100,7 @@ public class OHCProvider implements CacheProvider public long weightedSize() { -return ohCache.size(); +return ohCache.memUsed(); } public void clear()
[02/10] cassandra git commit: Fix weightedSize() for row-cache reported by JMX and NodeTool
Fix weightedSize() for row-cache reported by JMX and NodeTool patch by Fuud; reviewed by Robert Stupp for CASSANDRA-13393 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/470f15be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/470f15be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/470f15be Branch: refs/heads/cassandra-3.0 Commit: 470f15be652ffb3c471161d6fb10c8893ff59e46 Parents: 194329d Author: Fuud Authored: Sun Apr 9 10:54:25 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:54:25 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6ea2d59..366db50 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2.10 + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) http://git-wip-us.apache.org/repos/asf/cassandra/blob/470f15be/src/java/org/apache/cassandra/cache/OHCProvider.java -- diff --git a/src/java/org/apache/cassandra/cache/OHCProvider.java b/src/java/org/apache/cassandra/cache/OHCProvider.java index 9b1c8cf..ab2745a 100644 --- a/src/java/org/apache/cassandra/cache/OHCProvider.java +++ b/src/java/org/apache/cassandra/cache/OHCProvider.java @@ -100,7 +100,7 @@ public class OHCProvider implements CacheProvider public long weightedSize() { -return ohCache.size(); +return ohCache.memUsed(); } public void clear()
[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c38e618d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c38e618d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c38e618d Branch: refs/heads/trunk Commit: c38e618d69ac30868ae0f413320ffc8e0f27c9be Parents: 99881b9 58e8008 Author: Robert Stupp Authored: Sun Apr 9 10:58:56 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:58:56 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c38e618d/CHANGES.txt -- diff --cc CHANGES.txt index a34db06,c5e517f..a7b464a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -42,30 -15,11 +42,31 @@@ Merged from 3.0 * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320) * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305) * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238) - * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) + * Prevent data loss on upgrade 2.1 - 3.0 by adding component separator to LogRecord absolute path (CASSANDRA-13294) + * Improve testing on macOS by eliminating sigar logging (CASSANDRA-13233) + * Cqlsh copy-from should error out when csv contains invalid data for collections (CASSANDRA-13071) + * Fix "multiple versions of ant detected..." when running ant test (CASSANDRA-13232) + * Coalescing strategy sleeps too much (CASSANDRA-13090) + * Faster StreamingHistogram (CASSANDRA-13038) + * Legacy deserializer can create unexpected boundary range tombstones (CASSANDRA-13237) + * Remove unnecessary assertion from AntiCompactionTest (CASSANDRA-13070) + * Fix cqlsh COPY for dates before 1900 (CASSANDRA-13185) + * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639) + * Add vm.max_map_count StartupCheck (CASSANDRA-13008) + * Hint related logging should include the IP address of the destination in addition to + host ID (CASSANDRA-13205) + * Reloading logback.xml does not work (CASSANDRA-13173) + * Lightweight transactions temporarily fail after upgrade from 2.1 to 3.0 (CASSANDRA-13109) + * Duplicate rows after upgrading from 2.1.16 to 3.0.10/3.9 (CASSANDRA-13125) + * Fix UPDATE queries with empty IN restrictions (CASSANDRA-13152) + * Fix handling of partition with partition-level deletion plus + live rows in sstabledump (CASSANDRA-13177) + * Provide user workaround when system_schema.columns does not contain entries + for a table that's in system_schema.tables (CASSANDRA-13180) * Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410) - * Fix NPE issue in StorageService (CASSANDRA-13060) Merged from 2.2: + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) + * Fix JVM metric names (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153)
[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c38e618d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c38e618d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c38e618d Branch: refs/heads/cassandra-3.11 Commit: c38e618d69ac30868ae0f413320ffc8e0f27c9be Parents: 99881b9 58e8008 Author: Robert Stupp Authored: Sun Apr 9 10:58:56 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:58:56 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c38e618d/CHANGES.txt -- diff --cc CHANGES.txt index a34db06,c5e517f..a7b464a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -42,30 -15,11 +42,31 @@@ Merged from 3.0 * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320) * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305) * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238) - * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) + * Prevent data loss on upgrade 2.1 - 3.0 by adding component separator to LogRecord absolute path (CASSANDRA-13294) + * Improve testing on macOS by eliminating sigar logging (CASSANDRA-13233) + * Cqlsh copy-from should error out when csv contains invalid data for collections (CASSANDRA-13071) + * Fix "multiple versions of ant detected..." when running ant test (CASSANDRA-13232) + * Coalescing strategy sleeps too much (CASSANDRA-13090) + * Faster StreamingHistogram (CASSANDRA-13038) + * Legacy deserializer can create unexpected boundary range tombstones (CASSANDRA-13237) + * Remove unnecessary assertion from AntiCompactionTest (CASSANDRA-13070) + * Fix cqlsh COPY for dates before 1900 (CASSANDRA-13185) + * Use keyspace replication settings on system.size_estimates table (CASSANDRA-9639) + * Add vm.max_map_count StartupCheck (CASSANDRA-13008) + * Hint related logging should include the IP address of the destination in addition to + host ID (CASSANDRA-13205) + * Reloading logback.xml does not work (CASSANDRA-13173) + * Lightweight transactions temporarily fail after upgrade from 2.1 to 3.0 (CASSANDRA-13109) + * Duplicate rows after upgrading from 2.1.16 to 3.0.10/3.9 (CASSANDRA-13125) + * Fix UPDATE queries with empty IN restrictions (CASSANDRA-13152) + * Fix handling of partition with partition-level deletion plus + live rows in sstabledump (CASSANDRA-13177) + * Provide user workaround when system_schema.columns does not contain entries + for a table that's in system_schema.tables (CASSANDRA-13180) * Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410) - * Fix NPE issue in StorageService (CASSANDRA-13060) Merged from 2.2: + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) + * Fix JVM metric names (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153)
[10/10] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/333ebd67 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/333ebd67 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/333ebd67 Branch: refs/heads/trunk Commit: 333ebd67a0ee7497f0c2f62372befbd01515a3c2 Parents: 7fa1577 c38e618 Author: Robert Stupp Authored: Sun Apr 9 10:59:18 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:59:18 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/333ebd67/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/333ebd67/src/java/org/apache/cassandra/cache/OHCProvider.java --
[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/58e8008a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/58e8008a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/58e8008a Branch: refs/heads/cassandra-3.0 Commit: 58e8008a50ed9fddf87e92b2199894ce11156f2a Parents: fee2a3a 470f15b Author: Robert Stupp Authored: Sun Apr 9 10:55:13 2017 +0200 Committer: Robert Stupp Committed: Sun Apr 9 10:58:15 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cache/OHCProvider.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/CHANGES.txt -- diff --cc CHANGES.txt index 7b577dd,366db50..c5e517f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,6 +1,25 @@@ -2.2.10 +3.0.13 + * Fix startup problems due to schema tables not completely flushed (CASSANDRA-12213) + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) + * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) + * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) + * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) + * Use the Kernel32 library to retrieve the PID on Windows and fix startup checks (CASSANDRA-1) + * Fix code to not exchange schema across major versions (CASSANDRA-13274) + * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) + * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) + * Fix CONTAINS filtering for null collections (CASSANDRA-13246) + * Applying: Use a unique metric reservoir per test run when using Cassandra-wide metrics residing in MBeans (CASSANDRA-13216) + * Propagate row deletions in 2i tables on upgrade (CASSANDRA-13320) + * Slice.isEmpty() returns false for some empty slices (CASSANDRA-13305) + * Add formatted row output to assertEmpty in CQL Tester (CASSANDRA-13238) + * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) + * Nodetool upgradesstables/scrub/compact ignores system tables (CASSANDRA-13410) + * Fix NPE issue in StorageService (CASSANDRA-13060) +Merged from 2.2: + * Fix weightedSize() for row-cache reported by JMX and NodeTool (CASSANDRA-13393) - * Fix JVM metric paths (CASSANDRA-13103) * Honor truststore-password parameter in cassandra-stress (CASSANDRA-12773) * Discard in-flight shadow round responses (CASSANDRA-12653) * Don't anti-compact repaired data to avoid inconsistencies (CASSANDRA-13153) http://git-wip-us.apache.org/repos/asf/cassandra/blob/58e8008a/src/java/org/apache/cassandra/cache/OHCProvider.java --
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c8241659 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c8241659 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c8241659 Branch: refs/heads/trunk Commit: c8241659ec7272c530be92f79ac89046980a2f4a Parents: ccef21f 5b77e04 Author: Robert Stupp Authored: Mon Apr 3 11:32:56 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:56 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) --
[2/6] cassandra git commit: Ninja: code comments for logback ReconfigureOnChangeFilter customization
Ninja: code comments for logback ReconfigureOnChangeFilter customization Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f45f55b5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f45f55b5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f45f55b5 Branch: refs/heads/cassandra-3.11 Commit: f45f55b55e2a2f3985baec22275fb51f2b5b1f6a Parents: ac1b7c1 Author: Robert Stupp Authored: Mon Apr 3 11:32:22 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:22 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f45f55b5/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java index 3d97790..13d1945 100644 --- a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java +++ b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java @@ -78,6 +78,15 @@ public final class ThreadAwareSecurityManager extends SecurityManager return; System.setSecurityManager(new ThreadAwareSecurityManager()); +// The default logback configuration in conf/logback.xml allows reloading the +// configuration when the configuration file has changed (every 60 seconds by default). +// This requires logback to use file I/O APIs. But file I/O is not allowed from UDFs. +// I.e. if logback decides to check for a modification of the config file while +// executiing a sandbox thread, the UDF execution and therefore the whole request +// execution will fail with an AccessControlException. +// To work around this, a custom ReconfigureOnChangeFilter is installed, that simply +// prevents this configuration file check and possible reload of the configration, +// while executing sandboxed UDF code. Logger l = LoggerFactory.getLogger(ThreadAwareSecurityManager.class); ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) l; LoggerContext ctx = logbackLogger.getLoggerContext(); @@ -98,7 +107,8 @@ public final class ThreadAwareSecurityManager extends SecurityManager } /** - * The purpose of this class is + * The purpose of this class is to prevent logback from checking for config file change, + * if the current thread is executing a sandboxed thread to avoid {@link AccessControlException}s. */ private static class SMAwareReconfigureOnChangeFilter extends ReconfigureOnChangeFilter {
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b77e04a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b77e04a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b77e04a Branch: refs/heads/cassandra-3.11 Commit: 5b77e04a640d4da8b594948d308ecb8323512962 Parents: 8862759 f45f55b Author: Robert Stupp Authored: Mon Apr 3 11:32:49 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:49 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b77e04a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java --
[1/6] cassandra git commit: Ninja: code comments for logback ReconfigureOnChangeFilter customization
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 ac1b7c17d -> f45f55b55 refs/heads/cassandra-3.11 88627598c -> 5b77e04a6 refs/heads/trunk ccef21fef -> c8241659e Ninja: code comments for logback ReconfigureOnChangeFilter customization Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f45f55b5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f45f55b5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f45f55b5 Branch: refs/heads/cassandra-3.0 Commit: f45f55b55e2a2f3985baec22275fb51f2b5b1f6a Parents: ac1b7c1 Author: Robert Stupp Authored: Mon Apr 3 11:32:22 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:22 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f45f55b5/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java index 3d97790..13d1945 100644 --- a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java +++ b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java @@ -78,6 +78,15 @@ public final class ThreadAwareSecurityManager extends SecurityManager return; System.setSecurityManager(new ThreadAwareSecurityManager()); +// The default logback configuration in conf/logback.xml allows reloading the +// configuration when the configuration file has changed (every 60 seconds by default). +// This requires logback to use file I/O APIs. But file I/O is not allowed from UDFs. +// I.e. if logback decides to check for a modification of the config file while +// executiing a sandbox thread, the UDF execution and therefore the whole request +// execution will fail with an AccessControlException. +// To work around this, a custom ReconfigureOnChangeFilter is installed, that simply +// prevents this configuration file check and possible reload of the configration, +// while executing sandboxed UDF code. Logger l = LoggerFactory.getLogger(ThreadAwareSecurityManager.class); ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) l; LoggerContext ctx = logbackLogger.getLoggerContext(); @@ -98,7 +107,8 @@ public final class ThreadAwareSecurityManager extends SecurityManager } /** - * The purpose of this class is + * The purpose of this class is to prevent logback from checking for config file change, + * if the current thread is executing a sandboxed thread to avoid {@link AccessControlException}s. */ private static class SMAwareReconfigureOnChangeFilter extends ReconfigureOnChangeFilter {
[3/6] cassandra git commit: Ninja: code comments for logback ReconfigureOnChangeFilter customization
Ninja: code comments for logback ReconfigureOnChangeFilter customization Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f45f55b5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f45f55b5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f45f55b5 Branch: refs/heads/trunk Commit: f45f55b55e2a2f3985baec22275fb51f2b5b1f6a Parents: ac1b7c1 Author: Robert Stupp Authored: Mon Apr 3 11:32:22 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:22 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f45f55b5/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java -- diff --git a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java index 3d97790..13d1945 100644 --- a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java +++ b/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java @@ -78,6 +78,15 @@ public final class ThreadAwareSecurityManager extends SecurityManager return; System.setSecurityManager(new ThreadAwareSecurityManager()); +// The default logback configuration in conf/logback.xml allows reloading the +// configuration when the configuration file has changed (every 60 seconds by default). +// This requires logback to use file I/O APIs. But file I/O is not allowed from UDFs. +// I.e. if logback decides to check for a modification of the config file while +// executiing a sandbox thread, the UDF execution and therefore the whole request +// execution will fail with an AccessControlException. +// To work around this, a custom ReconfigureOnChangeFilter is installed, that simply +// prevents this configuration file check and possible reload of the configration, +// while executing sandboxed UDF code. Logger l = LoggerFactory.getLogger(ThreadAwareSecurityManager.class); ch.qos.logback.classic.Logger logbackLogger = (ch.qos.logback.classic.Logger) l; LoggerContext ctx = logbackLogger.getLoggerContext(); @@ -98,7 +107,8 @@ public final class ThreadAwareSecurityManager extends SecurityManager } /** - * The purpose of this class is + * The purpose of this class is to prevent logback from checking for config file change, + * if the current thread is executing a sandboxed thread to avoid {@link AccessControlException}s. */ private static class SMAwareReconfigureOnChangeFilter extends ReconfigureOnChangeFilter {
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5b77e04a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5b77e04a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5b77e04a Branch: refs/heads/trunk Commit: 5b77e04a640d4da8b594948d308ecb8323512962 Parents: 8862759 f45f55b Author: Robert Stupp Authored: Mon Apr 3 11:32:49 2017 +0100 Committer: Robert Stupp Committed: Mon Apr 3 11:32:49 2017 +0100 -- .../cql3/functions/ThreadAwareSecurityManager.java | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5b77e04a/src/java/org/apache/cassandra/cql3/functions/ThreadAwareSecurityManager.java --
[2/9] cassandra git commit: DataOutputBuffer.asNewBuffer broken
DataOutputBuffer.asNewBuffer broken patch by Robert Stupp; reviewed by Stefania for CASSANDRA-13298 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62abe46c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62abe46c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62abe46c Branch: refs/heads/trunk Commit: 62abe46c5efc47812899219f2e38af94c34fa49a Parents: c0ac928 Author: Robert Stupp Authored: Tue Mar 28 09:32:18 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:32:18 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java | 2 +- src/java/org/apache/cassandra/io/util/DataOutputBuffer.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 98ed992..f3b27be 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.0 + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java -- diff --git a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java index b95a310..64d7dd1 100644 --- a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java +++ b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java @@ -274,7 +274,7 @@ public class PartitionUpdate extends AbstractBTreePartition try (DataOutputBuffer out = new DataOutputBuffer()) { serializer.serialize(update, out, version); -return out.asNewBuffer(); +return out.buffer(); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java -- diff --git a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java index 63f87ea..144edad 100644 --- a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java +++ b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java @@ -229,7 +229,7 @@ public class DataOutputBuffer extends BufferedDataOutputStreamPlus public ByteBuffer asNewBuffer() { -return ByteBuffer.wrap(getData(), 0, getLength()); +return ByteBuffer.wrap(toByteArray()); } public byte[] toByteArray()
[5/9] cassandra git commit: Fix code to not exchange schema across major versions
Fix code to not exchange schema across major versions patch by Robert Stupp; reviewed by Sylvain Lebresne for CASSANDRA-13274 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6da41ed0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6da41ed0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6da41ed0 Branch: refs/heads/trunk Commit: 6da41ed047ed5ef8a5d11e7a60e73dfeb129a72a Parents: 5262bb1 Author: Robert Stupp Authored: Tue Mar 28 09:35:49 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:35:49 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 12 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0b1bb01..0af7a7d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix code to not exchange schema across major versions (CASSANDRA-13274) * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) * Fix CONTAINS filtering for null collections (CASSANDRA-13246) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index e8095d3..4aaf49b 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -903,9 +903,6 @@ public final class MessagingService implements MessagingServiceMBean */ public int setVersion(InetAddress endpoint, int version) { -// We can't talk to someone from the future -version = Math.min(version, current_version); - logger.trace("Setting version {} for {}", version, endpoint); if (version < VERSION_22) @@ -926,7 +923,7 @@ public final class MessagingService implements MessagingServiceMBean { logger.trace("Resetting version for {}", endpoint); Integer removed = versions.remove(endpoint); -if (removed != null && removed <= VERSION_30) +if (removed != null && Math.min(removed, current_version) <= VERSION_30) refreshAllNodeMinVersions(); } @@ -951,6 +948,10 @@ public final class MessagingService implements MessagingServiceMBean allNodesAtLeast30 = !anyNodeLowerThan30; } +/** + * Returns the messaging-version as announced by the given node but capped + * to the min of the version as announced by the node and {@link #current_version}. + */ public int getVersion(InetAddress endpoint) { Integer v = versions.get(endpoint); @@ -969,6 +970,9 @@ public final class MessagingService implements MessagingServiceMBean return getVersion(InetAddress.getByName(endpoint)); } +/** + * Returns the messaging-version exactly as announced by the given endpoint. + */ public int getRawVersion(InetAddress endpoint) { Integer v = versions.get(endpoint);
[8/9] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/52fc62f1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/52fc62f1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/52fc62f1 Branch: refs/heads/cassandra-3.11 Commit: 52fc62f18f01336f9412509a7924b92278fe33df Parents: 62abe46 6da41ed Author: Robert Stupp Authored: Tue Mar 28 09:36:47 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:37:05 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 12 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/52fc62f1/CHANGES.txt -- diff --cc CHANGES.txt index f3b27be,0af7a7d..038befb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,21 -1,5 +1,22 @@@ -3.0.13 +3.11.0 + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) +Merged from 3.0: + * Fix code to not exchange schema across major versions (CASSANDRA-13274) * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) * Fix CONTAINS filtering for null collections (CASSANDRA-13246) http://git-wip-us.apache.org/repos/asf/cassandra/blob/52fc62f1/src/java/org/apache/cassandra/net/MessagingService.java --
[9/9] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a0477617 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a0477617 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a0477617 Branch: refs/heads/trunk Commit: a04776173a70dac66de939a26ea50544d5a45986 Parents: 35042ee 52fc62f Author: Robert Stupp Authored: Tue Mar 28 09:46:07 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:47:27 2017 +0200 -- CHANGES.txt | 1 + NEWS.txt| 2 ++ src/java/org/apache/cassandra/net/MessagingService.java | 9 +++-- 3 files changed, 10 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0477617/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0477617/NEWS.txt -- diff --cc NEWS.txt index cfb48e2,4c2e217..9048121 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,39 -13,6 +13,41 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +4.0 +=== + +New features + + - The currentTimestamp, currentDate, currentTime and currentTimeUUID functions have been added. + See CASSANDRA-13132 + - Support for arithmetic operations between `timestamp`/`date` and `duration` has been added. + See CASSANDRA-11936 + - Support for arithmetic operations on number has been added. See CASSANDRA-11935 + +Upgrading +- +- Cassandra 4.0 removed support for the deprecated Thrift interface. Amongst + Tother things, this imply the removal of all yaml option related to thrift + ('start_rpc', rpc_port, ...). +- Cassandra 4.0 removed support for any pre-3.0 format. This means you + cannot upgrade from a 2.x version to 4.0 directly, you have to upgrade to + a 3.0.x/3.x version first (and run upgradesstable). In particular, this + mean Cassandra 4.0 cannot load or read pre-3.0 sstables in any way: you + will need to upgrade those sstable in 3.0.x/3.x first. ++- Upgrades from 3.0.x or 3.x are supported since 3.0.13 or 3.11.0, previous ++ versions will causes issues during rolling upgrades (CASSANDRA-13274). +- Cassandra will no longer allow invalid keyspace replication options, such + as invalid datacenter names for NetworkTopologyStrategy. Operators MUST + add new nodes to a datacenter before they can set set ALTER or CREATE + keyspace replication policies using that datacenter. Existing keyspaces + will continue to operate, but CREATE and ALTER will validate that all + datacenters specified exist in the cluster. +- Cassandra 4.0 fixes a problem with incremental repair which caused repaired + data to be inconsistent between nodes. The fix changes the behavior of both + full and incremental repairs. For full repairs, data is no longer marked + repaired. For incremental repairs, anticompaction is run at the beginning + of the repair, instead of at the end. +- Config option index_interval has been removed (it was deprecated since 2.0) 3.11.0 == http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0477617/src/java/org/apache/cassandra/net/MessagingService.java -- diff --cc src/java/org/apache/cassandra/net/MessagingService.java index b7d4329,0e81c06..b3e7b61 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@@ -1122,20 -1071,55 +1122,22 @@@ public final class MessagingService imp */ public int setVersion(InetAddress endpoint, int version) { - // We can't talk to someone from the future - version = Math.min(version, current_version); logger.trace("Setting version {} for {}", version, endpoint); -if (version < VERSION_22) -allNodesAtLeast22 = false; -if (version < VERSION_30) -allNodesAtLeast30 = false; - Integer v = versions.put(endpoint, version); - -// if the version was increased to 2.2 or later see if the min version across the cluster has changed -if (v != null && (v < VERSION_30 && version >= VERSION_22)) -refreshAllNodeMinVersions(); - return v == null ? version : v; } public void resetVersion(InetAddress endpoint) { logger.trace("Resetting version for {}", endpoint); -Integer remo
[4/9] cassandra git commit: Fix code to not exchange schema across major versions
Fix code to not exchange schema across major versions patch by Robert Stupp; reviewed by Sylvain Lebresne for CASSANDRA-13274 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6da41ed0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6da41ed0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6da41ed0 Branch: refs/heads/cassandra-3.11 Commit: 6da41ed047ed5ef8a5d11e7a60e73dfeb129a72a Parents: 5262bb1 Author: Robert Stupp Authored: Tue Mar 28 09:35:49 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:35:49 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 12 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0b1bb01..0af7a7d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix code to not exchange schema across major versions (CASSANDRA-13274) * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) * Fix CONTAINS filtering for null collections (CASSANDRA-13246) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index e8095d3..4aaf49b 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -903,9 +903,6 @@ public final class MessagingService implements MessagingServiceMBean */ public int setVersion(InetAddress endpoint, int version) { -// We can't talk to someone from the future -version = Math.min(version, current_version); - logger.trace("Setting version {} for {}", version, endpoint); if (version < VERSION_22) @@ -926,7 +923,7 @@ public final class MessagingService implements MessagingServiceMBean { logger.trace("Resetting version for {}", endpoint); Integer removed = versions.remove(endpoint); -if (removed != null && removed <= VERSION_30) +if (removed != null && Math.min(removed, current_version) <= VERSION_30) refreshAllNodeMinVersions(); } @@ -951,6 +948,10 @@ public final class MessagingService implements MessagingServiceMBean allNodesAtLeast30 = !anyNodeLowerThan30; } +/** + * Returns the messaging-version as announced by the given node but capped + * to the min of the version as announced by the node and {@link #current_version}. + */ public int getVersion(InetAddress endpoint) { Integer v = versions.get(endpoint); @@ -969,6 +970,9 @@ public final class MessagingService implements MessagingServiceMBean return getVersion(InetAddress.getByName(endpoint)); } +/** + * Returns the messaging-version exactly as announced by the given endpoint. + */ public int getRawVersion(InetAddress endpoint) { Integer v = versions.get(endpoint);
[7/9] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/52fc62f1 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/52fc62f1 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/52fc62f1 Branch: refs/heads/trunk Commit: 52fc62f18f01336f9412509a7924b92278fe33df Parents: 62abe46 6da41ed Author: Robert Stupp Authored: Tue Mar 28 09:36:47 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:37:05 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 12 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/52fc62f1/CHANGES.txt -- diff --cc CHANGES.txt index f3b27be,0af7a7d..038befb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,21 -1,5 +1,22 @@@ -3.0.13 +3.11.0 + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) +Merged from 3.0: + * Fix code to not exchange schema across major versions (CASSANDRA-13274) * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) * Fix CONTAINS filtering for null collections (CASSANDRA-13246) http://git-wip-us.apache.org/repos/asf/cassandra/blob/52fc62f1/src/java/org/apache/cassandra/net/MessagingService.java --
[3/9] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/35042eef Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/35042eef Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/35042eef Branch: refs/heads/trunk Commit: 35042eefea9f9ea79142f7b8d7159266ad84d283 Parents: c86de2a 62abe46 Author: Robert Stupp Authored: Tue Mar 28 09:32:32 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:32:32 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java | 2 +- src/java/org/apache/cassandra/io/util/DataOutputBuffer.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/35042eef/CHANGES.txt -- diff --cc CHANGES.txt index 4482c98,f3b27be..23a9ef4 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,52 -1,5 +1,53 @@@ +4.0 + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324) + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) + * Incremental repair not streaming correct sstables (CASSANDRA-13328) + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132) + * Remove config option index_interval (CASSANDRA-10671) + * Reduce lock contention for collection types and serializers (CASSANDRA-13271) + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283) + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292) + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520) + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226) + * Remove unused method (CASSANDRA-13227) + * Fix minor bugs related to #9143 (CASSANDRA-13217) + * Output warning if user increases RF (CASSANDRA-13079) + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081) + * Add support for + and - operations on dates (CASSANDRA-11936) + * Fix consistency of incrementally repaired data (CASSANDRA-9143) + * Increase commitlog version (CASSANDRA-13161) + * Make TableMetadata immutable, optimize Schema (CASSANDRA-9425) + * Refactor ColumnCondition (CASSANDRA-12981) + * Parallelize streaming of different keyspaces (CASSANDRA-4663) + * Improved compactions metrics (CASSANDRA-13015) + * Speed-up start-up sequence by avoiding un-needed flushes (CASSANDRA-13031) + * Use Caffeine (W-TinyLFU) for on-heap caches (CASSANDRA-10855) + * Thrift removal (CASSANDRA-5) + * Remove pre-3.0 compatibility code for 4.0 (CASSANDRA-12716) + * Add column definition kind to dropped columns in schema (CASSANDRA-12705) + * Add (automate) Nodetool Documentation (CASSANDRA-12672) + * Update bundled cqlsh python driver to 3.7.0 (CASSANDRA-12736) + * Reject invalid replication settings when creating or altering a keyspace (CASSANDRA-12681) + * Clean up the SSTableReader#getScanner API wrt removal of RateLimiter (CASSANDRA-12422) + * Use new token allocation for non bootstrap case as well (CASSANDRA-13080) + * Avoid byte-array copy when key cache is disabled (CASSANDRA-13084) + * Require forceful decommission if number of nodes is less than replication factor (CASSANDRA-12510) + * Allow IN restrictions on column families with collections (CASSANDRA-12654) + * Log message size in trace message in OutboundTcpConnection (CASSANDRA-13028) + * Add timeUnit Days for cassandra-stress (CASSANDRA-13029) + * Add mutation size and batch metrics (CASSANDRA-12649) + * Add method to get size of endpoints to TokenMetadata (CASSANDRA-12999) + * Expose time spent waiting in thread pool queue (CASSANDRA-8398) + * Conditionally update index built status to avoid unnecessary flushes (CASSANDRA-12969) + * cqlsh auto completion: refactor definition of compaction strategy options (CASSANDRA-12946) + * Add support for arithmetic operators (CASSANDRA-11935) + * Add histogram for delay to deliver hints (CASSANDRA-13234) + + 3.11.0 + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) http://git-wip-us.apache.org/repos/asf/cassandra/blob/35042eef/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java --
[1/9] cassandra git commit: DataOutputBuffer.asNewBuffer broken
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 5262bb17b -> 6da41ed04 refs/heads/cassandra-3.11 c0ac928d9 -> 52fc62f18 refs/heads/trunk c86de2a98 -> a04776173 DataOutputBuffer.asNewBuffer broken patch by Robert Stupp; reviewed by Stefania for CASSANDRA-13298 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/62abe46c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/62abe46c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/62abe46c Branch: refs/heads/cassandra-3.11 Commit: 62abe46c5efc47812899219f2e38af94c34fa49a Parents: c0ac928 Author: Robert Stupp Authored: Tue Mar 28 09:32:18 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:32:18 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java | 2 +- src/java/org/apache/cassandra/io/util/DataOutputBuffer.java | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 98ed992..f3b27be 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.11.0 + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java -- diff --git a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java index b95a310..64d7dd1 100644 --- a/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java +++ b/src/java/org/apache/cassandra/db/partitions/PartitionUpdate.java @@ -274,7 +274,7 @@ public class PartitionUpdate extends AbstractBTreePartition try (DataOutputBuffer out = new DataOutputBuffer()) { serializer.serialize(update, out, version); -return out.asNewBuffer(); +return out.buffer(); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/62abe46c/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java -- diff --git a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java index 63f87ea..144edad 100644 --- a/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java +++ b/src/java/org/apache/cassandra/io/util/DataOutputBuffer.java @@ -229,7 +229,7 @@ public class DataOutputBuffer extends BufferedDataOutputStreamPlus public ByteBuffer asNewBuffer() { -return ByteBuffer.wrap(getData(), 0, getLength()); +return ByteBuffer.wrap(toByteArray()); } public byte[] toByteArray()
[6/9] cassandra git commit: Fix code to not exchange schema across major versions
Fix code to not exchange schema across major versions patch by Robert Stupp; reviewed by Sylvain Lebresne for CASSANDRA-13274 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6da41ed0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6da41ed0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6da41ed0 Branch: refs/heads/cassandra-3.0 Commit: 6da41ed047ed5ef8a5d11e7a60e73dfeb129a72a Parents: 5262bb1 Author: Robert Stupp Authored: Tue Mar 28 09:35:49 2017 +0200 Committer: Robert Stupp Committed: Tue Mar 28 09:35:49 2017 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 12 2 files changed, 9 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0b1bb01..0af7a7d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix code to not exchange schema across major versions (CASSANDRA-13274) * Dropping column results in "corrupt" SSTable (CASSANDRA-13337) * Bugs handling range tombstones in the sstable iterators (CASSANDRA-13340) * Fix CONTAINS filtering for null collections (CASSANDRA-13246) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6da41ed0/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index e8095d3..4aaf49b 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -903,9 +903,6 @@ public final class MessagingService implements MessagingServiceMBean */ public int setVersion(InetAddress endpoint, int version) { -// We can't talk to someone from the future -version = Math.min(version, current_version); - logger.trace("Setting version {} for {}", version, endpoint); if (version < VERSION_22) @@ -926,7 +923,7 @@ public final class MessagingService implements MessagingServiceMBean { logger.trace("Resetting version for {}", endpoint); Integer removed = versions.remove(endpoint); -if (removed != null && removed <= VERSION_30) +if (removed != null && Math.min(removed, current_version) <= VERSION_30) refreshAllNodeMinVersions(); } @@ -951,6 +948,10 @@ public final class MessagingService implements MessagingServiceMBean allNodesAtLeast30 = !anyNodeLowerThan30; } +/** + * Returns the messaging-version as announced by the given node but capped + * to the min of the version as announced by the node and {@link #current_version}. + */ public int getVersion(InetAddress endpoint) { Integer v = versions.get(endpoint); @@ -969,6 +970,9 @@ public final class MessagingService implements MessagingServiceMBean return getVersion(InetAddress.getByName(endpoint)); } +/** + * Returns the messaging-version exactly as announced by the given endpoint. + */ public int getRawVersion(InetAddress endpoint) { Integer v = versions.get(endpoint);
cassandra git commit: Upgrade junit from 4.6 to 4.12
Repository: cassandra Updated Branches: refs/heads/trunk a87b15d1d -> 6a8f15031 Upgrade junit from 4.6 to 4.12 patch by Jay Zhuang; reviewed by Robert Stupp for CASSANDRA-13360 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6a8f1503 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6a8f1503 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6a8f1503 Branch: refs/heads/trunk Commit: 6a8f15031569bcf8adf5344db9c701b1a6d2a802 Parents: a87b15d Author: Jay Zhuang Authored: Thu Mar 23 11:00:05 2017 +0100 Committer: Robert Stupp Committed: Thu Mar 23 11:00:05 2017 +0100 -- CHANGES.txt | 1 + build.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a8f1503/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c1d5e94..6897fb0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) * Incremental repair not streaming correct sstables (CASSANDRA-13328) * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6a8f1503/build.xml -- diff --git a/build.xml b/build.xml index 058b879..73d3051 100644 --- a/build.xml +++ b/build.xml @@ -383,7 +383,7 @@ - +
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7755a324 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7755a324 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7755a324 Branch: refs/heads/trunk Commit: 7755a324e028ab834d6755d34b156a3a9d9ee460 Parents: 66e2c1b 1248d36 Author: Robert Stupp Authored: Wed Mar 8 13:57:18 2017 +0100 Committer: Robert Stupp Committed: Wed Mar 8 13:57:18 2017 +0100 -- .../apache/cassandra/net/MessagingService.java | 23 +++- 1 file changed, 17 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7755a324/src/java/org/apache/cassandra/net/MessagingService.java --
[3/6] cassandra git commit: IOException (No such file or directory) closing MessagingService's server socket (locally)
IOException (No such file or directory) closing MessagingService's server socket (locally) patch by Robert Stupp; reviewed by Michael Kjellman for CASSANDRA-12513 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ae84195 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ae84195 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ae84195 Branch: refs/heads/trunk Commit: 1ae84195116eb346522c59042df8a2156a3f19f0 Parents: 71c1f98 Author: Robert Stupp Authored: Wed Mar 8 13:55:45 2017 +0100 Committer: Robert Stupp Committed: Wed Mar 8 13:55:45 2017 +0100 -- .../apache/cassandra/net/MessagingService.java | 23 +++- 1 file changed, 17 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ae84195/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index c784b15..31ea09e 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -812,7 +812,7 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-10545 -handleIOException(e); +handleIOExceptionOnClose(e); } } catch (IOException e) @@ -1102,7 +1102,8 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-8220 -handleIOException(e); +// see https://issues.apache.org/jira/browse/CASSANDRA-12513 +handleIOExceptionOnClose(e); } for (Closeable connection : connections) { @@ -1116,12 +1117,22 @@ public final class MessagingService implements MessagingServiceMBean } } -private static void handleIOException(IOException e) throws IOException +private static void handleIOExceptionOnClose(IOException e) throws IOException { // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20 -// see https://bugs.openjdk.java.net/browse/JDK-8050499 -if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name"))) -throw e; +// see https://bugs.openjdk.java.net/browse/JDK-8050499; +// also CASSANDRA-12513 +if ("Mac OS X".equals(System.getProperty("os.name"))) +{ +switch (e.getMessage()) +{ +case "Unknown error: 316": +case "No such file or directory": +return; +} +} + +throw e; } public Map getLargeMessagePendingTasks()
[1/6] cassandra git commit: IOException (No such file or directory) closing MessagingService's server socket (locally)
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 71c1f9866 -> 1ae841951 refs/heads/cassandra-3.11 2b62cb997 -> 1248d3620 refs/heads/trunk 66e2c1b90 -> 7755a324e IOException (No such file or directory) closing MessagingService's server socket (locally) patch by Robert Stupp; reviewed by Michael Kjellman for CASSANDRA-12513 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ae84195 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ae84195 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ae84195 Branch: refs/heads/cassandra-3.0 Commit: 1ae84195116eb346522c59042df8a2156a3f19f0 Parents: 71c1f98 Author: Robert Stupp Authored: Wed Mar 8 13:55:45 2017 +0100 Committer: Robert Stupp Committed: Wed Mar 8 13:55:45 2017 +0100 -- .../apache/cassandra/net/MessagingService.java | 23 +++- 1 file changed, 17 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ae84195/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index c784b15..31ea09e 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -812,7 +812,7 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-10545 -handleIOException(e); +handleIOExceptionOnClose(e); } } catch (IOException e) @@ -1102,7 +1102,8 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-8220 -handleIOException(e); +// see https://issues.apache.org/jira/browse/CASSANDRA-12513 +handleIOExceptionOnClose(e); } for (Closeable connection : connections) { @@ -1116,12 +1117,22 @@ public final class MessagingService implements MessagingServiceMBean } } -private static void handleIOException(IOException e) throws IOException +private static void handleIOExceptionOnClose(IOException e) throws IOException { // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20 -// see https://bugs.openjdk.java.net/browse/JDK-8050499 -if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name"))) -throw e; +// see https://bugs.openjdk.java.net/browse/JDK-8050499; +// also CASSANDRA-12513 +if ("Mac OS X".equals(System.getProperty("os.name"))) +{ +switch (e.getMessage()) +{ +case "Unknown error: 316": +case "No such file or directory": +return; +} +} + +throw e; } public Map getLargeMessagePendingTasks()
[2/6] cassandra git commit: IOException (No such file or directory) closing MessagingService's server socket (locally)
IOException (No such file or directory) closing MessagingService's server socket (locally) patch by Robert Stupp; reviewed by Michael Kjellman for CASSANDRA-12513 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1ae84195 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1ae84195 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1ae84195 Branch: refs/heads/cassandra-3.11 Commit: 1ae84195116eb346522c59042df8a2156a3f19f0 Parents: 71c1f98 Author: Robert Stupp Authored: Wed Mar 8 13:55:45 2017 +0100 Committer: Robert Stupp Committed: Wed Mar 8 13:55:45 2017 +0100 -- .../apache/cassandra/net/MessagingService.java | 23 +++- 1 file changed, 17 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1ae84195/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index c784b15..31ea09e 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -812,7 +812,7 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-10545 -handleIOException(e); +handleIOExceptionOnClose(e); } } catch (IOException e) @@ -1102,7 +1102,8 @@ public final class MessagingService implements MessagingServiceMBean catch (IOException e) { // see https://issues.apache.org/jira/browse/CASSANDRA-8220 -handleIOException(e); +// see https://issues.apache.org/jira/browse/CASSANDRA-12513 +handleIOExceptionOnClose(e); } for (Closeable connection : connections) { @@ -1116,12 +1117,22 @@ public final class MessagingService implements MessagingServiceMBean } } -private static void handleIOException(IOException e) throws IOException +private static void handleIOExceptionOnClose(IOException e) throws IOException { // dirty hack for clean shutdown on OSX w/ Java >= 1.8.0_20 -// see https://bugs.openjdk.java.net/browse/JDK-8050499 -if (!"Unknown error: 316".equals(e.getMessage()) || !"Mac OS X".equals(System.getProperty("os.name"))) -throw e; +// see https://bugs.openjdk.java.net/browse/JDK-8050499; +// also CASSANDRA-12513 +if ("Mac OS X".equals(System.getProperty("os.name"))) +{ +switch (e.getMessage()) +{ +case "Unknown error: 316": +case "No such file or directory": +return; +} +} + +throw e; } public Map getLargeMessagePendingTasks()
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1248d362 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1248d362 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1248d362 Branch: refs/heads/trunk Commit: 1248d3620cc13b62b26e192699fa5a874abf326f Parents: 2b62cb9 1ae8419 Author: Robert Stupp Authored: Wed Mar 8 13:56:43 2017 +0100 Committer: Robert Stupp Committed: Wed Mar 8 13:56:43 2017 +0100 -- .../apache/cassandra/net/MessagingService.java | 23 +++- 1 file changed, 17 insertions(+), 6 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1248d362/src/java/org/apache/cassandra/net/MessagingService.java --