[15/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b448b33 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b448b33 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b448b33 Branch: refs/heads/cassandra-2.2 Commit: 3b448b33785c86f554bc07266de1c39e0ac502d9 Parents: 6fcf335 2811f15 Author: Marcus Eriksson Authored: Tue Jun 28 10:16:49 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:16:49 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 80 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/CHANGES.txt -- diff --cc CHANGES.txt index 8fbdf3b,5741241..8d2062d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --cc src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 79a814d,bfe92f9..ab262c7 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@@ -72,13 -71,11 +72,12 @@@ public class IncomingStreamingConnectio // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. - StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.descripti
[11/21] cassandra git commit: Remove finished incoming streaming connections from MessagingService
Remove finished incoming streaming connections from MessagingService patch by Paulo Motta; reviewed by Marcus Eriksson for CASSANDRA-11854 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2811f15b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2811f15b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2811f15b Branch: refs/heads/trunk Commit: 2811f15bc9117fed4fb38de490d25d68df4e85b7 Parents: 341b3fb Author: Paulo Motta Authored: Mon Jun 27 12:17:33 2016 -0300 Committer: Marcus Eriksson Committed: Tue Jun 28 10:13:24 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 4 +- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 79 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 620568d..5741241 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --git a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 5ced786..bfe92f9 100644 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@ -40,7 +40,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable private static final Logger logger = LoggerFactory.getLogger(IncomingStreamingConnection.class); private final int version; -private final Socket socket; +public final Socket socket; private final Set group; public IncomingStreamingConnection(int version, Socket socket, Set group) @@ -71,7 +71,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. -StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, socket, init.isForOutgoing, version); +StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, this, init.isForOutgoing, version); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/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 82320b1..ac8ad79 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -955,10 +955,12 @@ public final class MessagingService implements MessagingServiceMBean return ret; } -private static class SocketThread extends Thread +@VisibleForTesting +public static class SocketThread extends Thread { private final ServerSocket server; -private final Set connections = Sets.newConcurrentHashSet(); +@VisibleForTesting +public final Set connections = Sets.newConcurrentHashSet(); SocketThread(ServerSocket server, String name) { @@ -1145,4 +1147,10 @@ public final class MessagingService implements MessagingServiceMBean } return result; } + +@VisibleForTesting +public List getSocketThreads() +{ +return socketThreads; +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- diff --git a/src/java/org/apache/ca
[06/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6fcf3353 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6fcf3353 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6fcf3353 Branch: refs/heads/trunk Commit: 6fcf3353b65195f0b1d0c1e20c5b8d562a8d21d5 Parents: 5d0d30e 341b3fb Author: Jonathan Ellis Authored: Mon Jun 27 11:13:56 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:56 2016 -0500 -- --
[13/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b448b33 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b448b33 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b448b33 Branch: refs/heads/trunk Commit: 3b448b33785c86f554bc07266de1c39e0ac502d9 Parents: 6fcf335 2811f15 Author: Marcus Eriksson Authored: Tue Jun 28 10:16:49 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:16:49 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 80 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/CHANGES.txt -- diff --cc CHANGES.txt index 8fbdf3b,5741241..8d2062d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --cc src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 79a814d,bfe92f9..ab262c7 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@@ -72,13 -71,11 +72,12 @@@ public class IncomingStreamingConnectio // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. - StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init
[18/21] 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/cb4540ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb4540ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb4540ec Branch: refs/heads/cassandra-3.0 Commit: cb4540ec2775e0d034150fad19d9c570443f17d2 Parents: 2e47636 3b448b3 Author: Marcus Eriksson Authored: Tue Jun 28 10:17:56 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:17:56 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 81 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/CHANGES.txt -- diff --cc CHANGES.txt index 6b0c4f1,8d2062d..314a93e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,37 -2,9 +9,38 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/MessagingService.java -- diff --cc src/java/org/apache/cassandra/net/MessagingService.java index 835beed,8c8a333..fac46eb --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@@ -1229,8 -1188,12 +1231,14 @@@ public final class MessagingService imp public static void validatePartitioner(AbstractBounds bounds) { if (globalPartitioner() != bounds.left.getPartitioner()) -throw new AssertionError()
[03/21] cassandra git commit: backport fix for flaky testExportColumnsWithMetadata from 2.2
backport fix for flaky testExportColumnsWithMetadata from 2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/341b3fbf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/341b3fbf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/341b3fbf Branch: refs/heads/trunk Commit: 341b3fbfb444bc0af81700cdc5a30d5bafea04a1 Parents: 9358e58 Author: Jonathan Ellis Authored: Mon Jun 27 11:13:48 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:48 2016 -0500 -- test/unit/org/apache/cassandra/tools/SSTableExportTest.java | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/341b3fbf/test/unit/org/apache/cassandra/tools/SSTableExportTest.java -- diff --git a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java index c918d6a..16f4bda 100644 --- a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java +++ b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java @@ -296,10 +296,9 @@ public class SSTableExportTest extends SchemaLoader JSONObject serializedDeletionInfo = (JSONObject) meta.get("deletionInfo"); assertNotNull("expecing deletionInfo to be present", serializedDeletionInfo); -assertEquals( -"unexpected serialization format for topLevelDeletion", -"{\"markedForDeleteAt\":0,\"localDeletionTime\":0}", -serializedDeletionInfo.toJSONString()); +assertEquals("unexpected serialization format for topLevelDeletion", + JSONValue.parse("{\"markedForDeleteAt\":0,\"localDeletionTime\":0}"), + serializedDeletionInfo); // check the colums are what we put in JSONArray cols = (JSONArray) row.get("cells");
[17/21] 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/cb4540ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb4540ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb4540ec Branch: refs/heads/trunk Commit: cb4540ec2775e0d034150fad19d9c570443f17d2 Parents: 2e47636 3b448b3 Author: Marcus Eriksson Authored: Tue Jun 28 10:17:56 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:17:56 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 81 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/CHANGES.txt -- diff --cc CHANGES.txt index 6b0c4f1,8d2062d..314a93e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,37 -2,9 +9,38 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/MessagingService.java -- diff --cc src/java/org/apache/cassandra/net/MessagingService.java index 835beed,8c8a333..fac46eb --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@@ -1229,8 -1188,12 +1231,14 @@@ public final class MessagingService imp public static void validatePartitioner(AbstractBounds bounds) { if (globalPartitioner() != bounds.left.getPartitioner()) -throw new AssertionError(); +
[02/21] cassandra git commit: backport fix for flaky testExportColumnsWithMetadata from 2.2
backport fix for flaky testExportColumnsWithMetadata from 2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/341b3fbf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/341b3fbf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/341b3fbf Branch: refs/heads/cassandra-3.9 Commit: 341b3fbfb444bc0af81700cdc5a30d5bafea04a1 Parents: 9358e58 Author: Jonathan Ellis Authored: Mon Jun 27 11:13:48 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:48 2016 -0500 -- test/unit/org/apache/cassandra/tools/SSTableExportTest.java | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/341b3fbf/test/unit/org/apache/cassandra/tools/SSTableExportTest.java -- diff --git a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java index c918d6a..16f4bda 100644 --- a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java +++ b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java @@ -296,10 +296,9 @@ public class SSTableExportTest extends SchemaLoader JSONObject serializedDeletionInfo = (JSONObject) meta.get("deletionInfo"); assertNotNull("expecing deletionInfo to be present", serializedDeletionInfo); -assertEquals( -"unexpected serialization format for topLevelDeletion", -"{\"markedForDeleteAt\":0,\"localDeletionTime\":0}", -serializedDeletionInfo.toJSONString()); +assertEquals("unexpected serialization format for topLevelDeletion", + JSONValue.parse("{\"markedForDeleteAt\":0,\"localDeletionTime\":0}"), + serializedDeletionInfo); // check the colums are what we put in JSONArray cols = (JSONArray) row.get("cells");
[19/21] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.9
Merge branch 'cassandra-3.0' into cassandra-3.9 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8b60fb77 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8b60fb77 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8b60fb77 Branch: refs/heads/trunk Commit: 8b60fb779c32365d1aab4f5ef27403a8ab00cded Parents: 7d4a71f cb4540e Author: Marcus Eriksson Authored: Tue Jun 28 10:21:15 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:23:09 2016 +0200 -- CHANGES.txt | 5 +++ .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 11 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 77 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/CHANGES.txt -- diff --cc CHANGES.txt index 12a6ddb,314a93e..cd13896 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,27 -1,5 +1,32 @@@ -3.0.8 - * Fix potential race in schema during new table creation (CASSANDRA-12083) ++3.9 ++Merged from 2.1: ++ * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) ++ ++ +3.8 + * Improve details in compaction log message (CASSANDRA-12080) + * Allow unset values in CQLSSTableWriter (CASSANDRA-11911) + * Chunk cache to request compressor-compatible buffers if pool space is exhausted (CASSANDRA-11993) + * Remove DatabaseDescriptor dependencies from SequentialWriter (CASSANDRA-11579) + * Move skip_stop_words filter before stemming (CASSANDRA-12078) + * Support seek() in EncryptedFileSegmentInputStream (CASSANDRA-11957) + * SSTable tools mishandling LocalPartitioner (CASSANDRA-12002) + * When SEPWorker assigned work, set thread name to match pool (CASSANDRA-11966) + * Add cross-DC latency metrics (CASSANDRA-11596) + * Allow terms in selection clause (CASSANDRA-10783) + * Add bind variables to trace (CASSANDRA-11719) + * Switch counter shards' clock to timestamps (CASSANDRA-9811) + * Introduce HdrHistogram and response/service/wait separation to stress tool (CASSANDRA-11853) + * entry-weighers in QueryProcessor should respect partitionKeyBindIndexes field (CASSANDRA-11718) + * Support older ant versions (CASSANDRA-11807) + * Estimate compressed on disk size when deciding if sstable size limit reached (CASSANDRA-11623) + * cassandra-stress profiles should support case sensitive schemas (CASSANDRA-11546) + * Remove DatabaseDescriptor dependency from FileUtils (CASSANDRA-11578) + * Faster streaming (CASSANDRA-9766) + * Add prepared query parameter to trace for "Execute CQL3 prepared query" session (CASSANDRA-11425) + * Add repaired percentage metric (CASSANDRA-11503) + * Add Change-Data-Capture (CASSANDRA-8844) +Merged from 3.0: * cqlsh: fix error handling in rare COPY FROM failure scenario (CASSANDRA-12070) * Disable autocompaction during drain (CASSANDRA-11878) * Add a metrics timer to MemtablePool and use it to track time spent blocked on memory in MemtableAllocator (CASSANDRA-11327) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/net/MessagingService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/streaming/StreamResultFuture.java -- diff --cc src/java/org/apache/cassandra/streaming/StreamResultFuture.java index ab297ed,b299b87..71ca9b1 --- a/src/java/org/apache/cassandra/streaming/StreamResultFuture.java +++ b/src/java/org/apache/cassandra/streaming/StreamResultFuture.java @@@ -28,7 -27,7 +28,8 @@@ import com.google.common.util.concurren import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.cassandra.net.IncomingStreamingConnection; +import org.apache.cassandra.utils.FBUtilities; /** * A future on the result ({@link StreamState}) of a streaming plan.
[04/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6fcf3353 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6fcf3353 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6fcf3353 Branch: refs/heads/cassandra-3.9 Commit: 6fcf3353b65195f0b1d0c1e20c5b8d562a8d21d5 Parents: 5d0d30e 341b3fb Author: Jonathan Ellis Authored: Mon Jun 27 11:13:56 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:56 2016 -0500 -- --
[08/21] cassandra git commit: Remove finished incoming streaming connections from MessagingService
Remove finished incoming streaming connections from MessagingService patch by Paulo Motta; reviewed by Marcus Eriksson for CASSANDRA-11854 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2811f15b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2811f15b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2811f15b Branch: refs/heads/cassandra-2.1 Commit: 2811f15bc9117fed4fb38de490d25d68df4e85b7 Parents: 341b3fb Author: Paulo Motta Authored: Mon Jun 27 12:17:33 2016 -0300 Committer: Marcus Eriksson Committed: Tue Jun 28 10:13:24 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 4 +- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 79 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 620568d..5741241 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --git a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 5ced786..bfe92f9 100644 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@ -40,7 +40,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable private static final Logger logger = LoggerFactory.getLogger(IncomingStreamingConnection.class); private final int version; -private final Socket socket; +public final Socket socket; private final Set group; public IncomingStreamingConnection(int version, Socket socket, Set group) @@ -71,7 +71,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. -StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, socket, init.isForOutgoing, version); +StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, this, init.isForOutgoing, version); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/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 82320b1..ac8ad79 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -955,10 +955,12 @@ public final class MessagingService implements MessagingServiceMBean return ret; } -private static class SocketThread extends Thread +@VisibleForTesting +public static class SocketThread extends Thread { private final ServerSocket server; -private final Set connections = Sets.newConcurrentHashSet(); +@VisibleForTesting +public final Set connections = Sets.newConcurrentHashSet(); SocketThread(ServerSocket server, String name) { @@ -1145,4 +1147,10 @@ public final class MessagingService implements MessagingServiceMBean } return result; } + +@VisibleForTesting +public List getSocketThreads() +{ +return socketThreads; +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- diff --git a/src/java/org/a
[12/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b448b33 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b448b33 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b448b33 Branch: refs/heads/cassandra-3.0 Commit: 3b448b33785c86f554bc07266de1c39e0ac502d9 Parents: 6fcf335 2811f15 Author: Marcus Eriksson Authored: Tue Jun 28 10:16:49 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:16:49 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 80 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/CHANGES.txt -- diff --cc CHANGES.txt index 8fbdf3b,5741241..8d2062d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --cc src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 79a814d,bfe92f9..ab262c7 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@@ -72,13 -71,11 +72,12 @@@ public class IncomingStreamingConnectio // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. - StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.descripti
[01/21] cassandra git commit: backport fix for flaky testExportColumnsWithMetadata from 2.2
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 341b3fbfb -> 2811f15bc refs/heads/cassandra-2.2 6fcf3353b -> 3b448b337 refs/heads/cassandra-3.0 2e4763691 -> cb4540ec2 refs/heads/cassandra-3.9 7d4a71f63 -> 8b60fb779 refs/heads/trunk 013434833 -> 9ff299e40 backport fix for flaky testExportColumnsWithMetadata from 2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/341b3fbf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/341b3fbf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/341b3fbf Branch: refs/heads/cassandra-3.0 Commit: 341b3fbfb444bc0af81700cdc5a30d5bafea04a1 Parents: 9358e58 Author: Jonathan Ellis Authored: Mon Jun 27 11:13:48 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:48 2016 -0500 -- test/unit/org/apache/cassandra/tools/SSTableExportTest.java | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/341b3fbf/test/unit/org/apache/cassandra/tools/SSTableExportTest.java -- diff --git a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java index c918d6a..16f4bda 100644 --- a/test/unit/org/apache/cassandra/tools/SSTableExportTest.java +++ b/test/unit/org/apache/cassandra/tools/SSTableExportTest.java @@ -296,10 +296,9 @@ public class SSTableExportTest extends SchemaLoader JSONObject serializedDeletionInfo = (JSONObject) meta.get("deletionInfo"); assertNotNull("expecing deletionInfo to be present", serializedDeletionInfo); -assertEquals( -"unexpected serialization format for topLevelDeletion", -"{\"markedForDeleteAt\":0,\"localDeletionTime\":0}", -serializedDeletionInfo.toJSONString()); +assertEquals("unexpected serialization format for topLevelDeletion", + JSONValue.parse("{\"markedForDeleteAt\":0,\"localDeletionTime\":0}"), + serializedDeletionInfo); // check the colums are what we put in JSONArray cols = (JSONArray) row.get("cells");
[09/21] cassandra git commit: Remove finished incoming streaming connections from MessagingService
Remove finished incoming streaming connections from MessagingService patch by Paulo Motta; reviewed by Marcus Eriksson for CASSANDRA-11854 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2811f15b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2811f15b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2811f15b Branch: refs/heads/cassandra-3.0 Commit: 2811f15bc9117fed4fb38de490d25d68df4e85b7 Parents: 341b3fb Author: Paulo Motta Authored: Mon Jun 27 12:17:33 2016 -0300 Committer: Marcus Eriksson Committed: Tue Jun 28 10:13:24 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 4 +- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 79 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 620568d..5741241 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --git a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 5ced786..bfe92f9 100644 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@ -40,7 +40,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable private static final Logger logger = LoggerFactory.getLogger(IncomingStreamingConnection.class); private final int version; -private final Socket socket; +public final Socket socket; private final Set group; public IncomingStreamingConnection(int version, Socket socket, Set group) @@ -71,7 +71,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. -StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, socket, init.isForOutgoing, version); +StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, this, init.isForOutgoing, version); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/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 82320b1..ac8ad79 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -955,10 +955,12 @@ public final class MessagingService implements MessagingServiceMBean return ret; } -private static class SocketThread extends Thread +@VisibleForTesting +public static class SocketThread extends Thread { private final ServerSocket server; -private final Set connections = Sets.newConcurrentHashSet(); +@VisibleForTesting +public final Set connections = Sets.newConcurrentHashSet(); SocketThread(ServerSocket server, String name) { @@ -1145,4 +1147,10 @@ public final class MessagingService implements MessagingServiceMBean } return result; } + +@VisibleForTesting +public List getSocketThreads() +{ +return socketThreads; +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- diff --git a/src/java/org/a
[10/21] cassandra git commit: Remove finished incoming streaming connections from MessagingService
Remove finished incoming streaming connections from MessagingService patch by Paulo Motta; reviewed by Marcus Eriksson for CASSANDRA-11854 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2811f15b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2811f15b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2811f15b Branch: refs/heads/cassandra-3.9 Commit: 2811f15bc9117fed4fb38de490d25d68df4e85b7 Parents: 341b3fb Author: Paulo Motta Authored: Mon Jun 27 12:17:33 2016 -0300 Committer: Marcus Eriksson Committed: Tue Jun 28 10:13:24 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 4 +- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 79 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 620568d..5741241 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --git a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 5ced786..bfe92f9 100644 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@ -40,7 +40,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable private static final Logger logger = LoggerFactory.getLogger(IncomingStreamingConnection.class); private final int version; -private final Socket socket; +public final Socket socket; private final Set group; public IncomingStreamingConnection(int version, Socket socket, Set group) @@ -71,7 +71,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. -StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, socket, init.isForOutgoing, version); +StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, this, init.isForOutgoing, version); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/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 82320b1..ac8ad79 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -955,10 +955,12 @@ public final class MessagingService implements MessagingServiceMBean return ret; } -private static class SocketThread extends Thread +@VisibleForTesting +public static class SocketThread extends Thread { private final ServerSocket server; -private final Set connections = Sets.newConcurrentHashSet(); +@VisibleForTesting +public final Set connections = Sets.newConcurrentHashSet(); SocketThread(ServerSocket server, String name) { @@ -1145,4 +1147,10 @@ public final class MessagingService implements MessagingServiceMBean } return result; } + +@VisibleForTesting +public List getSocketThreads() +{ +return socketThreads; +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- diff --git a/src/java/org/a
[21/21] cassandra git commit: Merge branch 'cassandra-3.9' into trunk
Merge branch 'cassandra-3.9' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9ff299e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9ff299e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9ff299e4 Branch: refs/heads/trunk Commit: 9ff299e405cbae5eb043a4fc0dadb53fec5cfafc Parents: 0134348 8b60fb7 Author: Marcus Eriksson Authored: Tue Jun 28 10:23:33 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:23:33 2016 +0200 -- CHANGES.txt | 5 +++ .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 11 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 77 insertions(+), 22 deletions(-) --
[07/21] cassandra git commit: Remove finished incoming streaming connections from MessagingService
Remove finished incoming streaming connections from MessagingService patch by Paulo Motta; reviewed by Marcus Eriksson for CASSANDRA-11854 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2811f15b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2811f15b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2811f15b Branch: refs/heads/cassandra-2.2 Commit: 2811f15bc9117fed4fb38de490d25d68df4e85b7 Parents: 341b3fb Author: Paulo Motta Authored: Mon Jun 27 12:17:33 2016 -0300 Committer: Marcus Eriksson Committed: Tue Jun 28 10:13:24 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 4 +- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 79 insertions(+), 27 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 620568d..5741241 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --git a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 5ced786..bfe92f9 100644 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@ -40,7 +40,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable private static final Logger logger = LoggerFactory.getLogger(IncomingStreamingConnection.class); private final int version; -private final Socket socket; +public final Socket socket; private final Set group; public IncomingStreamingConnection(int version, Socket socket, Set group) @@ -71,7 +71,7 @@ public class IncomingStreamingConnection extends Thread implements Closeable // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. -StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, socket, init.isForOutgoing, version); +StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.description, init.from, this, init.isForOutgoing, version); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/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 82320b1..ac8ad79 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -955,10 +955,12 @@ public final class MessagingService implements MessagingServiceMBean return ret; } -private static class SocketThread extends Thread +@VisibleForTesting +public static class SocketThread extends Thread { private final ServerSocket server; -private final Set connections = Sets.newConcurrentHashSet(); +@VisibleForTesting +public final Set connections = Sets.newConcurrentHashSet(); SocketThread(ServerSocket server, String name) { @@ -1145,4 +1147,10 @@ public final class MessagingService implements MessagingServiceMBean } return result; } + +@VisibleForTesting +public List getSocketThreads() +{ +return socketThreads; +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2811f15b/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- diff --git a/src/java/org/a
[20/21] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.9
Merge branch 'cassandra-3.0' into cassandra-3.9 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8b60fb77 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8b60fb77 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8b60fb77 Branch: refs/heads/cassandra-3.9 Commit: 8b60fb779c32365d1aab4f5ef27403a8ab00cded Parents: 7d4a71f cb4540e Author: Marcus Eriksson Authored: Tue Jun 28 10:21:15 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:23:09 2016 +0200 -- CHANGES.txt | 5 +++ .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 11 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 77 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/CHANGES.txt -- diff --cc CHANGES.txt index 12a6ddb,314a93e..cd13896 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,27 -1,5 +1,32 @@@ -3.0.8 - * Fix potential race in schema during new table creation (CASSANDRA-12083) ++3.9 ++Merged from 2.1: ++ * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) ++ ++ +3.8 + * Improve details in compaction log message (CASSANDRA-12080) + * Allow unset values in CQLSSTableWriter (CASSANDRA-11911) + * Chunk cache to request compressor-compatible buffers if pool space is exhausted (CASSANDRA-11993) + * Remove DatabaseDescriptor dependencies from SequentialWriter (CASSANDRA-11579) + * Move skip_stop_words filter before stemming (CASSANDRA-12078) + * Support seek() in EncryptedFileSegmentInputStream (CASSANDRA-11957) + * SSTable tools mishandling LocalPartitioner (CASSANDRA-12002) + * When SEPWorker assigned work, set thread name to match pool (CASSANDRA-11966) + * Add cross-DC latency metrics (CASSANDRA-11596) + * Allow terms in selection clause (CASSANDRA-10783) + * Add bind variables to trace (CASSANDRA-11719) + * Switch counter shards' clock to timestamps (CASSANDRA-9811) + * Introduce HdrHistogram and response/service/wait separation to stress tool (CASSANDRA-11853) + * entry-weighers in QueryProcessor should respect partitionKeyBindIndexes field (CASSANDRA-11718) + * Support older ant versions (CASSANDRA-11807) + * Estimate compressed on disk size when deciding if sstable size limit reached (CASSANDRA-11623) + * cassandra-stress profiles should support case sensitive schemas (CASSANDRA-11546) + * Remove DatabaseDescriptor dependency from FileUtils (CASSANDRA-11578) + * Faster streaming (CASSANDRA-9766) + * Add prepared query parameter to trace for "Execute CQL3 prepared query" session (CASSANDRA-11425) + * Add repaired percentage metric (CASSANDRA-11503) + * Add Change-Data-Capture (CASSANDRA-8844) +Merged from 3.0: * cqlsh: fix error handling in rare COPY FROM failure scenario (CASSANDRA-12070) * Disable autocompaction during drain (CASSANDRA-11878) * Add a metrics timer to MemtablePool and use it to track time spent blocked on memory in MemtableAllocator (CASSANDRA-11327) http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/net/MessagingService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/streaming/ConnectionHandler.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8b60fb77/src/java/org/apache/cassandra/streaming/StreamResultFuture.java -- diff --cc src/java/org/apache/cassandra/streaming/StreamResultFuture.java index ab297ed,b299b87..71ca9b1 --- a/src/java/org/apache/cassandra/streaming/StreamResultFuture.java +++ b/src/java/org/apache/cassandra/streaming/StreamResultFuture.java @@@ -28,7 -27,7 +28,8 @@@ import com.google.common.util.concurren import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.cassandra.net.IncomingStreamingConnection; +import org.apache.cassandra.utils.FBUtilities; /** * A future on the result ({@link StreamState}) of a streaming plan.
[14/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3b448b33 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b448b33 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b448b33 Branch: refs/heads/cassandra-3.9 Commit: 3b448b33785c86f554bc07266de1c39e0ac502d9 Parents: 6fcf335 2811f15 Author: Marcus Eriksson Authored: Tue Jun 28 10:16:49 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:16:49 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 23 6 files changed, 80 insertions(+), 29 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/CHANGES.txt -- diff --cc CHANGES.txt index 8fbdf3b,5741241..8d2062d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) * Avoid marking too many sstables as repaired (CASSANDRA-11696) http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b448b33/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- diff --cc src/java/org/apache/cassandra/net/IncomingStreamingConnection.java index 79a814d,bfe92f9..ab262c7 --- a/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java @@@ -72,13 -71,11 +72,12 @@@ public class IncomingStreamingConnectio // The receiving side distinguish two connections by looking at StreamInitMessage#isForOutgoing. // Note: we cannot use the same socket for incoming and outgoing streams because we want to // parallelize said streams and the socket is blocking, so we might deadlock. - StreamResultFuture.initReceivingSide(init.sessionIndex, init.planId, init.descripti
[16/21] 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/cb4540ec Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb4540ec Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb4540ec Branch: refs/heads/cassandra-3.9 Commit: cb4540ec2775e0d034150fad19d9c570443f17d2 Parents: 2e47636 3b448b3 Author: Marcus Eriksson Authored: Tue Jun 28 10:17:56 2016 +0200 Committer: Marcus Eriksson Committed: Tue Jun 28 10:17:56 2016 +0200 -- CHANGES.txt | 1 + .../net/IncomingStreamingConnection.java| 7 ++-- .../apache/cassandra/net/MessagingService.java | 12 +- .../cassandra/streaming/ConnectionHandler.java | 39 +++- .../cassandra/streaming/StreamResultFuture.java | 27 +++--- .../streaming/StreamingTransferTest.java| 25 - 6 files changed, 81 insertions(+), 30 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/CHANGES.txt -- diff --cc CHANGES.txt index 6b0c4f1,8d2062d..314a93e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,37 -2,9 +9,38 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/cb4540ec/src/java/org/apache/cassandra/net/MessagingService.java -- diff --cc src/java/org/apache/cassandra/net/MessagingService.java index 835beed,8c8a333..fac46eb --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@@ -1229,8 -1188,12 +1231,14 @@@ public final class MessagingService imp public static void validatePartitioner(AbstractBounds bounds) { if (globalPartitioner() != bounds.left.getPartitioner()) -throw new AssertionError()
[05/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6fcf3353 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6fcf3353 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6fcf3353 Branch: refs/heads/cassandra-3.0 Commit: 6fcf3353b65195f0b1d0c1e20c5b8d562a8d21d5 Parents: 5d0d30e 341b3fb Author: Jonathan Ellis Authored: Mon Jun 27 11:13:56 2016 -0500 Committer: Jonathan Ellis Committed: Mon Jun 27 11:13:56 2016 -0500 -- --
[jira] [Updated] (CASSANDRA-11854) Remove finished streaming connections from MessagingService
[ https://issues.apache.org/jira/browse/CASSANDRA-11854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-11854: Resolution: Fixed Fix Version/s: 3.9 3.0.8 2.2.7 2.1.15 Status: Resolved (was: Patch Available) +1, committed > Remove finished streaming connections from MessagingService > --- > > Key: CASSANDRA-11854 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11854 > Project: Cassandra > Issue Type: Bug >Reporter: Paulo Motta >Assignee: Paulo Motta > Fix For: 2.1.15, 2.2.7, 3.0.8, 3.9 > > Attachments: oom.png > > > When a new {{IncomingStreamingConnection}} is created, [we register it in the > connections > map|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/net/MessagingService.java#L1109] > of {{MessagingService}}, but we [only remove it if there is an > exception|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/net/IncomingStreamingConnection.java#L83] > while attaching the socket to the stream session. > On nodes with SSL and large number of vnodes, after many repair sessions > these old connections can accumulate and cause OOM (heap dump attached). > The connection should be removed from the connections map after if it's > finished in order to be garbage collected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
Stefano Ortolani created CASSANDRA-12100: Summary: Compactions are stuck after TRUNCATE Key: CASSANDRA-12100 URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 Project: Cassandra Issue Type: Bug Reporter: Stefano Ortolani Hi, since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when truncating the column family. I verified this on all nodes of the cluster. Pending compactions seem to disappear after restarting the node. {noformat} root@node10:~# nodetool -h localhost compactionstats pending tasks: 6 id compaction type keyspace table completed totalunit progress 24e1ad30-3cac-11e6-870d-5de740693258Compaction schema table_1 0 57558382 bytes 0.00% 2be2e3b0-3cac-11e6-870d-5de740693258Compaction schema table_2 0 65063705 bytes 0.00% 54de38f0-3cac-11e6-870d-5de740693258Compaction schema table_3 0 187031 bytes 0.00% 31926ce0-3cac-11e6-870d-5de740693258Compaction schema table_4 0 42951119 bytes 0.00% 3911ad00-3cac-11e6-870d-5de740693258Compaction schema table_5 0 25918949 bytes 0.00% 3e6a8ab0-3cac-11e6-870d-5de740693258Compaction schema table_6 0 65466210 bytes 0.00% Active compaction remaining time : 0h00m15s {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352614#comment-15352614 ] Stefano Ortolani commented on CASSANDRA-12100: -- I see nothing weird in the logs but the following two things: system.log {noformat} INFO [SharedPool-Worker-2] 2016-06-27 22:12:06,323 Message.java:605 - Unexpected exception during request; channel = [id: 0x6f0c2f56, /10.0.0.8:47592 :> /10.0.0.5:9042] java.io.IOException: Error while read(...): Connection reset by peer at io.netty.channel.epoll.Native.readAddress(Native Method) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:675) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] INFO [CompactionExecutor:3] 2016-06-27 22:45:47,213 AutoSavingCache.java:386 - Saved CounterCache (1 items) in 169 ms INFO [CompactionExecutor:4] 2016-06-27 22:45:47,713 AutoSavingCache.java:386 - Saved KeyCache (15158 items) in 671 ms INFO [IndexSummaryManager:1] 2016-06-27 22:45:58,397 IndexSummaryRedistribution.java:74 - Redistributing index summaries INFO [IndexSummaryManager:1] 2016-06-27 23:45:58,440 IndexSummaryRedistribution.java:74 - Redistributing index summaries INFO [SharedPool-Worker-17] 2016-06-28 00:33:57,301 Message.java:605 - Unexpected exception during request; channel = [id: 0x52e03a04, /10.0.0.8:53218 :> /10.0.0.5:9042] java.io.IOException: Error while read(...): Connection reset by peer at io.netty.channel.epoll.Native.readAddress(Native Method) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:675) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] INFO [SharedPool-Worker-4] 2016-06-28 00:33:57,687 Message.java:605 - Unexpected exception during request; channel = [id: 0x21eeb0b8, /10.0.0.8:53251 :> /10.0.0.5:9042] {noformat} debug.log {noformat} DEBUG [GossipStage:1] 2016-06-27 22:12:06,112 FailureDetector.java:456 - Ignoring interval time of 2713433121 for /10.0.0.7 INFO [SharedPool-Worker-2] 2016-06-27 22:12:06,323 Message.java:605 - Unexpected exception during request; channel = [id: 0x6f0c2f56, /10.0.0.8:47592 :> /10.0.0.5:9042] {noformat} > Compactions are stuck after TRUNCATE > > > Key: CASSANDRA-12100 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 > Project: Cassandra > Issue Type: Bug >Reporter: Stefano Ortolani > > Hi, > since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when > truncating the column family. I verified this on all nodes of the cluster. > Pending compactions seem to disappear after restarting the node. > {noformat} > root@node10:~# nodetool -h localhost compactionstats > pending tasks: 6 > id compaction type > keyspacetable completed totalunit progress >24e1ad30-3cac-11e6-870d-5de740693258Compaction > schema table_1 0 57558382 bytes 0.00% >2be2e3b0-3cac-11e6-870d-5de740693258Compaction > schema table_2 0
[jira] [Updated] (CASSANDRA-11996) SSTableSet.CANONICAL can miss sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-11996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-11996: Status: Patch Available (was: Open) Reverted to the 2.2 way of getting canonical sstables ||branch||testall||dtest|| |[marcuse/canonical|https://github.com/krummas/cassandra/tree/marcuse/canonical]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-canonical-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-canonical-dtest]| |[marcuse/canonical-trunk|https://github.com/krummas/cassandra/tree/marcuse/canonical-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-canonical-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/krummas/job/krummas-marcuse-canonical-trunk-dtest]| > SSTableSet.CANONICAL can miss sstables > -- > > Key: CASSANDRA-11996 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11996 > Project: Cassandra > Issue Type: Bug >Reporter: Marcus Eriksson >Assignee: Marcus Eriksson >Priority: Critical > Fix For: 3.0.x, 3.x > > > There is a race where we might miss sstables in SSTableSet.CANONICAL when we > finish up a compaction. > Reproducing unit test pushed > [here|https://github.com/krummas/cassandra/commit/1292aaa61b89730cff0c022ed1262f45afd493e5] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352614#comment-15352614 ] Stefano Ortolani edited comment on CASSANDRA-12100 at 6/28/16 8:57 AM: --- I see nothing weird in the logs but the following two things: {code:title=system.log|borderStyle=solid} INFO [SharedPool-Worker-2] 2016-06-27 22:12:06,323 Message.java:605 - Unexpected exception during request; channel = [id: 0x6f0c2f56, /10.0.0.8:47592 :> /10.0.0.5:9042] java.io.IOException: Error while read(...): Connection reset by peer at io.netty.channel.epoll.Native.readAddress(Native Method) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:675) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] INFO [CompactionExecutor:3] 2016-06-27 22:45:47,213 AutoSavingCache.java:386 - Saved CounterCache (1 items) in 169 ms INFO [CompactionExecutor:4] 2016-06-27 22:45:47,713 AutoSavingCache.java:386 - Saved KeyCache (15158 items) in 671 ms INFO [IndexSummaryManager:1] 2016-06-27 22:45:58,397 IndexSummaryRedistribution.java:74 - Redistributing index summaries INFO [IndexSummaryManager:1] 2016-06-27 23:45:58,440 IndexSummaryRedistribution.java:74 - Redistributing index summaries INFO [SharedPool-Worker-17] 2016-06-28 00:33:57,301 Message.java:605 - Unexpected exception during request; channel = [id: 0x52e03a04, /10.0.0.8:53218 :> /10.0.0.5:9042] java.io.IOException: Error while read(...): Connection reset by peer at io.netty.channel.epoll.Native.readAddress(Native Method) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:675) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:264) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91] INFO [SharedPool-Worker-4] 2016-06-28 00:33:57,687 Message.java:605 - Unexpected exception during request; channel = [id: 0x21eeb0b8, /10.0.0.8:53251 :> /10.0.0.5:9042] {code} {code:title=debug.log|borderStyle=solid} DEBUG [GossipStage:1] 2016-06-27 22:12:06,112 FailureDetector.java:456 - Ignoring interval time of 2713433121 for /10.0.0.7 INFO [SharedPool-Worker-2] 2016-06-27 22:12:06,323 Message.java:605 - Unexpected exception during request; channel = [id: 0x6f0c2f56, /10.0.0.8:47592 :> /10.0.0.5:9042] {code} was (Author: ostefano): I see nothing weird in the logs but the following two things: system.log {noformat} INFO [SharedPool-Worker-2] 2016-06-27 22:12:06,323 Message.java:605 - Unexpected exception during request; channel = [id: 0x6f0c2f56, /10.0.0.8:47592 :> /10.0.0.5:9042] java.io.IOException: Error while read(...): Connection reset by peer at io.netty.channel.epoll.Native.readAddress(Native Method) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.doReadBytes(EpollSocketChannel.java:675) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollSocketChannel$EpollSocketUnsafe.epollInReady(EpollSocketChannel.java:714) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:326) ~[netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.epoll.EpollEventLoop.run(E
[jira] [Commented] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352641#comment-15352641 ] Stefano Ortolani commented on CASSANDRA-12100: -- Another weird bit. It seems that before restarting CFSTATS shows no SSTABLES associated to the CF. {noformat} root@node13:~# nodetool -h localhost cfstats schema.table_5 Keyspace: schema Read Count: 9 Read Latency: 0.06612 ms. Write Count: 293023 Write Latency: 0.03773653603983305 ms. Pending Flushes: 0 Table: table_5 SSTable count: 0 SSTables in each level: [0, 0, 0, 0, 0, 0, 0, 0, 0] Space used (live): 0 Space used (total): 0 Space used by snapshots (total): 28906766 Off heap memory used (total): 0 SSTable Compression Ratio: 0.0 Number of keys (estimate): 1530 Memtable cell count: 193038 Memtable data size: 459060 Memtable off heap memory used: 0 Memtable switch count: 2 Local read count: 9 Local read latency: 0.073 ms Local write count: 293023 Local write latency: 0.042 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.0 Bloom filter space used: 0 Bloom filter off heap memory used: 0 Index summary off heap memory used: 0 Compression metadata off heap memory used: 0 Compacted partition minimum bytes: 0 Compacted partition maximum bytes: 0 Compacted partition mean bytes: 0 Average live cells per slice (last five minutes): 1.1993243243243243 Maximum live cells per slice (last five minutes): 60 Average tombstones per slice (last five minutes): 1.0 Maximum tombstones per slice (last five minutes): 1 {noformat} Afterwards the whole thing is a bit different: {noformat} root@node13:~# nodetool -h localhost cfstats schema.table_5 Keyspace: schema Read Count: 0 Read Latency: NaN ms. Write Count: 432 Write Latency: 0.023986111 ms. Pending Flushes: 0 Table: table_5 SSTable count: 1 SSTables in each level: [1, 0, 0, 0, 0, 0, 0, 0, 0] Space used (live): 262893 Space used (total): 262893 Space used by snapshots (total): 28906766 Off heap memory used (total): 1344 SSTable Compression Ratio: 0.6389608871615797 Number of keys (estimate): 1551 Memtable cell count: 432 Memtable data size: 4518 Memtable off heap memory used: 0 Memtable switch count: 0 Local read count: 0 Local read latency: NaN ms Local write count: 432 Local write latency: 0.027 ms Pending flushes: 0 Bloom filter false positives: 0 Bloom filter false ratio: 0.0 Bloom filter space used: 968 Bloom filter off heap memory used: 960 Index summary off heap memory used: 336 Compression metadata off heap memory used: 48 Compacted partition minimum bytes: 30 Compacted partition maximum bytes: 51012 Compacted partition mean bytes: 242 Average live cells per slice (last five minutes): NaN Maximum live cells per slice (last five minutes): 0 Average tombstones per slice (last five minutes): NaN Maximum tombstones per slice (last five minutes): 0 {noformat} > Compactions are stuck after TRUNCATE > > > Key: CASSANDRA-12100 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 > Project: Cassandra > Issue Type: Bug >Reporter: Stefano Ortolani > > Hi, > since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when > truncating the column family. I verified this on all nodes of the cluster. > Pending compactions seem to disappear after restarting the node. > {noformat} > root@node10:~# nodetool -h localhost compactionstats > pending tasks: 6 > id compaction type > keyspacetable completed totalunit progress >24e1ad30-3cac-11e6-870d-5de740693258Compaction > schema table_1 0 57558382 bytes 0.00% >2be2e3b0-3cac-11e6-870d-
[jira] [Updated] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefano Ortolani updated CASSANDRA-12100: - Since Version: 3.0.7 > Compactions are stuck after TRUNCATE > > > Key: CASSANDRA-12100 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 > Project: Cassandra > Issue Type: Bug >Reporter: Stefano Ortolani > > Hi, > since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when > truncating the column family. I verified this on all nodes of the cluster. > Pending compactions seem to disappear after restarting the node. > {noformat} > root@node10:~# nodetool -h localhost compactionstats > pending tasks: 6 > id compaction type > keyspacetable completed totalunit progress >24e1ad30-3cac-11e6-870d-5de740693258Compaction > schema table_1 0 57558382 bytes 0.00% >2be2e3b0-3cac-11e6-870d-5de740693258Compaction > schema table_2 0 65063705 bytes 0.00% >54de38f0-3cac-11e6-870d-5de740693258Compaction > schema table_3 0 187031 bytes 0.00% >31926ce0-3cac-11e6-870d-5de740693258Compaction > schema table_4 0 42951119 bytes 0.00% >3911ad00-3cac-11e6-870d-5de740693258Compaction > schema table_5 0 25918949 bytes 0.00% >3e6a8ab0-3cac-11e6-870d-5de740693258Compaction > schema table_6 0 65466210 bytes 0.00% > Active compaction remaining time : 0h00m15s > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11349) MerkleTree mismatch when multiple range tombstones exists for the same partition and interval
[ https://issues.apache.org/jira/browse/CASSANDRA-11349?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352747#comment-15352747 ] Sylvain Lebresne commented on CASSANDRA-11349: -- Had a look here, and I'm more comfortable with sticking to [~blambov] approach. For 2.1 and 2.2, we're now in "only critical bug fixes" and running things through RTL definitively changes things too much for my comfort. That imply I'm fine not fixing every possible problems if that gets us too far (especially since it's properly fixed in 3.0 and not that many people seems to have reported this). And Branimir's approach seems to be making a good enough impact in practice. So [~blambov], could you rebase your patch for 2.1 and 2.2 and run CI. After which, if tests are good, I'm +1 committing. > MerkleTree mismatch when multiple range tombstones exists for the same > partition and interval > - > > Key: CASSANDRA-11349 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11349 > Project: Cassandra > Issue Type: Bug >Reporter: Fabien Rousseau >Assignee: Stefan Podkowinski > Labels: repair > Fix For: 2.1.x, 2.2.x > > Attachments: 11349-2.1-v2.patch, 11349-2.1-v3.patch, > 11349-2.1-v4.patch, 11349-2.1.patch, 11349-2.2-v4.patch > > > We observed that repair, for some of our clusters, streamed a lot of data and > many partitions were "out of sync". > Moreover, the read repair mismatch ratio is around 3% on those clusters, > which is really high. > After investigation, it appears that, if two range tombstones exists for a > partition for the same range/interval, they're both included in the merkle > tree computation. > But, if for some reason, on another node, the two range tombstones were > already compacted into a single range tombstone, this will result in a merkle > tree difference. > Currently, this is clearly bad because MerkleTree differences are dependent > on compactions (and if a partition is deleted and created multiple times, the > only way to ensure that repair "works correctly"/"don't overstream data" is > to major compact before each repair... which is not really feasible). > Below is a list of steps allowing to easily reproduce this case: > {noformat} > ccm create test -v 2.1.13 -n 2 -s > ccm node1 cqlsh > CREATE KEYSPACE test_rt WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 2}; > USE test_rt; > CREATE TABLE IF NOT EXISTS table1 ( > c1 text, > c2 text, > c3 float, > c4 float, > PRIMARY KEY ((c1), c2) > ); > INSERT INTO table1 (c1, c2, c3, c4) VALUES ( 'a', 'b', 1, 2); > DELETE FROM table1 WHERE c1 = 'a' AND c2 = 'b'; > ctrl ^d > # now flush only one of the two nodes > ccm node1 flush > ccm node1 cqlsh > USE test_rt; > INSERT INTO table1 (c1, c2, c3, c4) VALUES ( 'a', 'b', 1, 3); > DELETE FROM table1 WHERE c1 = 'a' AND c2 = 'b'; > ctrl ^d > ccm node1 repair > # now grep the log and observe that there was some inconstencies detected > between nodes (while it shouldn't have detected any) > ccm node1 showlog | grep "out of sync" > {noformat} > Consequences of this are a costly repair, accumulating many small SSTables > (up to thousands for a rather short period of time when using VNodes, the > time for compaction to absorb those small files), but also an increased size > on disk. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-12016) Create MessagingService mocking classes
[ https://issues.apache.org/jira/browse/CASSANDRA-12016?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352904#comment-15352904 ] Paulo Motta commented on CASSANDRA-12016: - Overall I like the approach and I think it can be a good complement (not replacement) to dtests, reducing the overhead to implement unit tests that need to interact with the MessagingService and allowing finer grained testing of local state of distributed protocols like repair, which is much trickier to do with dtests. It's also very lightweight, reusing the existing message sink while making it cleaner/easier to use. > Create MessagingService mocking classes > --- > > Key: CASSANDRA-12016 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12016 > Project: Cassandra > Issue Type: New Feature > Components: Testing >Reporter: Stefan Podkowinski >Assignee: Stefan Podkowinski > > Interactions between clients and nodes in the cluster are taking place by > exchanging messages through the {{MessagingService}}. Black box testing for > message based systems is usually pretty easy, as we're just dealing with > messages in/out. My suggestion would be to add tests that make use of this > fact by mocking message exchanges via MessagingService. Given the right use > case, this would turn out to be a much simpler and more efficient alternative > for dtests. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-3486) Node Tool command to stop repair
[ https://issues.apache.org/jira/browse/CASSANDRA-3486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15352907#comment-15352907 ] Paulo Motta commented on CASSANDRA-3486: [~spo...@gmail.com] well done! I think this is going to be useful for testing this ticket, specially when we add acks to abort, since we will need to deal with timeout and error handling, etc, which is generally a pain to do via dtests. Thanks! > Node Tool command to stop repair > > > Key: CASSANDRA-3486 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3486 > Project: Cassandra > Issue Type: Improvement > Components: Tools > Environment: JVM >Reporter: Vijay >Assignee: Paulo Motta >Priority: Minor > Labels: repair > Fix For: 2.1.x > > Attachments: 0001-stop-repair-3583.patch > > > After CASSANDRA-1740, If the validation compaction is stopped then the repair > will hang. This ticket will allow users to kill the original repair. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[09/17] cassandra git commit: Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2
Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2 * commit '017ec3e99e704db5e1a36ad153af08d6e7eca523': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6555a87b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6555a87b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6555a87b Branch: refs/heads/trunk Commit: 6555a87bde4daeb8bd5d9558595a367ec6bc061d Parents: 3b448b3 017ec3e Author: Sylvain Lebresne Authored: Tue Jun 28 15:17:40 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:18:27 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/CHANGES.txt -- diff --cc CHANGES.txt index 8d2062d,feeaded..9f42d98 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index fa82fa7,4340d42..c702679 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -331,15 -354,52 +331,41 @@@ public class QueryProcessor implements */ public static UntypedResultSet executeOnceInternal(String query, Object... values) { -try -{ -ParsedStatement.Prepared prepared = parseStatement(query, internalQueryState()); - prepared.statement.validat
[01/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 2811f15bc -> 017ec3e99 refs/heads/cassandra-2.2 3b448b337 -> 6555a87bd refs/heads/cassandra-3.0 cb4540ec2 -> 70059726f refs/heads/cassandra-3.9 8b60fb779 -> 53f8f0957 refs/heads/trunk 9ff299e40 -> ad5b30eff Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/017ec3e9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/017ec3e9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/017ec3e9 Branch: refs/heads/cassandra-2.1 Commit: 017ec3e99e704db5e1a36ad153af08d6e7eca523 Parents: 2811f15 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:16:00 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5741241..feeaded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/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 d4ca76f..4340d42 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -296,7 +296,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -374,6 +374,32 @@ public class QueryProcessor implements QueryHandler } } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(long now, String query, Object... values) +{ +try +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), now); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} +catch (RequestExecutionException e) +{ +throw new RuntimeException(e); +} +catch (RequestValidationException e) +{ +throw new RuntimeException("Error validating query " + query, e); +} +} + public static UntypedResultSet resultify(String query, Row row) { return resultify(query, Collections.singletonList(row)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/stateme
[05/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/017ec3e9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/017ec3e9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/017ec3e9 Branch: refs/heads/trunk Commit: 017ec3e99e704db5e1a36ad153af08d6e7eca523 Parents: 2811f15 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:16:00 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5741241..feeaded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/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 d4ca76f..4340d42 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -296,7 +296,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -374,6 +374,32 @@ public class QueryProcessor implements QueryHandler } } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(long now, String query, Object... values) +{ +try +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), now); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} +catch (RequestExecutionException e) +{ +throw new RuntimeException(e); +} +catch (RequestValidationException e) +{ +throw new RuntimeException("Error validating query " + query, e); +} +} + public static UntypedResultSet resultify(String query, Row row) { return resultify(query, Collections.singletonList(row)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 1e142e0..6351bb5 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -312,8 +312,12 @@ public class SelectStatement implements CQLStatement public Res
[13/17] cassandra git commit: Merge commit '70059726f08a98ea21af91ce3855bf62f6f4b652' into cassandra-3.9
Merge commit '70059726f08a98ea21af91ce3855bf62f6f4b652' into cassandra-3.9 * commit '70059726f08a98ea21af91ce3855bf62f6f4b652': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d289778e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d289778e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d289778e Branch: refs/heads/trunk Commit: d289778e4ecd2824562d18662e4cec0b68904ea9 Parents: 8b60fb7 7005972 Author: Sylvain Lebresne Authored: Tue Jun 28 15:20:26 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:20:26 2016 +0200 -- --
[16/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53f8f095 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53f8f095 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53f8f095 Branch: refs/heads/cassandra-3.9 Commit: 53f8f09575dfbdc166b257fe71a4d4a832470253 Parents: d289778 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:21:05 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 12 8 files changed, 69 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index cd13896..075d44a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 3.9 Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/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 d812af4..04b 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -258,7 +258,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(cl, boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -331,6 +331,21 @@ public class QueryProcessor implements QueryHandler return null; } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(int nowInSec, String query, Object... values) +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), nowInSec); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} + public static UntypedResultSet resultify(String query, RowIterator partition) { return resultify(query, PartitionIterators.singletonIterator(partition)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 5f37e5e..f2b484e 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -414,7 +414,11 @@ public class SelectStatement implements CQLStatement public ResultMessage.Rows executeInternal(QueryState state, QueryOptions options) throws RequestExecutionException, RequestValidationException { -int nowInSec = FBUtilities.nowInSeconds(); +return executeInternal(state, options, FBUtilities.nowInSeconds()); +} + +publi
[11/17] cassandra git commit: Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0
Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0 * commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/70059726 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70059726 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70059726 Branch: refs/heads/cassandra-3.0 Commit: 70059726f08a98ea21af91ce3855bf62f6f4b652 Parents: cb4540e 6555a87 Author: Sylvain Lebresne Authored: Tue Jun 28 15:19:08 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:19:57 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 11 +++ 8 files changed, 68 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/CHANGES.txt -- diff --cc CHANGES.txt index 314a93e,9f42d98..aaeafd6 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,38 -2,9 +9,39 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index da146ef,c702679..af94d3e --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -273,10 -288,10 +273,10 @@@ public class QueryProcessor implements AbstractType type = p
[03/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/017ec3e9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/017ec3e9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/017ec3e9 Branch: refs/heads/cassandra-3.0 Commit: 017ec3e99e704db5e1a36ad153af08d6e7eca523 Parents: 2811f15 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:16:00 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5741241..feeaded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/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 d4ca76f..4340d42 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -296,7 +296,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -374,6 +374,32 @@ public class QueryProcessor implements QueryHandler } } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(long now, String query, Object... values) +{ +try +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), now); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} +catch (RequestExecutionException e) +{ +throw new RuntimeException(e); +} +catch (RequestValidationException e) +{ +throw new RuntimeException("Error validating query " + query, e); +} +} + public static UntypedResultSet resultify(String query, Row row) { return resultify(query, Collections.singletonList(row)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 1e142e0..6351bb5 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -312,8 +312,12 @@ public class SelectStatement implements CQLStatement pu
[14/17] cassandra git commit: Merge commit '70059726f08a98ea21af91ce3855bf62f6f4b652' into cassandra-3.9
Merge commit '70059726f08a98ea21af91ce3855bf62f6f4b652' into cassandra-3.9 * commit '70059726f08a98ea21af91ce3855bf62f6f4b652': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d289778e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d289778e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d289778e Branch: refs/heads/cassandra-3.9 Commit: d289778e4ecd2824562d18662e4cec0b68904ea9 Parents: 8b60fb7 7005972 Author: Sylvain Lebresne Authored: Tue Jun 28 15:20:26 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:20:26 2016 +0200 -- --
[12/17] cassandra git commit: Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0
Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0 * commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/70059726 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70059726 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70059726 Branch: refs/heads/cassandra-3.9 Commit: 70059726f08a98ea21af91ce3855bf62f6f4b652 Parents: cb4540e 6555a87 Author: Sylvain Lebresne Authored: Tue Jun 28 15:19:08 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:19:57 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 11 +++ 8 files changed, 68 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/CHANGES.txt -- diff --cc CHANGES.txt index 314a93e,9f42d98..aaeafd6 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,38 -2,9 +9,39 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index da146ef,c702679..af94d3e --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -273,10 -288,10 +273,10 @@@ public class QueryProcessor implements AbstractType type = p
[04/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/017ec3e9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/017ec3e9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/017ec3e9 Branch: refs/heads/cassandra-3.9 Commit: 017ec3e99e704db5e1a36ad153af08d6e7eca523 Parents: 2811f15 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:16:00 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5741241..feeaded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/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 d4ca76f..4340d42 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -296,7 +296,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -374,6 +374,32 @@ public class QueryProcessor implements QueryHandler } } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(long now, String query, Object... values) +{ +try +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), now); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} +catch (RequestExecutionException e) +{ +throw new RuntimeException(e); +} +catch (RequestValidationException e) +{ +throw new RuntimeException("Error validating query " + query, e); +} +} + public static UntypedResultSet resultify(String query, Row row) { return resultify(query, Collections.singletonList(row)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 1e142e0..6351bb5 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -312,8 +312,12 @@ public class SelectStatement implements CQLStatement pu
[17/17] cassandra git commit: Merge branch 'cassandra-3.9' into trunk
Merge branch 'cassandra-3.9' into trunk * cassandra-3.9: Avoid stalling Paxos when the paxos state expires Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ad5b30ef Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ad5b30ef Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ad5b30ef Branch: refs/heads/trunk Commit: ad5b30effa9b3585db8670dcb3a92b3a716e367e Parents: 9ff299e 53f8f09 Author: Sylvain Lebresne Authored: Tue Jun 28 15:21:21 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:21:21 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 12 8 files changed, 69 insertions(+), 12 deletions(-) --
[02/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/017ec3e9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/017ec3e9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/017ec3e9 Branch: refs/heads/cassandra-2.2 Commit: 017ec3e99e704db5e1a36ad153af08d6e7eca523 Parents: 2811f15 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:16:00 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 5741241..feeaded 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.15 + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/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 d4ca76f..4340d42 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -296,7 +296,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -374,6 +374,32 @@ public class QueryProcessor implements QueryHandler } } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(long now, String query, Object... values) +{ +try +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), now); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} +catch (RequestExecutionException e) +{ +throw new RuntimeException(e); +} +catch (RequestValidationException e) +{ +throw new RuntimeException("Error validating query " + query, e); +} +} + public static UntypedResultSet resultify(String query, Row row) { return resultify(query, Collections.singletonList(row)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/017ec3e9/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 1e142e0..6351bb5 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -312,8 +312,12 @@ public class SelectStatement implements CQLStatement pu
[06/17] cassandra git commit: Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2
Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2 * commit '017ec3e99e704db5e1a36ad153af08d6e7eca523': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6555a87b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6555a87b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6555a87b Branch: refs/heads/cassandra-2.2 Commit: 6555a87bde4daeb8bd5d9558595a367ec6bc061d Parents: 3b448b3 017ec3e Author: Sylvain Lebresne Authored: Tue Jun 28 15:17:40 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:18:27 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/CHANGES.txt -- diff --cc CHANGES.txt index 8d2062d,feeaded..9f42d98 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index fa82fa7,4340d42..c702679 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -331,15 -354,52 +331,41 @@@ public class QueryProcessor implements */ public static UntypedResultSet executeOnceInternal(String query, Object... values) { -try -{ -ParsedStatement.Prepared prepared = parseStatement(query, internalQueryState()); - prepared.statement
[15/17] cassandra git commit: Avoid stalling Paxos when the paxos state expires
Avoid stalling Paxos when the paxos state expires This commit does 2 things: - It ignores MRCs that are old enough to have expired in some nodes paxos tables - It ensures the same timestamp is used when reading the paxos state and ignoring old MRC patch by slebresne; reviewed by jasobraown for CASSANDRA-12043 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/53f8f095 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/53f8f095 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/53f8f095 Branch: refs/heads/trunk Commit: 53f8f09575dfbdc166b257fe71a4d4a832470253 Parents: d289778 Author: Sylvain Lebresne Authored: Wed Jun 22 12:12:37 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:21:05 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 12 8 files changed, 69 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index cd13896..075d44a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 3.9 Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/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 d812af4..04b 100644 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@ -258,7 +258,7 @@ public class QueryProcessor implements QueryHandler return QueryOptions.forInternalCalls(cl, boundValues); } -private static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException +public static ParsedStatement.Prepared prepareInternal(String query) throws RequestValidationException { ParsedStatement.Prepared prepared = internalStatements.get(query); if (prepared != null) @@ -331,6 +331,21 @@ public class QueryProcessor implements QueryHandler return null; } +/** + * A special version of executeInternal that takes the time used as "now" for the query in argument. + * Note that this only make sense for Selects so this only accept SELECT statements and is only useful in rare + * cases. + */ +public static UntypedResultSet executeInternalWithNow(int nowInSec, String query, Object... values) +{ +ParsedStatement.Prepared prepared = prepareInternal(query); +assert prepared.statement instanceof SelectStatement; +SelectStatement select = (SelectStatement)prepared.statement; +ResultMessage result = select.executeInternal(internalQueryState(), makeInternalOptions(prepared, values), nowInSec); +assert result instanceof ResultMessage.Rows; +return UntypedResultSet.create(((ResultMessage.Rows)result).result); +} + public static UntypedResultSet resultify(String query, RowIterator partition) { return resultify(query, PartitionIterators.singletonIterator(partition)); http://git-wip-us.apache.org/repos/asf/cassandra/blob/53f8f095/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 5f37e5e..f2b484e 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -414,7 +414,11 @@ public class SelectStatement implements CQLStatement public ResultMessage.Rows executeInternal(QueryState state, QueryOptions options) throws RequestExecutionException, RequestValidationException { -int nowInSec = FBUtilities.nowInSeconds(); +return executeInternal(state, options, FBUtilities.nowInSeconds()); +} + +public Result
[08/17] cassandra git commit: Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2
Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2 * commit '017ec3e99e704db5e1a36ad153af08d6e7eca523': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6555a87b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6555a87b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6555a87b Branch: refs/heads/cassandra-3.9 Commit: 6555a87bde4daeb8bd5d9558595a367ec6bc061d Parents: 3b448b3 017ec3e Author: Sylvain Lebresne Authored: Tue Jun 28 15:17:40 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:18:27 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/CHANGES.txt -- diff --cc CHANGES.txt index 8d2062d,feeaded..9f42d98 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index fa82fa7,4340d42..c702679 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -331,15 -354,52 +331,41 @@@ public class QueryProcessor implements */ public static UntypedResultSet executeOnceInternal(String query, Object... values) { -try -{ -ParsedStatement.Prepared prepared = parseStatement(query, internalQueryState()); - prepared.statement
[07/17] cassandra git commit: Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2
Merge commit '017ec3e99e704db5e1a36ad153af08d6e7eca523' into cassandra-2.2 * commit '017ec3e99e704db5e1a36ad153af08d6e7eca523': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6555a87b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6555a87b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6555a87b Branch: refs/heads/cassandra-3.0 Commit: 6555a87bde4daeb8bd5d9558595a367ec6bc061d Parents: 3b448b3 017ec3e Author: Sylvain Lebresne Authored: Tue Jun 28 15:17:40 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:18:27 2016 +0200 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/QueryProcessor.java | 28 +++- .../cql3/statements/SelectStatement.java| 6 - .../org/apache/cassandra/db/SystemKeyspace.java | 6 ++--- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/service/paxos/PaxosState.java | 11 ++-- .../service/paxos/PrepareCallback.java | 18 - 7 files changed, 63 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/CHANGES.txt -- diff --cc CHANGES.txt index 8d2062d,feeaded..9f42d98 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,35 -1,5 +1,36 @@@ -2.1.15 +2.2.7 + * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) + * Validate bloom_filter_fp_chance against lowest supported + value when the table is created (CASSANDRA-11920) + * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) + * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) + * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) + * Persist local metadata earlier in startup sequence (CASSANDRA-11742) + * Run CommitLog tests with different compression settings (CASSANDRA-9039) + * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) + * Avoid showing estimated key as -1 in tablestats (CASSANDRA-11587) + * Fix possible race condition in CommitLog.recover (CASSANDRA-11743) + * Enable client encryption in sstableloader with cli options (CASSANDRA-11708) + * Possible memory leak in NIODataInputStream (CASSANDRA-11867) + * Fix commit log replay after out-of-order flush completion (CASSANDRA-9669) + * Add seconds to cqlsh tracing session duration (CASSANDRA-11753) + * Prohibit Reverse Counter type as part of the PK (CASSANDRA-9395) + * cqlsh: correctly handle non-ascii chars in error messages (CASSANDRA-11626) + * Exit JVM if JMX server fails to startup (CASSANDRA-11540) + * Produce a heap dump when exiting on OOM (CASSANDRA-9861) + * Avoid read repairing purgeable tombstones on range slices (CASSANDRA-11427) + * Restore ability to filter on clustering columns when using a 2i (CASSANDRA-11510) + * JSON datetime formatting needs timezone (CASSANDRA-11137) + * Fix is_dense recalculation for Thrift-updated tables (CASSANDRA-11502) + * Remove unnescessary file existence check during anticompaction (CASSANDRA-11660) + * Add missing files to debian packages (CASSANDRA-11642) + * Avoid calling Iterables::concat in loops during ModificationStatement::getFunctions (CASSANDRA-11621) + * cqlsh: COPY FROM should use regular inserts for single statement batches and + report errors correctly if workers processes crash on initialization (CASSANDRA-11474) + * Always close cluster with connection in CqlRecordWriter (CASSANDRA-11553) + * Fix slice queries on ordered COMPACT tables (CASSANDRA-10988) +Merged from 2.1: + * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) * Prevent select statements with clustering key > 64k (CASSANDRA-11882) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6555a87b/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index fa82fa7,4340d42..c702679 --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -331,15 -354,52 +331,41 @@@ public class QueryProcessor implements */ public static UntypedResultSet executeOnceInternal(String query, Object... values) { -try -{ -ParsedStatement.Prepared prepared = parseStatement(query, internalQueryState()); - prepared.statement
[10/17] cassandra git commit: Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0
Merge commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d' into cassandra-3.0 * commit '6555a87bde4daeb8bd5d9558595a367ec6bc061d': Avoid stalling Paxos when the paxos state expires Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/70059726 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70059726 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70059726 Branch: refs/heads/trunk Commit: 70059726f08a98ea21af91ce3855bf62f6f4b652 Parents: cb4540e 6555a87 Author: Sylvain Lebresne Authored: Tue Jun 28 15:19:08 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 15:19:57 2016 +0200 -- CHANGES.txt | 1 + .../org/apache/cassandra/cql3/QueryProcessor.java | 17 - .../cql3/statements/SelectStatement.java | 6 +- .../org/apache/cassandra/db/SystemKeyspace.java | 12 ++-- .../apache/cassandra/service/StorageProxy.java| 4 +++- .../cassandra/service/paxos/PaxosState.java | 11 +-- .../cassandra/service/paxos/PrepareCallback.java | 18 +- src/java/org/apache/cassandra/utils/UUIDGen.java | 11 +++ 8 files changed, 68 insertions(+), 12 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/CHANGES.txt -- diff --cc CHANGES.txt index 314a93e,9f42d98..aaeafd6 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -9,38 -2,9 +9,39 @@@ Merged from 2.2 * Allow nodetool info to run with readonly JMX access (CASSANDRA-11755) * Validate bloom_filter_fp_chance against lowest supported value when the table is created (CASSANDRA-11920) - * RandomAccessReader: call isEOF() only when rebuffering, not for every read operation (CASSANDRA-12013) * Don't send erroneous NEW_NODE notifications on restart (CASSANDRA-11038) * StorageService shutdown hook should use a volatile variable (CASSANDRA-11984) +Merged from 2.1: ++ * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) + * Remove finished incoming streaming connections from MessagingService (CASSANDRA-11854) + * Don't try to get sstables for non-repairing column families (CASSANDRA-12077) + * Avoid marking too many sstables as repaired (CASSANDRA-11696) + * Prevent select statements with clustering key > 64k (CASSANDRA-11882) + * Fix clock skew corrupting other nodes with paxos (CASSANDRA-11991) + * Remove distinction between non-existing static columns and existing but null in LWTs (CASSANDRA-9842) + * Cache local ranges when calculating repair neighbors (CASSANDRA-11934) + * Allow LWT operation on static column with only partition keys (CASSANDRA-10532) + * Create interval tree over canonical sstables to avoid missing sstables during streaming (CASSANDRA-11886) + * cqlsh COPY FROM: shutdown parent cluster after forking, to avoid corrupting SSL connections (CASSANDRA-11749) + + +3.0.7 + * Fix legacy serialization of Thrift-generated non-compound range tombstones + when communicating with 2.x nodes (CASSANDRA-11930) + * Fix Directories instantiations where CFS.initialDirectories should be used (CASSANDRA-11849) + * Avoid referencing DatabaseDescriptor in AbstractType (CASSANDRA-11912) + * Fix sstables not being protected from removal during index build (CASSANDRA-11905) + * cqlsh: Suppress stack trace from Read/WriteFailures (CASSANDRA-11032) + * Remove unneeded code to repair index summaries that have + been improperly down-sampled (CASSANDRA-11127) + * Avoid WriteTimeoutExceptions during commit log replay due to materialized + view lock contention (CASSANDRA-11891) + * Prevent OOM failures on SSTable corruption, improve tests for corruption detection (CASSANDRA-9530) + * Use CFS.initialDirectories when clearing snapshots (CASSANDRA-11705) + * Allow compaction strategies to disable early open (CASSANDRA-11754) + * Refactor Materialized View code (CASSANDRA-11475) + * Update Java Driver (CASSANDRA-11615) +Merged from 2.2: * Persist local metadata earlier in startup sequence (CASSANDRA-11742) * Run CommitLog tests with different compression settings (CASSANDRA-9039) * cqlsh: fix tab completion for case-sensitive identifiers (CASSANDRA-11664) http://git-wip-us.apache.org/repos/asf/cassandra/blob/70059726/src/java/org/apache/cassandra/cql3/QueryProcessor.java -- diff --cc src/java/org/apache/cassandra/cql3/QueryProcessor.java index da146ef,c702679..af94d3e --- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java +++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java @@@ -273,10 -288,10 +273,10 @@@ public class QueryProcessor implements AbstractType type = prepared.
[jira] [Resolved] (CASSANDRA-12043) Syncing most recent commit in CAS across replicas can cause all CAS queries in the CQL partition to fail
[ https://issues.apache.org/jira/browse/CASSANDRA-12043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne resolved CASSANDRA-12043. -- Resolution: Fixed Reviewer: Jason Brown Fix Version/s: 3.9 3.0.9 2.2.7 2.1.15 I still needed to merge the branch upwards and wait on CI results for all branch. This is now done and tests seem "fine" (no failure appears related) so committed. Thanks. | [2.1|https://github.com/pcmanus/cassandra/commits/12043-2.1] | [utests|http://cassci.datastax.com/job/pcmanus-12043-2.1-testall/] | [dtests|http://cassci.datastax.com/job/pcmanus-12043-2.1-dtest/] || | [2.2|https://github.com/pcmanus/cassandra/commits/12043-2.2] | [utests|http://cassci.datastax.com/job/pcmanus-12043-2.2-testall/] | [dtests|http://cassci.datastax.com/job/pcmanus-12043-2.2-dtest/] || | [3.0|https://github.com/pcmanus/cassandra/commits/12043-3.0] | [utests|http://cassci.datastax.com/job/pcmanus-12043-3.0-testall/] | [dtests|http://cassci.datastax.com/job/pcmanus-12043-3.0-dtest/] || | [3.9|https://github.com/pcmanus/cassandra/commits/12043-3.9] | [utests|http://cassci.datastax.com/job/pcmanus-12043-3.9-testall/] | [dtests|http://cassci.datastax.com/job/pcmanus-12043-3.9-dtest/] || > Syncing most recent commit in CAS across replicas can cause all CAS queries > in the CQL partition to fail > > > Key: CASSANDRA-12043 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12043 > Project: Cassandra > Issue Type: Bug >Reporter: sankalp kohli >Assignee: Sylvain Lebresne > Fix For: 2.1.15, 2.2.7, 3.0.9, 3.9 > > > We update the most recent commit on requiredParticipant replicas if out of > sync during the prepare round in beginAndRepairPaxos method. We keep doing > this in a loop till the requiredParticipant replicas have the same most > recent commit or we hit timeout. > Say we have 3 machines A,B and C and gc grace on the table is 10 days. We do > a CAS write at time 0 and it went to A and B but not to C. C will get the > hint later but will not update the most recent commit in paxos table. This is > how CAS hints work. > In the paxos table whose gc_grace=0, most_recent_commit in A and B will be > inserted with timestamp 0 and with a TTL of 10 days. After 10 days, this > insert will become a tombstone at time 0 till it is compacted away since > gc_grace=0. > Do a CAS read after say 1 day on the same CQL partition and this time prepare > phase involved A and C. most_recent_commit on C for this CQL partition is > empty. A sends the most_recent_commit to C with a timestamp of 0 and with a > TTL of 10 days. This most_recent_commit on C will expire on 11th day since it > is inserted after 1 day. > most_recent_commit are now in sync on A,B and C, however A and B > most_recent_commit will expire on 10th day whereas for C it will expire on > 11th day since it was inserted one day later. > Do another CAS read after 10days when most_recent_commit on A and B have > expired and is treated as tombstones till compacted. In this CAS read, say A > and C are involved in prepare phase. most_recent_commit will not match > between them since it is expired in A and is still there on C. This will > cause most_recent_commit to be applied to A with a timestamp of 0 and TTL of > 10 days. If A has not compacted away the original most_recent_commit which > has expired, this new write to most_recent_commit wont be visible on reads > since there is a tombstone with same timestamp(Delete wins over data with > same timestamp). > Another round of prepare will follow and again A would say it does not know > about most_recent_write(covered by original write which is not a tombstone) > and C will again try to send the write to A. This can keep going on till the > request timeouts or only A and B are involved in the prepare phase. > When A’s original most_recent_commit which is now a tombstone is compacted, > all the inserts which it was covering will come live. This will in turn again > get played to another replica. This ping pong can keep going on for a long > time. > The issue is that most_recent_commit is expiring at different times across > replicas. When they get replayed to a replica to make it in sync, we again > set the TTL from that point. > During the CAS read which timed out, most_recent_commit was being sent to > another replica in a loop. Even in successful requests, it will try to loop > for a couple of times if involving A and C and then when the replicas which > respond are A and B, it will succeed. So this will have impact on latencies > as well. > These timeouts gets worse when a machine is down as no progress can be made > a
[jira] [Commented] (CASSANDRA-11414) dtest failure in bootstrap_test.TestBootstrap.resumable_bootstrap_test
[ https://issues.apache.org/jira/browse/CASSANDRA-11414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353032#comment-15353032 ] Paulo Motta commented on CASSANDRA-11414: - Since this test kills streaming at random points, it was causing various errors or race conditions causing the test to fail, so the basic idea here is to improve synchronization to avoid these races when a node is randomly killed in the middle of a streaming. With that said, I made the following improvements: * 2.2+ ** Add null protection on ConnectionHandler.signalCloseDone ** Stream session was not being failed on {{SocketException}}, what could cause it to hang on broken connections * 3.0+ ** Synchronize access to transaction on {{StreamReceiveTask}} ** Abort {{SSTableWriter}} if received after {{StreamReceiveTask}} is finished ** Abort {{SSTableWriter}} if there's a failure during finalization on {{StreamReceiveTask}} ** Synchronize access to {{StreamSession}} methods: {{prepareReceiving}}, {{addTransferFiles}} and {{addTransferRanges}}, so they don't race with {{onError}}, since that will try to abort active tasks. *** Throw exception if any of these are executed after stream session is finished (added tests on {{StreamReceiveTask}})) After these were addressed, the number of failures have gone down from 28/100 to 11/100 on this [multiplexer job|https://cassci.datastax.com/view/Parameterized/job/parameterized_dtest_multiplexer/149/]. The remaining failures are due to bad timing on dtest, so I [updated the dtest|https://github.com/riptano/cassandra-dtest/pull/1051/commits/51ed5f55c85a3a1c339b265ac4b056137215e5fd] to address those and submitted a new multiplexer run (still queued). Patch and tests available below: ||2.2||3.0||3.9||trunk||dtest|| |[branch|https://github.com/apache/cassandra/compare/cassandra-2.2...pauloricardomg:2.2-11414]|[branch|https://github.com/apache/cassandra/compare/cassandra-3.0...pauloricardomg:3.0-11414]|[branch|https://github.com/apache/cassandra/compare/cassandra-3.9...pauloricardomg:3.9-11414]|[branch|https://github.com/apache/cassandra/compare/trunk...pauloricardomg:trunk-11414]|[branch|https://github.com/riptano/cassandra-dtest/compare/master...pauloricardomg:11414]| |[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.2-11414-testall/lastCompletedBuild/testReport/]|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.0-11414-testall/lastCompletedBuild/testReport/]|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.9-11414-testall/lastCompletedBuild/testReport/]|[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-11414-testall/lastCompletedBuild/testReport/]| |[dtest|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-2.2-11414-dtest/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.0-11414-dtest/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-3.9-11414-dtest/lastCompletedBuild/testReport/]|[dtest|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-11414-dtest/lastCompletedBuild/testReport/]| Will set to PA once new multiplexer and CI run looks good. > dtest failure in bootstrap_test.TestBootstrap.resumable_bootstrap_test > -- > > Key: CASSANDRA-11414 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11414 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Philip Thompson >Assignee: Paulo Motta > Labels: dtest > Fix For: 3.x > > > Stress is failing to read back all data. We can see this output from the > stress read > {code} > java.io.IOException: Operation x0 on key(s) [314c384f304f4c325030]: Data > returned was not validated > at org.apache.cassandra.stress.Operation.error(Operation.java:138) > at > org.apache.cassandra.stress.Operation.timeWithRetry(Operation.java:116) > at > org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:101) > at > org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:109) > at > org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:261) > at > org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:327) > java.io.IOException: Operation x0 on key(s) [33383438363931353131]: Data > returned was not validated > at org.apache.cassandra.stress.Operation.error(Operation.java:138) > at > org.apache.cassandra.stress.Operation.timeWithRetry(Operation.java:116) > at > org.apache.cassandra.stress.operations.predefined.
[jira] [Updated] (CASSANDRA-12006) dtest failure in repair_tests.incremental_repair_test.TestIncRepair.sstable_repairedset_test
[ https://issues.apache.org/jira/browse/CASSANDRA-12006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-12006: Status: Patch Available (was: In Progress) It looks like the sstable was deleted by compaction when sstablemetadata was run to me patch to disable autocompaction: https://github.com/krummas/cassandra-dtest/commits/marcuse/12006 > dtest failure in > repair_tests.incremental_repair_test.TestIncRepair.sstable_repairedset_test > > > Key: CASSANDRA-12006 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12006 > Project: Cassandra > Issue Type: Bug >Reporter: Sean McCarthy >Assignee: Marcus Eriksson > Labels: dtest > Attachments: node1.log, node2.log > > > example failure: > http://cassci.datastax.com/job/cassandra-2.1_dtest_jdk8/229/testReport/repair_tests.incremental_repair_test/TestIncRepair/sstable_repairedset_test > Failed on CassCI build cassandra-2.1_dtest_jdk8 #229 > Logs are attached. > {code} > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File > "/home/automaton/cassandra-dtest/repair_tests/incremental_repair_test.py", > line 226, in sstable_repairedset_test > self.assertNotIn('Repaired at: 0', finaloutput) > File "/usr/lib/python2.7/unittest/case.py", line 810, in assertNotIn > self.fail(self._formatMessage(msg, standardMsg)) > File "/usr/lib/python2.7/unittest/case.py", line 410, in fail > raise self.failureException(msg) > "'Repaired at: 0' unexpectedly found in 'No such file: > /mnt/tmp/dtest-DoN5MO/test/node1/data0/keyspace1/standard1-0d92e6402f7c11e6bac8356bf83fc3ce/keyspace1-standard1-ka-81-Data.db > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11978) StreamReader fails to write sstable if CF directory is symlink
[ https://issues.apache.org/jira/browse/CASSANDRA-11978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353050#comment-15353050 ] Arindam Gupta commented on CASSANDRA-11978: --- Hi Michael Frisch, Did you get any failure stack trace while this occurred? If you have Can you share the same? Regards Arindam > StreamReader fails to write sstable if CF directory is symlink > -- > > Key: CASSANDRA-11978 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11978 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Michael Frisch > Labels: lhf > > I'm using Cassandra v2.2.6. If the CF is stored as a symlink in the keyspace > directory on disk then StreamReader.createWriter fails because > Descriptor.fromFilename is passed the actual path on disk instead of path > with the symlink. > Example: > /path/to/data/dir/Keyspace/CFName -> /path/to/data/dir/AnotherDisk/CFName > Descriptor.fromFilename is passed "/path/to/data/dir/AnotherDisk/CFName" > instead of "/path/to/data/dir/Keyspace/CFName", then it concludes that the > keyspace name is "AnotherDisk" which is erroneous. I've temporarily worked > around this by using cfs.keyspace.getName() to get the keyspace name and > cfs.name to get the CF name as those are correct. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12101) DESCRIBE INDEX: missing quotes for case-sensitive index name
[ https://issues.apache.org/jira/browse/CASSANDRA-12101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Julien updated CASSANDRA-12101: --- Labels: cqlsh (was: ) > DESCRIBE INDEX: missing quotes for case-sensitive index name > > > Key: CASSANDRA-12101 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12101 > Project: Cassandra > Issue Type: Bug >Reporter: Julien >Priority: Minor > Labels: cqlsh > > Create an index with a case-sensitive name. > The result of the DESCRIBE INDEX command does not have quotes around the > index name. As a result, the index cannot be recreated with this output. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12101) DESCRIBE INDEX: missing quotes for case-sensitive index name
[ https://issues.apache.org/jira/browse/CASSANDRA-12101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Julien updated CASSANDRA-12101: --- Component/s: (was: CQL) > DESCRIBE INDEX: missing quotes for case-sensitive index name > > > Key: CASSANDRA-12101 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12101 > Project: Cassandra > Issue Type: Bug >Reporter: Julien >Priority: Minor > Labels: cqlsh > > Create an index with a case-sensitive name. > The result of the DESCRIBE INDEX command does not have quotes around the > index name. As a result, the index cannot be recreated with this output. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-12101) DESCRIBE INDEX: missing quotes for case-sensitive index name
Julien created CASSANDRA-12101: -- Summary: DESCRIBE INDEX: missing quotes for case-sensitive index name Key: CASSANDRA-12101 URL: https://issues.apache.org/jira/browse/CASSANDRA-12101 Project: Cassandra Issue Type: Bug Components: CQL Reporter: Julien Create an index with a case-sensitive name. The result of the DESCRIBE INDEX command does not have quotes around the index name. As a result, the index cannot be recreated with this output. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12101) DESCRIBE INDEX: missing quotes for case-sensitive index name
[ https://issues.apache.org/jira/browse/CASSANDRA-12101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Julien updated CASSANDRA-12101: --- Priority: Minor (was: Major) > DESCRIBE INDEX: missing quotes for case-sensitive index name > > > Key: CASSANDRA-12101 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12101 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: Julien >Priority: Minor > > Create an index with a case-sensitive name. > The result of the DESCRIBE INDEX command does not have quotes around the > index name. As a result, the index cannot be recreated with this output. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12101) DESCRIBE INDEX: missing quotes for case-sensitive index name
[ https://issues.apache.org/jira/browse/CASSANDRA-12101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Julien updated CASSANDRA-12101: --- Description: Create a custom index with a case-sensitive name. The result of the DESCRIBE INDEX command does not have quotes around the index name. As a result, the index cannot be recreated with this output. was: Create an index with a case-sensitive name. The result of the DESCRIBE INDEX command does not have quotes around the index name. As a result, the index cannot be recreated with this output. > DESCRIBE INDEX: missing quotes for case-sensitive index name > > > Key: CASSANDRA-12101 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12101 > Project: Cassandra > Issue Type: Bug >Reporter: Julien >Priority: Minor > Labels: cqlsh > > Create a custom index with a case-sensitive name. > The result of the DESCRIBE INDEX command does not have quotes around the > index name. As a result, the index cannot be recreated with this output. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-12011) Logback shutdown hook races with StorageServiceShutdownHook
[ https://issues.apache.org/jira/browse/CASSANDRA-12011?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer reassigned CASSANDRA-12011: -- Assignee: Benjamin Lerer > Logback shutdown hook races with StorageServiceShutdownHook > --- > > Key: CASSANDRA-12011 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12011 > Project: Cassandra > Issue Type: Bug >Reporter: Joel Knighton >Assignee: Benjamin Lerer >Priority: Minor > Fix For: 2.2.x, 3.0.x, 3.x > > > In {{StorageService}}, we add a JVM shutdown hook called > {{StorageServiceShutdownHook}} that shuts down gossip and flushes writes for > non durable keyspaces, among other things. > In {{logback.xml}}, we add a JVM shutdown hook that tears down logback > resources. > Since JVM shutdown hooks are started concurrently, the logback shutdown hook > almost always completes during the {{StorageServiceShutdownHook}}, which > means that any log statements in this hook will not work since the logback > resources have been torn down. > This makes debugging the {{StorageServiceShutdownHook}} challenging. We > should do our own logback teardown that does not run until after the > completion of any Cassandra-oriented JVM shutdown hooks such as the > {{StorageServiceShutdownHook}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9318) Bound the number of in-flight requests at the coordinator
[ https://issues.apache.org/jira/browse/CASSANDRA-9318?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-9318: --- Reviewer: Stefania > Bound the number of in-flight requests at the coordinator > - > > Key: CASSANDRA-9318 > URL: https://issues.apache.org/jira/browse/CASSANDRA-9318 > Project: Cassandra > Issue Type: Improvement > Components: Local Write-Read Paths, Streaming and Messaging >Reporter: Ariel Weisberg >Assignee: Sergio Bossa > Attachments: backpressure.png, limit.btm, no_backpressure.png > > > It's possible to somewhat bound the amount of load accepted into the cluster > by bounding the number of in-flight requests and request bytes. > An implementation might do something like track the number of outstanding > bytes and requests and if it reaches a high watermark disable read on client > connections until it goes back below some low watermark. > Need to make sure that disabling read on the client connection won't > introduce other issues. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-10992) Hanging streaming sessions
[ https://issues.apache.org/jira/browse/CASSANDRA-10992?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-10992: Reviewer: Yuki Morishita > Hanging streaming sessions > -- > > Key: CASSANDRA-10992 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10992 > Project: Cassandra > Issue Type: Bug > Environment: C* 2.1.12, Debian Wheezy >Reporter: mlowicki >Assignee: Paulo Motta > Fix For: 2.1.x > > Attachments: apache-cassandra-2.1.12-SNAPSHOT.jar, db1.ams.jstack, > db6.analytics.jstack > > > I've started recently running repair using [Cassandra > Reaper|https://github.com/spotify/cassandra-reaper] (built-in {{nodetool > repair}} doesn't work for me - CASSANDRA-9935). It behaves fine but I've > noticed hanging streaming sessions: > {code} > root@db1:~# date > Sat Jan 9 16:43:00 UTC 2016 > root@db1:~# nt netstats -H | grep total > Receiving 5 files, 46.59 MB total. Already received 1 files, 11.32 MB > total > Sending 7 files, 46.28 MB total. Already sent 7 files, 46.28 MB total > Receiving 6 files, 64.15 MB total. Already received 1 files, 12.14 MB > total > Sending 5 files, 61.15 MB total. Already sent 5 files, 61.15 MB total > Receiving 4 files, 7.75 MB total. Already received 3 files, 7.58 MB > total > Sending 4 files, 4.29 MB total. Already sent 4 files, 4.29 MB total > Receiving 12 files, 13.79 MB total. Already received 11 files, 7.66 > MB total > Sending 5 files, 15.32 MB total. Already sent 5 files, 15.32 MB total > Receiving 8 files, 20.35 MB total. Already received 1 files, 13.63 MB > total > Sending 38 files, 125.34 MB total. Already sent 38 files, 125.34 MB > total > root@db1:~# date > Sat Jan 9 17:45:42 UTC 2016 > root@db1:~# nt netstats -H | grep total > Receiving 5 files, 46.59 MB total. Already received 1 files, 11.32 MB > total > Sending 7 files, 46.28 MB total. Already sent 7 files, 46.28 MB total > Receiving 6 files, 64.15 MB total. Already received 1 files, 12.14 MB > total > Sending 5 files, 61.15 MB total. Already sent 5 files, 61.15 MB total > Receiving 4 files, 7.75 MB total. Already received 3 files, 7.58 MB > total > Sending 4 files, 4.29 MB total. Already sent 4 files, 4.29 MB total > Receiving 12 files, 13.79 MB total. Already received 11 files, 7.66 > MB total > Sending 5 files, 15.32 MB total. Already sent 5 files, 15.32 MB total > Receiving 8 files, 20.35 MB total. Already received 1 files, 13.63 MB > total > Sending 38 files, 125.34 MB total. Already sent 38 files, 125.34 MB > total > {code} > Such sessions are left even when repair job is long time done (confirmed by > checking Reaper's and Cassandra's logs). {{streaming_socket_timeout_in_ms}} > in cassandra.yaml is set to default value (360). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-10983) Metrics for tracking offending queries
[ https://issues.apache.org/jira/browse/CASSANDRA-10983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-10983: Reviewer: Sam Tunnicliffe > Metrics for tracking offending queries > -- > > Key: CASSANDRA-10983 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10983 > Project: Cassandra > Issue Type: Improvement >Reporter: Sharvanath Pathak > Labels: github-import > Fix For: 2.1.x > > > I have seen big GC pauses leading to nodes being marked DOWN in our cluster. > The most common issue is someone, would add a large range scan and it would > be difficult to pin-point the specific query. I have added a mechanism to > account the memory allocation for a specific query. In order to allow > aggregates over a period I added a metric as well. Attached is the diff. > I was wondering if something like this would be interesting for more general > audience. There are some things which need to be fixed for proper release. > For instance, Cleaning up existing metrics on server restart. However, just > wanted to check before that if something like this would be useful for others. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11820) Altering a column's type causes EOF
[ https://issues.apache.org/jira/browse/CASSANDRA-11820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-11820: Reviewer: Tyler Hobbs > Altering a column's type causes EOF > --- > > Key: CASSANDRA-11820 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11820 > Project: Cassandra > Issue Type: Bug >Reporter: Carl Yeksigian >Assignee: Sylvain Lebresne > Fix For: 3.0.x, 3.x > > > While working on CASSANDRA-10309, I was testing altering columns' types. This > series of operations fails: > {code} > CREATE TABLE test (a int PRIMARY KEY, b int) > INSERT INTO test (a, b) VALUES (1, 1) > ALTER TABLE test ALTER b TYPE BLOB > SELECT * FROM test WHERE a = 1 > {code} > Tried this on 3.0 and trunk, both fail. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11996) SSTableSet.CANONICAL can miss sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-11996?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-11996: Reviewer: Stefania > SSTableSet.CANONICAL can miss sstables > -- > > Key: CASSANDRA-11996 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11996 > Project: Cassandra > Issue Type: Bug >Reporter: Marcus Eriksson >Assignee: Marcus Eriksson >Priority: Critical > Fix For: 3.0.x, 3.x > > > There is a race where we might miss sstables in SSTableSet.CANONICAL when we > finish up a compaction. > Reproducing unit test pushed > [here|https://github.com/krummas/cassandra/commit/1292aaa61b89730cff0c022ed1262f45afd493e5] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11880) Display number of tables in cfstats
[ https://issues.apache.org/jira/browse/CASSANDRA-11880?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-11880: Reviewer: Joshua McKenzie > Display number of tables in cfstats > --- > > Key: CASSANDRA-11880 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11880 > Project: Cassandra > Issue Type: Improvement >Reporter: Geoffrey Yu >Assignee: Geoffrey Yu >Priority: Minor > Attachments: 11880-trunk.txt > > > We should display the number of tables in a Cassandra cluster in {{nodetool > cfstats}}. This would be useful for monitoring. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-11949) GC log directory should be created in startup scripts
[ https://issues.apache.org/jira/browse/CASSANDRA-11949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-11949: Reviewer: Joshua McKenzie > GC log directory should be created in startup scripts > - > > Key: CASSANDRA-11949 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11949 > Project: Cassandra > Issue Type: Bug >Reporter: Joel Knighton >Assignee: Mahdi Mohammadi >Priority: Minor > > In [CASSANDRA-10140], we enabled GC logging by default, since the overhead > was low and asking people providing diagnostics to restart can often make it > more difficult to diagnose problems. > The default GC log path is set to {{$CASSANDRA_HOME/logs/gc.log}} in > {{cassandra-env.sh}}, a directory that is not present in a fresh > clone/install. Even if logback creates this directory later in startup, it is > not present when the JVM initiates GC logging, so GC logging will silently > fail for this first Cassandra run > I haven't tested this in Windows but suspect the same problem may occur. > Since lots of tooling around Cassandra won't create this directory, we should > instead consider attempting to create it in our startup scripts. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12006) dtest failure in repair_tests.incremental_repair_test.TestIncRepair.sstable_repairedset_test
[ https://issues.apache.org/jira/browse/CASSANDRA-12006?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-12006: Reviewer: Paulo Motta > dtest failure in > repair_tests.incremental_repair_test.TestIncRepair.sstable_repairedset_test > > > Key: CASSANDRA-12006 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12006 > Project: Cassandra > Issue Type: Bug >Reporter: Sean McCarthy >Assignee: Marcus Eriksson > Labels: dtest > Attachments: node1.log, node2.log > > > example failure: > http://cassci.datastax.com/job/cassandra-2.1_dtest_jdk8/229/testReport/repair_tests.incremental_repair_test/TestIncRepair/sstable_repairedset_test > Failed on CassCI build cassandra-2.1_dtest_jdk8 #229 > Logs are attached. > {code} > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File > "/home/automaton/cassandra-dtest/repair_tests/incremental_repair_test.py", > line 226, in sstable_repairedset_test > self.assertNotIn('Repaired at: 0', finaloutput) > File "/usr/lib/python2.7/unittest/case.py", line 810, in assertNotIn > self.fail(self._formatMessage(msg, standardMsg)) > File "/usr/lib/python2.7/unittest/case.py", line 410, in fail > raise self.failureException(msg) > "'Repaired at: 0' unexpectedly found in 'No such file: > /mnt/tmp/dtest-DoN5MO/test/node1/data0/keyspace1/standard1-0d92e6402f7c11e6bac8356bf83fc3ce/keyspace1-standard1-ka-81-Data.db > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/2] cassandra git commit: Initial FAQ section
Initial FAQ section Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3023d59b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3023d59b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3023d59b Branch: refs/heads/trunk Commit: 3023d59ba3fa572fec8ecba1055065c814eae653 Parents: 937184b Author: Sylvain Lebresne Authored: Tue Jun 28 09:53:31 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 17:09:48 2016 +0200 -- doc/convert_yaml_to_rst.py| 2 + doc/source/architecture/dynamo.rst| 2 + doc/source/conf.py| 5 + doc/source/faq/index.rst | 280 - doc/source/operating/bulk_loading.rst | 24 +++ doc/source/operating/index.rst| 1 + doc/source/operating/topo_changes.rst | 2 + 7 files changed, 315 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3023d59b/doc/convert_yaml_to_rst.py -- diff --git a/doc/convert_yaml_to_rst.py b/doc/convert_yaml_to_rst.py index fee6d8c..c17 100644 --- a/doc/convert_yaml_to_rst.py +++ b/doc/convert_yaml_to_rst.py @@ -58,6 +58,8 @@ def convert(yaml_file, dest_file): lines = f.readlines()[7:] with open(dest_file, 'w') as outfile: +outfile.write(".. _cassandra-yaml:\n") +outfile.write("\n") outfile.write("Cassandra Configuration File\n") outfile.write("\n") http://git-wip-us.apache.org/repos/asf/cassandra/blob/3023d59b/doc/source/architecture/dynamo.rst -- diff --git a/doc/source/architecture/dynamo.rst b/doc/source/architecture/dynamo.rst index d146471..a7dbb87 100644 --- a/doc/source/architecture/dynamo.rst +++ b/doc/source/architecture/dynamo.rst @@ -17,6 +17,8 @@ Dynamo -- +.. _gossip: + Gossip ^^ http://git-wip-us.apache.org/repos/asf/cassandra/blob/3023d59b/doc/source/conf.py -- diff --git a/doc/source/conf.py b/doc/source/conf.py index 9caf188..2b36353 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -46,8 +46,13 @@ extensions = [ 'sphinx.ext.todo', 'sphinx.ext.mathjax', 'sphinx.ext.ifconfig', +'sphinx.ext.extlinks', ] +extlinks = { +'jira': ( 'https://issues.apache.org/jira/browse/CASSANDRA-%s', 'CASSANDRA-') +} + # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] http://git-wip-us.apache.org/repos/asf/cassandra/blob/3023d59b/doc/source/faq/index.rst -- diff --git a/doc/source/faq/index.rst b/doc/source/faq/index.rst index 4ac0be4..d985e37 100644 --- a/doc/source/faq/index.rst +++ b/doc/source/faq/index.rst @@ -17,4 +17,282 @@ Frequently Asked Questions == -.. TODO: todo +- :ref:`why-cant-list-all` +- :ref:`what-ports` +- :ref:`what-happens-on-joins` +- :ref:`asynch-deletes` +- :ref:`one-entry-ring` +- :ref:`can-large-blob` +- :ref:`nodetool-connection-refused` +- :ref:`to-batch-or-not-to-batch` +- :ref:`selinux` +- :ref:`how-to-unsubscribe` +- :ref:`cassandra-eats-all-my-memory` +- :ref:`what-are-seeds` +- :ref:`are-seeds-SPOF` +- :ref:`why-message-dropped` +- :ref:`oom-map-failed` +- :ref:`what-on-same-timestamp-update` +- :ref:`why-bootstrapping-stream-error` + +.. _why-cant-list-all: + +Why can't I set ``listen_address`` to listen on 0.0.0.0 (all my addresses)? +--- + +Cassandra is a gossip-based distributed system and ``listen_address`` is the address a node tells other nodes to reach +it at. Telling other nodes "contact me on any of my addresses" is a bad idea; if different nodes in the cluster pick +different addresses for you, Bad Things happen. + +If you don't want to manually specify an IP to ``listen_address`` for each node in your cluster (understandable!), leave +it blank and Cassandra will use ``InetAddress.getLocalHost()`` to pick an address. Then it's up to you or your ops team +to make things resolve correctly (``/etc/hosts/``, dns, etc). + +One exception to this process is JMX, which by default binds to 0.0.0.0 (Java bug 6425769). + +See :jira:`256` and :jira:`43` for more gory details. + +.. _what-ports: + +What ports does Cassandra use? +-- + +By default, Cassandra uses 7000 for cluster communication (7001 if SSL is enabled), 9042 for native protocol clients, +and 7199 for JMX (and 9160 for the deprecated Thrift interface). The internode communication and native protocol ports +are con
[jira] [Updated] (CASSANDRA-12035) Structure for tpstats output (JSON, YAML)
[ https://issues.apache.org/jira/browse/CASSANDRA-12035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-12035: Reviewer: Alex Petrov > Structure for tpstats output (JSON, YAML) > - > > Key: CASSANDRA-12035 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12035 > Project: Cassandra > Issue Type: Improvement > Components: Tools >Reporter: Hiroyuki Nishi >Assignee: Hiroyuki Nishi >Priority: Minor > Attachments: CASSANDRA-12035-trunk.patch, > tablestats_sample_result.json, tablestats_sample_result.txt, > tablestats_sample_result.yaml, tpstats_sample_result.json, > tpstats_sample_result.txt, tpstats_sample_result.yaml > > > In CASSANDRA-5977, some extra output formats such as JSON and YAML were added > for nodetool tablestats. > Similarly, I would like to add the output formats in nodetool tpstats. > Also, I tried to refactor the tablestats's code about the output formats to > integrate the existing code with my code. > Please review the attached patch. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12062) Prevent key invalidation if there's no key to invalidate
[ https://issues.apache.org/jira/browse/CASSANDRA-12062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-12062: Reviewer: Joshua McKenzie > Prevent key invalidation if there's no key to invalidate > > > Key: CASSANDRA-12062 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12062 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp >Assignee: Robert Stupp >Priority: Minor > Fix For: 3.x > > > In {{SSTableRewriter}} we currently assume that there are keys to be > invalidated in the key cache. That's not always true - especially if a bunch > of tiny sstables have been generated. > Patch saves one {{synchronized}} and a few objects if that's the case. > Just a small optimisation, but maybe worth to include. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/2] cassandra git commit: Add warning that doc is WIP
Repository: cassandra Updated Branches: refs/heads/trunk ad5b30eff -> 3023d59ba Add warning that doc is WIP Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/937184b3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/937184b3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/937184b3 Branch: refs/heads/trunk Commit: 937184b30f7a0d2afb401726a74a20ee2aeb3696 Parents: ad5b30e Author: Sylvain Lebresne Authored: Tue Jun 28 12:03:16 2016 +0200 Committer: Sylvain Lebresne Committed: Tue Jun 28 17:09:45 2016 +0200 -- doc/source/_static/extra.css| 9 + doc/source/_templates/indexcontent.html | 3 +++ 2 files changed, 12 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/937184b3/doc/source/_static/extra.css -- diff --git a/doc/source/_static/extra.css b/doc/source/_static/extra.css index b55515e..fd3573f 100644 --- a/doc/source/_static/extra.css +++ b/doc/source/_static/extra.css @@ -41,3 +41,12 @@ table.contentstable { td.rightcolumn { padding-left: 30px; } + +div#wipwarning { +font-size: 14px; +border: 1px solid #ecc; +color: #f66; +background: #ffe8e8; +padding: 10px 30px; +margin-bottom: 30px; +} http://git-wip-us.apache.org/repos/asf/cassandra/blob/937184b3/doc/source/_templates/indexcontent.html -- diff --git a/doc/source/_templates/indexcontent.html b/doc/source/_templates/indexcontent.html index a71a7e9..35c6589 100644 --- a/doc/source/_templates/indexcontent.html +++ b/doc/source/_templates/indexcontent.html @@ -1,5 +1,8 @@ {% extends "defindex.html" %} {% block tables %} +This documentation is currently a work-in-progress and contains a number of TODO sections. +Contributions are welcome. + {% trans %}Main documentation parts:{% endtrans %}
[jira] [Updated] (CASSANDRA-12098) dtest failure in secondary_indexes_test.TestSecondaryIndexes.test_only_coordinator_chooses_index_for_query
[ https://issues.apache.org/jira/browse/CASSANDRA-12098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-12098: Assignee: Sam Tunnicliffe > dtest failure in > secondary_indexes_test.TestSecondaryIndexes.test_only_coordinator_chooses_index_for_query > -- > > Key: CASSANDRA-12098 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12098 > Project: Cassandra > Issue Type: Bug >Reporter: Sean McCarthy >Assignee: Sam Tunnicliffe > Labels: dtest > Fix For: 3.x > > Attachments: node1.log, node1_debug.log, node1_gc.log, node2.log, > node2_debug.log, node2_gc.log, node3.log, node3_debug.log, node3_gc.log > > > example failure: > http://cassci.datastax.com/job/trunk_offheap_dtest/273/testReport/secondary_indexes_test/TestSecondaryIndexes/test_only_coordinator_chooses_index_for_query > Failed on CassCI build trunk_offheap_dtest #273 > {code} > Standard Output > Unexpected error in node1 log, error: > ERROR [MessagingService-Incoming-/127.0.0.3] 2016-06-26 08:11:32,185 > CassandraDaemon.java:219 - Exception in thread > Thread[MessagingService-Incoming-/127.0.0.3,5,main] > java.lang.RuntimeException: Unknown column b during deserialization > at > org.apache.cassandra.db.Columns$Serializer.deserialize(Columns.java:433) > ~[main/:na] > at > org.apache.cassandra.db.SerializationHeader$Serializer.deserializeForMessaging(SerializationHeader.java:407) > ~[main/:na] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.deserializeHeader(UnfilteredRowIteratorSerializer.java:192) > ~[main/:na] > at > org.apache.cassandra.db.partitions.PartitionUpdate$PartitionUpdateSerializer.deserialize30(PartitionUpdate.java:668) > ~[main/:na] > at > org.apache.cassandra.db.partitions.PartitionUpdate$PartitionUpdateSerializer.deserialize(PartitionUpdate.java:642) > ~[main/:na] > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:349) > ~[main/:na] > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:368) > ~[main/:na] > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:305) > ~[main/:na] > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:114) > ~[main/:na] > at > org.apache.cassandra.net.IncomingTcpConnection.receiveMessage(IncomingTcpConnection.java:190) > ~[main/:na] > at > org.apache.cassandra.net.IncomingTcpConnection.receiveMessages(IncomingTcpConnection.java:178) > ~[main/:na] > at > org.apache.cassandra.net.IncomingTcpConnection.run(IncomingTcpConnection.java:92) > ~[main/:na] > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12076) Add username to AuthenticationException messages
[ https://issues.apache.org/jira/browse/CASSANDRA-12076?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-12076: Reviewer: Sam Tunnicliffe > Add username to AuthenticationException messages > > > Key: CASSANDRA-12076 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12076 > Project: Cassandra > Issue Type: Improvement >Reporter: Geoffrey Yu >Assignee: Geoffrey Yu >Priority: Trivial > Attachments: 12076-trunk-v2.txt, 12076-trunk.txt > > > When an {{AuthenticationException}} is thrown, there are a few places where > the user that initiated the request is not included in the exception message. > It can be useful to have this information included for logging purposes. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11701) [windows] dtest failure in cqlsh_tests.cqlsh_copy_tests.CqlshCopyTest.test_reading_with_skip_and_max_rows
[ https://issues.apache.org/jira/browse/CASSANDRA-11701?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353164#comment-15353164 ] Joshua McKenzie commented on CASSANDRA-11701: - ping [~rhatch] > [windows] dtest failure in > cqlsh_tests.cqlsh_copy_tests.CqlshCopyTest.test_reading_with_skip_and_max_rows > - > > Key: CASSANDRA-11701 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11701 > Project: Cassandra > Issue Type: Test >Reporter: Russ Hatch >Assignee: Stefania > Labels: dtest, windows > > looks to be an assertion problem, so could be test or cassandra related: > e.g.: > {noformat} > 1 != 331 > {noformat} > http://cassci.datastax.com/job/trunk_dtest_win32/404/testReport/cqlsh_tests.cqlsh_copy_tests/CqlshCopyTest/test_reading_with_skip_and_max_rows > Failed on CassCI build trunk_dtest_win32 #404 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-12034) Special handling for Netty's direct memory allocation failure
[ https://issues.apache.org/jira/browse/CASSANDRA-12034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353176#comment-15353176 ] Robert Stupp commented on CASSANDRA-12034: -- ok to commit this to 3.8? or at least the changes to the {{NEWS.txt}}, {{cassandra-env.*}} and {{jvm.options}} files? > Special handling for Netty's direct memory allocation failure > - > > Key: CASSANDRA-12034 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12034 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp >Assignee: Robert Stupp > Labels: doc-impacting > Fix For: 3.x > > > With CASSANDRA-12032, Netty throws a > {{io.netty.util.internal.OutOfDirectMemoryError}} if there's not enough > off-heap memory for the response buffer. We can easily handle this situation > and return an error. This is not a condition that destabilizes the system and > should therefore not passed to {{JVMStabilityInspector}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-12034) Special handling for Netty's direct memory allocation failure
[ https://issues.apache.org/jira/browse/CASSANDRA-12034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353218#comment-15353218 ] T Jake Luciani commented on CASSANDRA-12034: Yeah let me do it. > Special handling for Netty's direct memory allocation failure > - > > Key: CASSANDRA-12034 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12034 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp >Assignee: Robert Stupp > Labels: doc-impacting > Fix For: 3.x > > > With CASSANDRA-12032, Netty throws a > {{io.netty.util.internal.OutOfDirectMemoryError}} if there's not enough > off-heap memory for the response buffer. We can easily handle this situation > and return an error. This is not a condition that destabilizes the system and > should therefore not passed to {{JVMStabilityInspector}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11949) GC log directory should be created in startup scripts
[ https://issues.apache.org/jira/browse/CASSANDRA-11949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353220#comment-15353220 ] Joshua McKenzie commented on CASSANDRA-11949: - bq. it requires me to run some command to enable some policy in the PowerShell console to be able to create the directory The PowerShell startup scripts require you set your execution policy to unrestricted. See: [link|https://technet.microsoft.com/en-us/library/hh847748.aspx]. Theoretically we could limit the scope of the required security access by using [Unblock-File|https://technet.microsoft.com/en-us/library/hh849924.aspx], but then we'd have to swap to RemoteSigned on systems that default to Restricted, etc. Ultimately, just don't run unknown powershell scripts on the user account you're using to run C* on Windows and you're in good shape. > GC log directory should be created in startup scripts > - > > Key: CASSANDRA-11949 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11949 > Project: Cassandra > Issue Type: Bug >Reporter: Joel Knighton >Assignee: Mahdi Mohammadi >Priority: Minor > > In [CASSANDRA-10140], we enabled GC logging by default, since the overhead > was low and asking people providing diagnostics to restart can often make it > more difficult to diagnose problems. > The default GC log path is set to {{$CASSANDRA_HOME/logs/gc.log}} in > {{cassandra-env.sh}}, a directory that is not present in a fresh > clone/install. Even if logback creates this directory later in startup, it is > not present when the JVM initiates GC logging, so GC logging will silently > fail for this first Cassandra run > I haven't tested this in Windows but suspect the same problem may occur. > Since lots of tooling around Cassandra won't create this directory, we should > instead consider attempting to create it in our startup scripts. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-12102) Refactor and simplify Filtering-related StatementRestriction part
Alex Petrov created CASSANDRA-12102: --- Summary: Refactor and simplify Filtering-related StatementRestriction part Key: CASSANDRA-12102 URL: https://issues.apache.org/jira/browse/CASSANDRA-12102 Project: Cassandra Issue Type: Improvement Reporter: Alex Petrov {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], although filtering-related {{Restrictions}} are split with restrictions that would go through the 2i already in {{RowFilter}}. There's still a clear separation, although it's currently made in {{Index}} implementations and {{RowFilter}}, by removing things that were handled by {{Index}} for post-filtering like it's done [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. The primary concern is that we've seen several times that there are many corner-cases, so we may benefit from splitting columns that are handled by the index from ones that are handled by post-filtering early in code and possibly keeping them split for all parts of query. I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change should be quite simple and make the code simpler to understand and extend the filtering / indexing rules. We can also validate that all restrictions have been respected (although we can do that now as well). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: special case for Netty's OOM during response buffer allocation
Repository: cassandra Updated Branches: refs/heads/cassandra-3.8 [created] c31701f60 special case for Netty's OOM during response buffer allocation Patch by snazy; reviewed by tjake for CASSANDRA-12034 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c31701f6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c31701f6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c31701f6 Branch: refs/heads/cassandra-3.8 Commit: c31701f60660b34d82ff5b6bec2db871317bd3b5 Parents: d9a4c78 Author: Robert Stupp Authored: Sun Jun 19 17:30:51 2016 +0200 Committer: T Jake Luciani Committed: Tue Jun 28 11:37:44 2016 -0400 -- CHANGES.txt | 1 + NEWS.txt| 4 +++ conf/cassandra-env.ps1 | 9 --- conf/cassandra-env.sh | 9 --- conf/jvm.options| 28 .../org/apache/cassandra/transport/Message.java | 4 +++ 6 files changed, 37 insertions(+), 18 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c31701f6/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 12a6ddb..3bd691a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.8 + * Upgrade netty to 4.0.37 (CASSANDRA-12032, CASSANDRA-12034) * Improve details in compaction log message (CASSANDRA-12080) * Allow unset values in CQLSSTableWriter (CASSANDRA-11911) * Chunk cache to request compressor-compatible buffers if pool space is exhausted (CASSANDRA-11993) http://git-wip-us.apache.org/repos/asf/cassandra/blob/c31701f6/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 7418f3a..7797d9e 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -19,6 +19,10 @@ using the provided 'sstableupgrade' tool. New features + - Direct memory used for native-protocol network I/O is no longer + managed by the JVM. Instead, Netty allows three options to + manage it via the system property io.netty.maxDirectMemory. + See conf/jvm.options for more information. - Shared pool threads are now named according to the stage they are executing tasks for. Thread names mentioned in traced queries change accordingly. - A new option has been added to cassandra-stress "-rate fixed={number}/s" http://git-wip-us.apache.org/repos/asf/cassandra/blob/c31701f6/conf/cassandra-env.ps1 -- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index 8c4311c..9373ba6 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -350,15 +350,6 @@ Function SetCassandraEnvironment #$env:HEAP_NEWSIZE="800M" CalculateHeapSizes -# Direct memory used for native-protocol network I/O is no longer -# managed by the JVM. Instead, Netty allows three options to -# manage it via the system property io.netty.maxDirectMemory: -# == 0 behavior as before, uses JVM to manage direct memory (slowest). -# < 0 manages direct memory directly, max direct memory as -XX:MaxDirectMemorySize. -# > 0 manages direct memory directly, max direct memory as specified. -# Note, that appreviations like 2g or 500m are NOT accepted. -#$env:JVM_OPTS="$env:JVM_OPTS -Dio.netty.maxDirectMemory=2147483648" - ParseJVMInfo # We only set -Xms and -Xmx if they were not defined on jvm.options file http://git-wip-us.apache.org/repos/asf/cassandra/blob/c31701f6/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index 6d5de21..93434c9 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -167,15 +167,6 @@ USING_G1=$? # Set this to control the amount of arenas per-thread in glibc #export MALLOC_ARENA_MAX=4 -# Direct memory used for native-protocol network I/O is no longer -# managed by the JVM. Instead, Netty allows three options to -# manage it via the system property io.netty.maxDirectMemory: -# == 0 behavior as before, uses JVM to manage direct memory (slowest). -# < 0 manages direct memory directly, max direct memory as -XX:MaxDirectMemorySize. -# > 0 manages direct memory directly, max direct memory as specified. -# Note, that appreviations like 2g or 500m are NOT accepted. -#export JVM_OPTS="$JVM_OPTS -Dio.netty.maxDirectMemory=2147483648" - # only calculate the size if it's not set manually if [ "x$MAX_HEAP_SIZE" = "x" ] && [ "x$HEAP_NEWSIZE" = "x" -o $USING_G1 -eq 0 ]; then calculate_heap_sizes http://git-wip-us.apache.org/
[cassandra] Git Push Summary
Repository: cassandra Updated Tags: refs/tags/3.8-tentative [deleted] d9a4c78a3
[jira] [Updated] (CASSANDRA-12102) Refactor and simplify Filtering-related StatementRestriction part
[ https://issues.apache.org/jira/browse/CASSANDRA-12102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-12102: Description: {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], although filtering-related {{Restrictions}} are split with restrictions that would go through the 2i already in {{RowFilter}}. There's still a clear separation, although it's currently made in {{Index}} implementations and {{RowFilter}}, by removing things that were handled by {{Index}} for post-filtering like it's done [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. The primary concern is that we've seen several times that there are many corner-cases, so we may benefit from splitting columns that are handled by the index from ones that are handled by post-filtering early in code and possibly keeping them split for all parts of query. I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change should be quite simple and make the code simpler to understand and extend the filtering / indexing rules. One problem, as noted by [~blerer] is that index decision is made on replica, depending on cardinality, so splitting them too early might not work. We can also validate that all restrictions have been respected (although we can do that now as well). was: {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], although filtering-related {{Restrictions}} are split with restrictions that would go through the 2i already in {{RowFilter}}. There's still a clear separation, although it's currently made in {{Index}} implementations and {{RowFilter}}, by removing things that were handled by {{Index}} for post-filtering like it's done [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. The primary concern is that we've seen several times that there are many corner-cases, so we may benefit from splitting columns that are handled by the index from ones that are handled by post-filtering early in code and possibly keeping them split for all parts of query. I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change should be quite simple and make the code simpler to understand and extend the filtering / indexing rules. We can also validate that all restrictions have been respected (although we can do that now as well). > Refactor and simplify Filtering-related StatementRestriction part > - > > Key: CASSANDRA-12102 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12102 > Project: Cassandra > Issue Type: Improvement >Reporter: Alex Petrov > > {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], > although filtering-related {{Restrictions}} are split with restrictions that > would go through the 2i already in {{RowFilter}}. > There's still a clear separation, although it's currently made in {{Index}} > implementations and {{RowFilter}}, by removing things that were handled by > {{Index}} for post-filtering like it's done > [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. > > The primary concern is that we've seen several times that there are many > corner-cases, so we may benefit from splitting columns that are handled by > the index from ones that are handled by post-filtering early in code and > possibly keeping them split for all parts of query. > I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two > parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change > should be quite simple and make the code simpler to understand and extend the > filtering / indexing rules. > One problem, as noted by [~blerer] is that index decision is made on replica, > depending on cardinality, so splitting them too early might not work. > We can also validate that all restrictions have been respected (although we > can do that now as well). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-12103) Cassandra is hang and cqlsh was not able to login with OperationTimeout error
peng xiao created CASSANDRA-12103: - Summary: Cassandra is hang and cqlsh was not able to login with OperationTimeout error Key: CASSANDRA-12103 URL: https://issues.apache.org/jira/browse/CASSANDRA-12103 Project: Cassandra Issue Type: Bug Components: Local Write-Read Paths Environment: centos 6.5 cassandra 2.1.9 Reporter: peng xiao Priority: Critical Attachments: system.log.2016-06-28_1257.gz Hi, We have two DC(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. And we experienced a Timeout error today,all applications connected to DC1 were hang and no response,even cqlsh was not able to log into any node in DC1. I restarted the 3 nodes in DC1,the problem was not resolved. Then we switched to DC2,then applications back to normal. Could you please help to take a look? Thanks -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12103) Cassandra is hang and cqlsh was not able to login with OperationTimeout error
[ https://issues.apache.org/jira/browse/CASSANDRA-12103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] peng xiao updated CASSANDRA-12103: -- Description: Hi, We have two DC(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. And we experienced a Timeout error today,all applications connected to DC1 were hang and no response,even cqlsh was not able to log into any node in DC1. I restarted the 3 nodes in DC1,the problem was not resolved. Then we switched to DC2,then applications back to normal. Could you please help to take a look? Thanks many errors like below: ERROR [SharedPool-Worker-43] 2016-06-28 11:58:49,705 Message.java:538 - Unexpected exception during request; channel = [id: 0x87e315d6, /172.16.10.198:13604 => /172.16.11.13:9042] java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 0 responses. at org.apache.cassandra.auth.Auth.selectUser(Auth.java:276) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.auth.Auth.isExistingUser(Auth.java:86) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.service.ClientState.login(ClientState.java:206) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:82) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.9.jar:2.1.9] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.9.jar:2.1.9] at java.lang.Thread.run(Thread.java:744) [na:1.8.0] was: Hi, We have two DC(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. And we experienced a Timeout error today,all applications connected to DC1 were hang and no response,even cqlsh was not able to log into any node in DC1. I restarted the 3 nodes in DC1,the problem was not resolved. Then we switched to DC2,then applications back to normal. Could you please help to take a look? Thanks > Cassandra is hang and cqlsh was not able to login with OperationTimeout error > - > > Key: CASSANDRA-12103 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12103 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths > Environment: centos 6.5 cassandra 2.1.9 >Reporter: peng xiao >Priority: Critical > Attachments: system.log.2016-06-28_1257.gz > > > Hi, > We have two DC(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. > And we experienced a Timeout error today,all applications connected to DC1 > were hang and no response,even cqlsh was not able to log into any node in DC1. > I restarted the 3 nodes in DC1,the problem was not resolved. > Then we switched to DC2,then applications back to normal. > Could you please help to take a look? > Thanks > many errors like below: > ERROR [SharedPool-Worker-43] 2016-06-28 11:58:49,705 Message.java:538 - > Unexpected exception during request; channel = [id: 0x87e315d6, > /172.16.10.198:13604 => /172.16.11.13:9042] > java.lang.RuntimeException: > org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - > received only 0 responses. > at org.apache.cassandra.auth.Auth.selectUser(Auth.java:276) > ~[apache-cassandra-2.1.9.jar:2.1.9] > at org.apache.cassandra.auth.Auth.isExistingUser(Auth.java:86) > ~[apache-cassandra-2.1.9.jar:2.1.9] > at > org.apache.cassandra.service.ClientState.login(ClientState.java:206) > ~[apache-cassandra-2.1.9.jar:2.1.9] > at > org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:82) > ~[apache-cassandra-2.1.9.jar:2.1.9] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(M
[jira] [Updated] (CASSANDRA-12102) Refactor and simplify Filtering-related StatementRestriction part
[ https://issues.apache.org/jira/browse/CASSANDRA-12102?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-12102: Description: {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], although filtering-related {{Restrictions}} are split with restrictions that would go through the 2i already in {{RowFilter}}. There's still a clear separation, although it's currently made in {{Index}} implementations and {{RowFilter}}, by removing things that were handled by {{Index}} for post-filtering like it's done [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. The primary concern is that we've seen several times that there are many corner-cases, so we may benefit from splitting columns that are handled by the index from ones that are handled by post-filtering early in code and possibly keeping them split for all parts of query. I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change should be quite simple and make the code simpler to understand and extend the filtering / indexing rules. -One problem, as noted by [~blerer] is that index decision is made on replica, depending on cardinality, so splitting them too early might not work.- the decision is actually made on the coordinator after [CASSANDRA-10215], although that might involve a larger refactoring, although might still help to keep code related to indexing / filtering together. We can also validate that all restrictions have been respected (although we can do that now as well). was: {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], although filtering-related {{Restrictions}} are split with restrictions that would go through the 2i already in {{RowFilter}}. There's still a clear separation, although it's currently made in {{Index}} implementations and {{RowFilter}}, by removing things that were handled by {{Index}} for post-filtering like it's done [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. The primary concern is that we've seen several times that there are many corner-cases, so we may benefit from splitting columns that are handled by the index from ones that are handled by post-filtering early in code and possibly keeping them split for all parts of query. I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change should be quite simple and make the code simpler to understand and extend the filtering / indexing rules. One problem, as noted by [~blerer] is that index decision is made on replica, depending on cardinality, so splitting them too early might not work. We can also validate that all restrictions have been respected (although we can do that now as well). > Refactor and simplify Filtering-related StatementRestriction part > - > > Key: CASSANDRA-12102 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12102 > Project: Cassandra > Issue Type: Improvement >Reporter: Alex Petrov > > {{RestrictionSet}} hierarchy was significantly improved by [CASSANDRA-11354], > although filtering-related {{Restrictions}} are split with restrictions that > would go through the 2i already in {{RowFilter}}. > There's still a clear separation, although it's currently made in {{Index}} > implementations and {{RowFilter}}, by removing things that were handled by > {{Index}} for post-filtering like it's done > [here|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/db/ReadCommand.java#L374-L378]. > > The primary concern is that we've seen several times that there are many > corner-cases, so we may benefit from splitting columns that are handled by > the index from ones that are handled by post-filtering early in code and > possibly keeping them split for all parts of query. > I suggest to split {{ClusteringColumnRestrictions#addRowFilterTo}} into two > parts, {{addIndexRestrictions}} and {{addFilteringRestrictions}}. The change > should be quite simple and make the code simpler to understand and extend the > filtering / indexing rules. > -One problem, as noted by [~blerer] is that index decision is made on > replica, depending on cardinality, so splitting them too early might not > work.- the decision is actually made on the coordinator after > [CASSANDRA-10215], although that might involve a larger refactoring, although > might still help to keep code related to indexing / filtering together. > We can also validate that all restrictions have been respected (although we > can do tha
[jira] [Commented] (CASSANDRA-11892) Can not replace a dead host
[ https://issues.apache.org/jira/browse/CASSANDRA-11892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353285#comment-15353285 ] Brandon Williams commented on CASSANDRA-11892: -- It's hard to say, perhaps CASSANDRA-10366 bit you at some point, or perhaps there is yet another very difficult to pinpoint race that still exists. > Can not replace a dead host > --- > > Key: CASSANDRA-11892 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11892 > Project: Cassandra > Issue Type: Bug >Reporter: Dikang Gu > Attachments: 0001-handle-hibernate-case.patch > > > I got some errors when trying to replace a dead host. > {code} > 2016-05-25_20:59:37.61838 ERROR 20:59:37 [main]: Exception encountered during > startup > 2016-05-25_20:59:37.61839 java.lang.UnsupportedOperationException: Cannot > replace token 100284002935427428580945058996711341062 which does not exist! > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:925) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:740) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:617) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61840 at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:389) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61840 at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:564) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61841 at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:653) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61910 Exception encountered during startup: Cannot > replace token 100284002935427428580945058996711341062 which does not exist! > {code} > the status of the node is DN: > {code} > Status=Up/Down > |/ State=Normal/Leaving/Joining/Moving > -- Address Load Tokens OwnsHost ID > Rack > DN 2401:db00:2050:4196:face:0:13:0 809.83 GB 256 ? null > ash5-04-pp > {code} > I add some logging and find something like this: > {code} > 2016-05-25_20:58:33.44305 INFO 20:58:33 [main]: Gathering node replacement > information for /2401:db00:2050:4196:face:0:13:0 > 2016-05-25_20:58:34.36966 INFO 20:58:34 [GossipStage:1]: InetAddress > /2401:db00:2050:4196:face:0:13:0 is now DOWN > 2016-05-25_20:58:41.12167 INFO 20:58:41 [GossipStage:1]: InetAddress > /2401:db00:2050:4196:face:0:13:0 is now DOWN > 2016-05-25_20:58:41.12248 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 state STATUS > 2016-05-25_20:58:41.12250 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 movename hibernate > 2016-05-25_20:58:41.12252 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 state LOAD > {code} > I find in the StorageService.onChange, we do not handle the "hibernate" > VersionValue, does it cause the problem? > Is it safe to apply the patch to fix it? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12103) Cassandra is hang and cqlsh was not able to login with OperationTimeout error
[ https://issues.apache.org/jira/browse/CASSANDRA-12103?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] peng xiao updated CASSANDRA-12103: -- Description: Hi, We have two DCs(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. And we experienced a Timeout error today,all applications connected to DC1 were hang and no response,even cqlsh was not able to log into any node in DC1. I restarted the 3 nodes in DC1,the problem was not resolved. Then we switched to DC2,then applications back to normal. Could you please help to take a look? Thanks many errors like below: ERROR [SharedPool-Worker-43] 2016-06-28 11:58:49,705 Message.java:538 - Unexpected exception during request; channel = [id: 0x87e315d6, /172.16.10.198:13604 => /172.16.11.13:9042] java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 0 responses. at org.apache.cassandra.auth.Auth.selectUser(Auth.java:276) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.auth.Auth.isExistingUser(Auth.java:86) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.service.ClientState.login(ClientState.java:206) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:82) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.9.jar:2.1.9] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.9.jar:2.1.9] at java.lang.Thread.run(Thread.java:744) [na:1.8.0] was: Hi, We have two DC(DC1 and DC2) with DC1 3 nodes and DC2 9 nodes. And we experienced a Timeout error today,all applications connected to DC1 were hang and no response,even cqlsh was not able to log into any node in DC1. I restarted the 3 nodes in DC1,the problem was not resolved. Then we switched to DC2,then applications back to normal. Could you please help to take a look? Thanks many errors like below: ERROR [SharedPool-Worker-43] 2016-06-28 11:58:49,705 Message.java:538 - Unexpected exception during request; channel = [id: 0x87e315d6, /172.16.10.198:13604 => /172.16.11.13:9042] java.lang.RuntimeException: org.apache.cassandra.exceptions.ReadTimeoutException: Operation timed out - received only 0 responses. at org.apache.cassandra.auth.Auth.selectUser(Auth.java:276) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.auth.Auth.isExistingUser(Auth.java:86) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.service.ClientState.login(ClientState.java:206) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:82) ~[apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.9.jar:2.1.9] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.9.jar:2.1.9] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracin
[jira] [Updated] (CASSANDRA-12034) Special handling for Netty's direct memory allocation failure
[ https://issues.apache.org/jira/browse/CASSANDRA-12034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani updated CASSANDRA-12034: --- Resolution: Fixed Fix Version/s: (was: 3.x) 3.8 Status: Resolved (was: Patch Available) > Special handling for Netty's direct memory allocation failure > - > > Key: CASSANDRA-12034 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12034 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp >Assignee: Robert Stupp > Labels: doc-impacting > Fix For: 3.8 > > > With CASSANDRA-12032, Netty throws a > {{io.netty.util.internal.OutOfDirectMemoryError}} if there's not enough > off-heap memory for the response buffer. We can easily handle this situation > and return an error. This is not a condition that destabilizes the system and > should therefore not passed to {{JVMStabilityInspector}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-11892) Can not replace a dead host
[ https://issues.apache.org/jira/browse/CASSANDRA-11892?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353301#comment-15353301 ] Joel Knighton commented on CASSANDRA-11892: --- I suspect that it is another race. This is part of a set of tickets [~dikanggu] reported at roughly the same time, and there were some cascading failures that could have hit an interesting race here. For the record, these are still on my radar if very slow to get to - my apologies. > Can not replace a dead host > --- > > Key: CASSANDRA-11892 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11892 > Project: Cassandra > Issue Type: Bug >Reporter: Dikang Gu > Attachments: 0001-handle-hibernate-case.patch > > > I got some errors when trying to replace a dead host. > {code} > 2016-05-25_20:59:37.61838 ERROR 20:59:37 [main]: Exception encountered during > startup > 2016-05-25_20:59:37.61839 java.lang.UnsupportedOperationException: Cannot > replace token 100284002935427428580945058996711341062 which does not exist! > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:925) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:740) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61839 at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:617) > ~[apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61840 at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:389) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61840 at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:564) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61841 at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:653) > [apache-cassandra-2.1.14+git20160523.7442267.jar:2.1.14+git20160523.7442267] > 2016-05-25_20:59:37.61910 Exception encountered during startup: Cannot > replace token 100284002935427428580945058996711341062 which does not exist! > {code} > the status of the node is DN: > {code} > Status=Up/Down > |/ State=Normal/Leaving/Joining/Moving > -- Address Load Tokens OwnsHost ID > Rack > DN 2401:db00:2050:4196:face:0:13:0 809.83 GB 256 ? null > ash5-04-pp > {code} > I add some logging and find something like this: > {code} > 2016-05-25_20:58:33.44305 INFO 20:58:33 [main]: Gathering node replacement > information for /2401:db00:2050:4196:face:0:13:0 > 2016-05-25_20:58:34.36966 INFO 20:58:34 [GossipStage:1]: InetAddress > /2401:db00:2050:4196:face:0:13:0 is now DOWN > 2016-05-25_20:58:41.12167 INFO 20:58:41 [GossipStage:1]: InetAddress > /2401:db00:2050:4196:face:0:13:0 is now DOWN > 2016-05-25_20:58:41.12248 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 state STATUS > 2016-05-25_20:58:41.12250 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 movename hibernate > 2016-05-25_20:58:41.12252 INFO 20:58:41 [GossipStage:1]: Node > /2401:db00:2050:4196:face:0:13:0 state LOAD > {code} > I find in the StorageService.onChange, we do not handle the "hibernate" > VersionValue, does it cause the problem? > Is it safe to apply the patch to fix it? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-12100: Component/s: Compaction > Compactions are stuck after TRUNCATE > > > Key: CASSANDRA-12100 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 > Project: Cassandra > Issue Type: Bug > Components: Compaction >Reporter: Stefano Ortolani > Fix For: 3.0.x > > > Hi, > since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when > truncating the column family. I verified this on all nodes of the cluster. > Pending compactions seem to disappear after restarting the node. > {noformat} > root@node10:~# nodetool -h localhost compactionstats > pending tasks: 6 > id compaction type > keyspacetable completed totalunit progress >24e1ad30-3cac-11e6-870d-5de740693258Compaction > schema table_1 0 57558382 bytes 0.00% >2be2e3b0-3cac-11e6-870d-5de740693258Compaction > schema table_2 0 65063705 bytes 0.00% >54de38f0-3cac-11e6-870d-5de740693258Compaction > schema table_3 0 187031 bytes 0.00% >31926ce0-3cac-11e6-870d-5de740693258Compaction > schema table_4 0 42951119 bytes 0.00% >3911ad00-3cac-11e6-870d-5de740693258Compaction > schema table_5 0 25918949 bytes 0.00% >3e6a8ab0-3cac-11e6-870d-5de740693258Compaction > schema table_6 0 65466210 bytes 0.00% > Active compaction remaining time : 0h00m15s > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12100) Compactions are stuck after TRUNCATE
[ https://issues.apache.org/jira/browse/CASSANDRA-12100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-12100: Fix Version/s: 3.0.x > Compactions are stuck after TRUNCATE > > > Key: CASSANDRA-12100 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12100 > Project: Cassandra > Issue Type: Bug > Components: Compaction >Reporter: Stefano Ortolani > Fix For: 3.0.x > > > Hi, > since the upgrade to C* 3.0.7 I see compaction tasks getting stuck when > truncating the column family. I verified this on all nodes of the cluster. > Pending compactions seem to disappear after restarting the node. > {noformat} > root@node10:~# nodetool -h localhost compactionstats > pending tasks: 6 > id compaction type > keyspacetable completed totalunit progress >24e1ad30-3cac-11e6-870d-5de740693258Compaction > schema table_1 0 57558382 bytes 0.00% >2be2e3b0-3cac-11e6-870d-5de740693258Compaction > schema table_2 0 65063705 bytes 0.00% >54de38f0-3cac-11e6-870d-5de740693258Compaction > schema table_3 0 187031 bytes 0.00% >31926ce0-3cac-11e6-870d-5de740693258Compaction > schema table_4 0 42951119 bytes 0.00% >3911ad00-3cac-11e6-870d-5de740693258Compaction > schema table_5 0 25918949 bytes 0.00% >3e6a8ab0-3cac-11e6-870d-5de740693258Compaction > schema table_6 0 65466210 bytes 0.00% > Active compaction remaining time : 0h00m15s > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-12074) Faster check for open JMX port on startup
[ https://issues.apache.org/jira/browse/CASSANDRA-12074?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-12074: Resolution: Fixed Fix Version/s: (was: 3.x) 3.10 Status: Resolved (was: Ready to Commit) Thanks, committed as {{c7ad00e3ea13e326f7472996cf682b7b81087dea}} to trunk. > Faster check for open JMX port on startup > - > > Key: CASSANDRA-12074 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12074 > Project: Cassandra > Issue Type: Improvement > Components: Lifecycle >Reporter: Tyler Hobbs >Assignee: Tyler Hobbs >Priority: Minor > Fix For: 3.10 > > > Since CASSANDRA-7254, we check whether the JMX port is available before > starting Cassandra in order to provide a better error message when another > Cassandra process is already running. The current check starts a Java > process to do this, which takes ~3 seconds. Instead, we can use {{lsof}}, > which is basically instantaneous. > By my estimate, this will shave about 40 minutes off our dtest runs. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-12034) Special handling for Netty's direct memory allocation failure
[ https://issues.apache.org/jira/browse/CASSANDRA-12034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353295#comment-15353295 ] T Jake Luciani commented on CASSANDRA-12034: committed to 3.8 {{c31701f60660b34d82ff5b6bec2db871317bd3b5}} will merge up to 3.9 and 3.10 after some testing... > Special handling for Netty's direct memory allocation failure > - > > Key: CASSANDRA-12034 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12034 > Project: Cassandra > Issue Type: Improvement >Reporter: Robert Stupp >Assignee: Robert Stupp > Labels: doc-impacting > Fix For: 3.x > > > With CASSANDRA-12032, Netty throws a > {{io.netty.util.internal.OutOfDirectMemoryError}} if there's not enough > off-heap memory for the response buffer. We can easily handle this situation > and return an error. This is not a condition that destabilizes the system and > should therefore not passed to {{JVMStabilityInspector}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Remove pre-startup check for open JMX port
Repository: cassandra Updated Branches: refs/heads/trunk 3023d59ba -> c7ad00e3e Remove pre-startup check for open JMX port Patch by Tyler Hobbs; reviewed by Sam Tunnicliffe for CASSANDRA-12074 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c7ad00e3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c7ad00e3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c7ad00e3 Branch: refs/heads/trunk Commit: c7ad00e3ea13e326f7472996cf682b7b81087dea Parents: 3023d59 Author: Tyler Hobbs Authored: Tue Jun 28 11:16:28 2016 -0500 Committer: Tyler Hobbs Committed: Tue Jun 28 11:16:28 2016 -0500 -- CHANGES.txt | 3 +++ bin/cassandra | 7 --- 2 files changed, 3 insertions(+), 7 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c7ad00e3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 075d44a..ae6460e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +3.10 + * Remove pre-startup check for open JMX port (CASSANDRA-12074) + 3.9 Merged from 2.1: * Avoid stalling paxos when the paxos state expires (CASSANDRA-12043) http://git-wip-us.apache.org/repos/asf/cassandra/blob/c7ad00e3/bin/cassandra -- diff --git a/bin/cassandra b/bin/cassandra index 3206fdc..acf87cb 100755 --- a/bin/cassandra +++ b/bin/cassandra @@ -273,13 +273,6 @@ if [ "x$allow_root" != "xyes" ] ; then fi fi -# see CASSANDRA-7254 -"$JAVA" -cp "$CLASSPATH" $JVM_OPTS 2>&1 | grep -q 'Error: Exception thrown by the agent : java.lang.NullPointerException' -if [ $? -ne "1" ]; then -echo Unable to bind JMX, is Cassandra already running? -exit 1; -fi - # Start up the service launch_service "$pidfile" "$foreground" "$properties" "$classname"
[jira] [Commented] (CASSANDRA-11303) New inbound throughput parameters for streaming
[ https://issues.apache.org/jira/browse/CASSANDRA-11303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15353401#comment-15353401 ] Paulo Motta commented on CASSANDRA-11303: - [~skonno] I did not address the review comments, I just submitted the tests for your previous code. Can you address the suggestions, if you're not doing it already? Thanks! > New inbound throughput parameters for streaming > --- > > Key: CASSANDRA-11303 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11303 > Project: Cassandra > Issue Type: New Feature > Components: Configuration >Reporter: Satoshi Konno >Priority: Minor > Attachments: 11303_inbound_limit_debug_20160419.log, > 11303_inbound_nolimit_debug_20160419.log, > 11303_inbound_patch_for_trunk_20160419.diff, > 11303_inbound_patch_for_trunk_20160525.diff, > 200vs40inboundstreamthroughput.png, cassandra_inbound_stream.diff > > > Hi, > To specify stream throughputs of a node more clearly, I would like to add the > following new inbound parameters like existing outbound parameters in the > cassandra.yaml. > - stream_throughput_inbound_megabits_per_sec > - inter_dc_stream_throughput_outbound_megabits_per_sec > We use only the existing outbound parameters now, but it is difficult to > control the total throughputs of a node. In our production network, some > critical alerts occurs when a node exceed the specified total throughput > which is the sum of the input and output throughputs. > In our operation of Cassandra, the alerts occurs during the bootstrap or > repair processing when a new node is added. In the worst case, we have to > stop the operation of the exceed node. > I have attached the patch under consideration. I would like to add a new > limiter class, StreamInboundRateLimiter, and use the limiter class in > StreamDeserializer class. I use Row::dataSize( )to get the input throughput > in StreamDeserializer::newPartition(), but I am not sure whether the > dataSize() returns the correct data size. > Can someone please tell me how to do it ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.9
Merge branch 'cassandra-3.0' into cassandra-3.9 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0294fd89 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0294fd89 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0294fd89 Branch: refs/heads/trunk Commit: 0294fd8911d80178d6678e9ff057adaed1266fd7 Parents: 53f8f09 2395f9e Author: Josh McKenzie Authored: Tue Jun 28 13:47:49 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:47:49 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0294fd89/conf/cassandra-env.ps1 -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0294fd89/conf/cassandra-env.sh --
[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/2395f9e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2395f9e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2395f9e4 Branch: refs/heads/cassandra-3.9 Commit: 2395f9e4678c76fa288675c57496259515efef90 Parents: 7005972 3a61c10 Author: Josh McKenzie Authored: Tue Jun 28 13:47:08 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:47:24 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.ps1 -- diff --cc conf/cassandra-env.ps1 index 794189f,60d15bb..80645f9 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@@ -327,25 -326,6 +327,26 @@@ Function SetCassandraEnvironmen # times. If in doubt, and if you do not particularly want to tweak, go # 100 MB per physical CPU core. ++New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ +#GC log path has to be defined here since it needs to find CASSANDRA_HOME +$env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" + +# Read user-defined JVM options from jvm.options file +$content = Get-Content "$env:CASSANDRA_CONF\jvm.options" +for ($i = 0; $i -lt $content.Count; $i++) +{ +$line = $content[$i] +if ($line.StartsWith("-")) +{ +$env:JVM_OPTS = "$env:JVM_OPTS $line" +} +} + +$defined_xmn = $env:JVM_OPTS -like '*Xmn*' +$defined_xmx = $env:JVM_OPTS -like '*Xmx*' +$defined_xms = $env:JVM_OPTS -like '*Xms*' +$using_cms = $env:JVM_OPTS -like '*UseConcMarkSweepGC*' + #$env:MAX_HEAP_SIZE="4096M" #$env:HEAP_NEWSIZE="800M" CalculateHeapSizes http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.sh -- diff --cc conf/cassandra-env.sh index 44fe110,5d2330c..568448b --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@@ -121,30 -124,6 +121,31 @@@ case "$jvm" i ;; esac ++mkdir -p ${CASSANDRA_HOME}/logs/ +#GC log path has to be defined here because it needs to access CASSANDRA_HOME +JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" + +# Here we create the arguments that will get passed to the jvm when +# starting cassandra. + +# Read user-defined JVM options from jvm.options file +JVM_OPTS_FILE=$CASSANDRA_CONF/jvm.options +for opt in `grep "^-" $JVM_OPTS_FILE` +do + JVM_OPTS="$JVM_OPTS $opt" +done + +# Check what parameters were defined on jvm.options file to avoid conflicts +echo $JVM_OPTS | grep -q Xmn +DEFINED_XMN=$? +echo $JVM_OPTS | grep -q Xmx +DEFINED_XMX=$? +echo $JVM_OPTS | grep -q Xms +DEFINED_XMS=$? +echo $JVM_OPTS | grep -q UseConcMarkSweepGC +USING_CMS=$? +echo $JVM_OPTS | grep -q UseG1GC +USING_G1=$? # Override these to set the amount of memory to allocate to the JVM at # start-up. For production use you may wish to adjust this for your
[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/2395f9e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2395f9e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2395f9e4 Branch: refs/heads/cassandra-3.0 Commit: 2395f9e4678c76fa288675c57496259515efef90 Parents: 7005972 3a61c10 Author: Josh McKenzie Authored: Tue Jun 28 13:47:08 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:47:24 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.ps1 -- diff --cc conf/cassandra-env.ps1 index 794189f,60d15bb..80645f9 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@@ -327,25 -326,6 +327,26 @@@ Function SetCassandraEnvironmen # times. If in doubt, and if you do not particularly want to tweak, go # 100 MB per physical CPU core. ++New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ +#GC log path has to be defined here since it needs to find CASSANDRA_HOME +$env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" + +# Read user-defined JVM options from jvm.options file +$content = Get-Content "$env:CASSANDRA_CONF\jvm.options" +for ($i = 0; $i -lt $content.Count; $i++) +{ +$line = $content[$i] +if ($line.StartsWith("-")) +{ +$env:JVM_OPTS = "$env:JVM_OPTS $line" +} +} + +$defined_xmn = $env:JVM_OPTS -like '*Xmn*' +$defined_xmx = $env:JVM_OPTS -like '*Xmx*' +$defined_xms = $env:JVM_OPTS -like '*Xms*' +$using_cms = $env:JVM_OPTS -like '*UseConcMarkSweepGC*' + #$env:MAX_HEAP_SIZE="4096M" #$env:HEAP_NEWSIZE="800M" CalculateHeapSizes http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.sh -- diff --cc conf/cassandra-env.sh index 44fe110,5d2330c..568448b --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@@ -121,30 -124,6 +121,31 @@@ case "$jvm" i ;; esac ++mkdir -p ${CASSANDRA_HOME}/logs/ +#GC log path has to be defined here because it needs to access CASSANDRA_HOME +JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" + +# Here we create the arguments that will get passed to the jvm when +# starting cassandra. + +# Read user-defined JVM options from jvm.options file +JVM_OPTS_FILE=$CASSANDRA_CONF/jvm.options +for opt in `grep "^-" $JVM_OPTS_FILE` +do + JVM_OPTS="$JVM_OPTS $opt" +done + +# Check what parameters were defined on jvm.options file to avoid conflicts +echo $JVM_OPTS | grep -q Xmn +DEFINED_XMN=$? +echo $JVM_OPTS | grep -q Xmx +DEFINED_XMX=$? +echo $JVM_OPTS | grep -q Xms +DEFINED_XMS=$? +echo $JVM_OPTS | grep -q UseConcMarkSweepGC +USING_CMS=$? +echo $JVM_OPTS | grep -q UseG1GC +USING_G1=$? # Override these to set the amount of memory to allocate to the JVM at # start-up. For production use you may wish to adjust this for your
[02/10] cassandra git commit: Fix GC logging on first start
Fix GC logging on first start Patch by mmohammadi; reviewed by jmckenzie for CASSANDRA-11949 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a61c106 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a61c106 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a61c106 Branch: refs/heads/cassandra-3.0 Commit: 3a61c106595745694a73970c780c3713776f4362 Parents: 6555a87 Author: Mahdi Mohammadi Authored: Tue Jun 28 13:46:38 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:46:38 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.ps1 -- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index 321a9ca..60d15bb 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -425,6 +425,7 @@ Function SetCassandraEnvironment $env:JVM_OPTS="$env:JVM_OPTS -XX:+PrintPromotionFailure" # $env:JVM_OPTS="$env:JVM_OPTS -XX:PrintFLSStatistics=1" +New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ $env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" $env:JVM_OPTS="$env:JVM_OPTS -XX:+UseGCLogFileRotation" $env:JVM_OPTS="$env:JVM_OPTS -XX:NumberOfGCLogFiles=10" http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index b519b76..5d2330c 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -241,6 +241,7 @@ JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime" JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure" #JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1" +mkdir -p ${CASSANDRA_HOME}/logs/ JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" JVM_OPTS="$JVM_OPTS -XX:+UseGCLogFileRotation" JVM_OPTS="$JVM_OPTS -XX:NumberOfGCLogFiles=10"
[01/10] cassandra git commit: Fix GC logging on first start
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 6555a87bd -> 3a61c1065 refs/heads/cassandra-3.0 70059726f -> 2395f9e46 refs/heads/cassandra-3.9 53f8f0957 -> 0294fd891 refs/heads/trunk c7ad00e3e -> a842a9681 Fix GC logging on first start Patch by mmohammadi; reviewed by jmckenzie for CASSANDRA-11949 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a61c106 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a61c106 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a61c106 Branch: refs/heads/cassandra-2.2 Commit: 3a61c106595745694a73970c780c3713776f4362 Parents: 6555a87 Author: Mahdi Mohammadi Authored: Tue Jun 28 13:46:38 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:46:38 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.ps1 -- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index 321a9ca..60d15bb 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -425,6 +425,7 @@ Function SetCassandraEnvironment $env:JVM_OPTS="$env:JVM_OPTS -XX:+PrintPromotionFailure" # $env:JVM_OPTS="$env:JVM_OPTS -XX:PrintFLSStatistics=1" +New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ $env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" $env:JVM_OPTS="$env:JVM_OPTS -XX:+UseGCLogFileRotation" $env:JVM_OPTS="$env:JVM_OPTS -XX:NumberOfGCLogFiles=10" http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index b519b76..5d2330c 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -241,6 +241,7 @@ JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime" JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure" #JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1" +mkdir -p ${CASSANDRA_HOME}/logs/ JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" JVM_OPTS="$JVM_OPTS -XX:+UseGCLogFileRotation" JVM_OPTS="$JVM_OPTS -XX:NumberOfGCLogFiles=10"
[04/10] cassandra git commit: Fix GC logging on first start
Fix GC logging on first start Patch by mmohammadi; reviewed by jmckenzie for CASSANDRA-11949 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3a61c106 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3a61c106 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3a61c106 Branch: refs/heads/trunk Commit: 3a61c106595745694a73970c780c3713776f4362 Parents: 6555a87 Author: Mahdi Mohammadi Authored: Tue Jun 28 13:46:38 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:46:38 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.ps1 -- diff --git a/conf/cassandra-env.ps1 b/conf/cassandra-env.ps1 index 321a9ca..60d15bb 100644 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@ -425,6 +425,7 @@ Function SetCassandraEnvironment $env:JVM_OPTS="$env:JVM_OPTS -XX:+PrintPromotionFailure" # $env:JVM_OPTS="$env:JVM_OPTS -XX:PrintFLSStatistics=1" +New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ $env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" $env:JVM_OPTS="$env:JVM_OPTS -XX:+UseGCLogFileRotation" $env:JVM_OPTS="$env:JVM_OPTS -XX:NumberOfGCLogFiles=10" http://git-wip-us.apache.org/repos/asf/cassandra/blob/3a61c106/conf/cassandra-env.sh -- diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh index b519b76..5d2330c 100644 --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@ -241,6 +241,7 @@ JVM_OPTS="$JVM_OPTS -XX:+PrintGCApplicationStoppedTime" JVM_OPTS="$JVM_OPTS -XX:+PrintPromotionFailure" #JVM_OPTS="$JVM_OPTS -XX:PrintFLSStatistics=1" +mkdir -p ${CASSANDRA_HOME}/logs/ JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" JVM_OPTS="$JVM_OPTS -XX:+UseGCLogFileRotation" JVM_OPTS="$JVM_OPTS -XX:NumberOfGCLogFiles=10"
[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/2395f9e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2395f9e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2395f9e4 Branch: refs/heads/trunk Commit: 2395f9e4678c76fa288675c57496259515efef90 Parents: 7005972 3a61c10 Author: Josh McKenzie Authored: Tue Jun 28 13:47:08 2016 -0400 Committer: Josh McKenzie Committed: Tue Jun 28 13:47:24 2016 -0400 -- conf/cassandra-env.ps1 | 1 + conf/cassandra-env.sh | 1 + 2 files changed, 2 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.ps1 -- diff --cc conf/cassandra-env.ps1 index 794189f,60d15bb..80645f9 --- a/conf/cassandra-env.ps1 +++ b/conf/cassandra-env.ps1 @@@ -327,25 -326,6 +327,26 @@@ Function SetCassandraEnvironmen # times. If in doubt, and if you do not particularly want to tweak, go # 100 MB per physical CPU core. ++New-Item -Force -ItemType directory -Path $env:CASSANDRA_HOME/logs/ +#GC log path has to be defined here since it needs to find CASSANDRA_HOME +$env:JVM_OPTS="$env:JVM_OPTS -Xloggc:""$env:CASSANDRA_HOME/logs/gc.log""" + +# Read user-defined JVM options from jvm.options file +$content = Get-Content "$env:CASSANDRA_CONF\jvm.options" +for ($i = 0; $i -lt $content.Count; $i++) +{ +$line = $content[$i] +if ($line.StartsWith("-")) +{ +$env:JVM_OPTS = "$env:JVM_OPTS $line" +} +} + +$defined_xmn = $env:JVM_OPTS -like '*Xmn*' +$defined_xmx = $env:JVM_OPTS -like '*Xmx*' +$defined_xms = $env:JVM_OPTS -like '*Xms*' +$using_cms = $env:JVM_OPTS -like '*UseConcMarkSweepGC*' + #$env:MAX_HEAP_SIZE="4096M" #$env:HEAP_NEWSIZE="800M" CalculateHeapSizes http://git-wip-us.apache.org/repos/asf/cassandra/blob/2395f9e4/conf/cassandra-env.sh -- diff --cc conf/cassandra-env.sh index 44fe110,5d2330c..568448b --- a/conf/cassandra-env.sh +++ b/conf/cassandra-env.sh @@@ -121,30 -124,6 +121,31 @@@ case "$jvm" i ;; esac ++mkdir -p ${CASSANDRA_HOME}/logs/ +#GC log path has to be defined here because it needs to access CASSANDRA_HOME +JVM_OPTS="$JVM_OPTS -Xloggc:${CASSANDRA_HOME}/logs/gc.log" + +# Here we create the arguments that will get passed to the jvm when +# starting cassandra. + +# Read user-defined JVM options from jvm.options file +JVM_OPTS_FILE=$CASSANDRA_CONF/jvm.options +for opt in `grep "^-" $JVM_OPTS_FILE` +do + JVM_OPTS="$JVM_OPTS $opt" +done + +# Check what parameters were defined on jvm.options file to avoid conflicts +echo $JVM_OPTS | grep -q Xmn +DEFINED_XMN=$? +echo $JVM_OPTS | grep -q Xmx +DEFINED_XMX=$? +echo $JVM_OPTS | grep -q Xms +DEFINED_XMS=$? +echo $JVM_OPTS | grep -q UseConcMarkSweepGC +USING_CMS=$? +echo $JVM_OPTS | grep -q UseG1GC +USING_G1=$? # Override these to set the amount of memory to allocate to the JVM at # start-up. For production use you may wish to adjust this for your