[15/21] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread marcuse
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

2016-06-28 Thread Marcus Eriksson (JIRA)

 [ 
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

2016-06-28 Thread Stefano Ortolani (JIRA)
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

2016-06-28 Thread Stefano Ortolani (JIRA)

[ 
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

2016-06-28 Thread Marcus Eriksson (JIRA)

 [ 
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

2016-06-28 Thread Stefano Ortolani (JIRA)

[ 
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

2016-06-28 Thread Stefano Ortolani (JIRA)

[ 
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

2016-06-28 Thread Stefano Ortolani (JIRA)

 [ 
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

2016-06-28 Thread Sylvain Lebresne (JIRA)

[ 
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

2016-06-28 Thread Paulo Motta (JIRA)

[ 
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

2016-06-28 Thread Paulo Motta (JIRA)

[ 
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread Sylvain Lebresne (JIRA)

 [ 
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

2016-06-28 Thread Paulo Motta (JIRA)

[ 
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

2016-06-28 Thread Marcus Eriksson (JIRA)

 [ 
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

2016-06-28 Thread Arindam Gupta (JIRA)

[ 
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

2016-06-28 Thread Julien (JIRA)

 [ 
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

2016-06-28 Thread Julien (JIRA)

 [ 
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

2016-06-28 Thread Julien (JIRA)
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

2016-06-28 Thread Julien (JIRA)

 [ 
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

2016-06-28 Thread Julien (JIRA)

 [ 
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

2016-06-28 Thread Benjamin Lerer (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread slebresne
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)

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread slebresne
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

 [ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

[ 
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

2016-06-28 Thread Robert Stupp (JIRA)

[ 
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

2016-06-28 Thread T Jake Luciani (JIRA)

[ 
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

2016-06-28 Thread Joshua McKenzie (JIRA)

[ 
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

2016-06-28 Thread Alex Petrov (JIRA)
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

2016-06-28 Thread jake
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

2016-06-28 Thread jake
Repository: cassandra
Updated Tags:  refs/tags/3.8-tentative [deleted] d9a4c78a3


[jira] [Updated] (CASSANDRA-12102) Refactor and simplify Filtering-related StatementRestriction part

2016-06-28 Thread Alex Petrov (JIRA)

 [ 
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

2016-06-28 Thread peng xiao (JIRA)
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

2016-06-28 Thread peng xiao (JIRA)

 [ 
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

2016-06-28 Thread Alex Petrov (JIRA)

 [ 
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

2016-06-28 Thread Brandon Williams (JIRA)

[ 
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

2016-06-28 Thread peng xiao (JIRA)

 [ 
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

2016-06-28 Thread T Jake Luciani (JIRA)

 [ 
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

2016-06-28 Thread Joel Knighton (JIRA)

[ 
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

2016-06-28 Thread Philip Thompson (JIRA)

 [ 
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

2016-06-28 Thread Philip Thompson (JIRA)

 [ 
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

2016-06-28 Thread Tyler Hobbs (JIRA)

 [ 
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

2016-06-28 Thread T Jake Luciani (JIRA)

[ 
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

2016-06-28 Thread tylerhobbs
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

2016-06-28 Thread Paulo Motta (JIRA)

[ 
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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

2016-06-28 Thread jmckenzie
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



  1   2   >