[jira] [Updated] (CASSANDRA-11448) Running OOS should trigger the disk failure policy

2016-03-31 Thread Branimir Lambov (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Branimir Lambov updated CASSANDRA-11448:

Status: Patch Available  (was: In Progress)

> Running OOS should trigger the disk failure policy
> --
>
> Key: CASSANDRA-11448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11448
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Brandon Williams
>Assignee: Branimir Lambov
> Fix For: 2.1.x, 2.2.x, 3.0.x
>
>
> Currently when you run OOS, this happens:
> {noformat}
> ERROR [MemtableFlushWriter:8561] 2016-03-28 01:17:37,047  
> CassandraDaemon.java:229 - Exception in thread 
> Thread[MemtableFlushWriter:8561,5,main]   java.lang.RuntimeException: 
> Insufficient disk space to write 48 bytes 
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.getWriteDirectory(DiskAwareRunnable.java:29)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:332) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
>  ~[guava-16.0.1.jar:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1120)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_66]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_66]
> at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66]
> {noformat}
> Now your flush writer is dead and postflush tasks build up forever.  Instead 
> we should throw FSWE and trigger the failure policy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11448) Running OOS should trigger the disk failure policy

2016-03-31 Thread Branimir Lambov (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Branimir Lambov updated CASSANDRA-11448:

Fix Version/s: 3.x

> Running OOS should trigger the disk failure policy
> --
>
> Key: CASSANDRA-11448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11448
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Brandon Williams
>Assignee: Branimir Lambov
> Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> Currently when you run OOS, this happens:
> {noformat}
> ERROR [MemtableFlushWriter:8561] 2016-03-28 01:17:37,047  
> CassandraDaemon.java:229 - Exception in thread 
> Thread[MemtableFlushWriter:8561,5,main]   java.lang.RuntimeException: 
> Insufficient disk space to write 48 bytes 
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.getWriteDirectory(DiskAwareRunnable.java:29)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:332) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
>  ~[guava-16.0.1.jar:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1120)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_66]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_66]
> at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66]
> {noformat}
> Now your flush writer is dead and postflush tasks build up forever.  Instead 
> we should throw FSWE and trigger the failure policy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11448) Running OOS should trigger the disk failure policy

2016-03-31 Thread Branimir Lambov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219524#comment-15219524
 ] 

Branimir Lambov commented on CASSANDRA-11448:
-

Patch here:
|[2.1|https://github.com/blambov/cassandra/tree/11448-2.1]|[utest|http://cassci.datastax.com/job/blambov-11448-2.1-testall/]|[dtest|http://cassci.datastax.com/job/blambov-11448-2.1-dtest/]|
|[2.2|https://github.com/blambov/cassandra/tree/11448-2.2]|[utest|http://cassci.datastax.com/job/blambov-11448-2.2-testall/]|[dtest|http://cassci.datastax.com/job/blambov-11448-2.2-dtest/]|
|[3.0|https://github.com/blambov/cassandra/tree/11448-3.0]|[utest|http://cassci.datastax.com/job/blambov-11448-3.0-testall/]|[dtest|http://cassci.datastax.com/job/blambov-11448-3.0-dtest/]|
|[trunk|https://github.com/blambov/cassandra/tree/11448]|[utest|http://cassci.datastax.com/job/blambov-11448-testall/]|[dtest|http://cassci.datastax.com/job/blambov-11448-dtest/]|
2.1 patch applies cleanly up to 3.0 (disregarding {{CHANGES.txt}} conflicts), 
trunk is different.

Changes the error thrown to {{FSWriteError}}, applies 
{{JVMStabilityInspector}}, passes it on to the post-flush instead of failing to 
trigger it, and makes sure commit log is not discarded for failed flushes. 
Trunk version also removes unused {{DiskAwareRunnable}} and fixes {{null}} 
return from {{getWriteableLocation}} not being treated properly.

> Running OOS should trigger the disk failure policy
> --
>
> Key: CASSANDRA-11448
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11448
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Brandon Williams
>Assignee: Branimir Lambov
> Fix For: 2.1.x, 2.2.x, 3.0.x, 3.x
>
>
> Currently when you run OOS, this happens:
> {noformat}
> ERROR [MemtableFlushWriter:8561] 2016-03-28 01:17:37,047  
> CassandraDaemon.java:229 - Exception in thread 
> Thread[MemtableFlushWriter:8561,5,main]   java.lang.RuntimeException: 
> Insufficient disk space to write 48 bytes 
> at 
> org.apache.cassandra.io.util.DiskAwareRunnable.getWriteDirectory(DiskAwareRunnable.java:29)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.db.Memtable$FlushRunnable.runMayThrow(Memtable.java:332) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) 
> ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297)
>  ~[guava-16.0.1.jar:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1120)
>  ~[cassandra-all-2.1.12.1046.jar:2.1.12.1046]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  ~[na:1.8.0_66]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  ~[na:1.8.0_66]
> at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_66]
> {noformat}
> Now your flush writer is dead and postflush tasks build up forever.  Instead 
> we should throw FSWE and trigger the failure policy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[10/10] cassandra git commit: Merge branch 'cassandra-3.5' into trunk

2016-03-31 Thread marcuse
Merge branch 'cassandra-3.5' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fafbf27f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fafbf27f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fafbf27f

Branch: refs/heads/trunk
Commit: fafbf27fd629bf9474e406ec636dea4e6d9c76fc
Parents: d00bda8 cd69d9d
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:46:02 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:46:02 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fafbf27f/CHANGES.txt
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/fafbf27f/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--



[04/10] cassandra git commit: Dont mark sstables as repairing with sub range repairs

2016-03-31 Thread marcuse
Dont mark sstables as repairing with sub range repairs

Patch by marcuse; reviewed by yukim for CASSANDRA-11451


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/10f25aee
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/10f25aee
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/10f25aee

Branch: refs/heads/trunk
Commit: 10f25aeebb22d43bf4f61413380f69f8e3ab3189
Parents: 1dac59d
Author: Marcus Eriksson 
Authored: Tue Mar 29 17:06:42 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:41:04 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6e43496..e7aa321 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
  * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index ca02747..675d3cc 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1176,12 +1176,15 @@ public class CompactionManager implements 
CompactionManagerMBean
 }
 }
 
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
-
-if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+if (prs.isGlobal)
 {
-logger.error("Cannot start multiple repair sessions over the 
same sstables");
-throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
+
+if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+{
+logger.error("Cannot start multiple repair sessions over 
the same sstables");
+throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+}
 }
 
 sstables = Refs.tryRef(sstablesToValidate);
@@ -1191,8 +1194,8 @@ public class CompactionManager implements 
CompactionManagerMBean
 throw new RuntimeException("Could not reference sstables");
 }
 }
-
-prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
+if (prs.isGlobal)
+prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
 
 return sstables;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java 
b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index b8f8b65..8a0706a 100644
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@ -108,16 +108,18 @@ public class RepairMessageVerbHandler implements 
IVerbHandler
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 }
 }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
-
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
-if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal

[02/10] cassandra git commit: Dont mark sstables as repairing with sub range repairs

2016-03-31 Thread marcuse
Dont mark sstables as repairing with sub range repairs

Patch by marcuse; reviewed by yukim for CASSANDRA-11451


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/10f25aee
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/10f25aee
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/10f25aee

Branch: refs/heads/cassandra-3.0
Commit: 10f25aeebb22d43bf4f61413380f69f8e3ab3189
Parents: 1dac59d
Author: Marcus Eriksson 
Authored: Tue Mar 29 17:06:42 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:41:04 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6e43496..e7aa321 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
  * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index ca02747..675d3cc 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1176,12 +1176,15 @@ public class CompactionManager implements 
CompactionManagerMBean
 }
 }
 
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
-
-if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+if (prs.isGlobal)
 {
-logger.error("Cannot start multiple repair sessions over the 
same sstables");
-throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
+
+if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+{
+logger.error("Cannot start multiple repair sessions over 
the same sstables");
+throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+}
 }
 
 sstables = Refs.tryRef(sstablesToValidate);
@@ -1191,8 +1194,8 @@ public class CompactionManager implements 
CompactionManagerMBean
 throw new RuntimeException("Could not reference sstables");
 }
 }
-
-prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
+if (prs.isGlobal)
+prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
 
 return sstables;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java 
b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index b8f8b65..8a0706a 100644
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@ -108,16 +108,18 @@ public class RepairMessageVerbHandler implements 
IVerbHandler
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 }
 }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
-
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
-if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).

[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 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/6807c598
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6807c598
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6807c598

Branch: refs/heads/trunk
Commit: 6807c5984965b2689e077dbd1c4b9a3dd92a6d96
Parents: 202786e 10f25ae
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:42:22 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:42:22 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/CHANGES.txt
--
diff --cc CHANGES.txt
index ea0040f,e7aa321..449a2b5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,6 +1,18 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 703d187,8a0706a..eeefec4
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -95,20 -104,22 +95,22 @@@ public class RepairMessageVerbHandler i
  public boolean apply(SSTableReader sstable)
  {
  return sstable != null &&
 -!(sstable.partitioner instanceof 
LocalPartitioner) && // exclude SSTables from 2i
 -new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 +   !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
 +   new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
  }
  }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
- 
- Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
- if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
  {
- // clear snapshot that we just created
- cfs.clearSnapshot(desc.sessionId.toString());
- logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
- return;
+ Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+ if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+   

[01/10] cassandra git commit: Dont mark sstables as repairing with sub range repairs

2016-03-31 Thread marcuse
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 1dac59d1e -> 10f25aeeb
  refs/heads/cassandra-3.0 202786e06 -> 6807c5984
  refs/heads/cassandra-3.5 7fbdce812 -> cd69d9d33
  refs/heads/trunk d00bda88b -> fafbf27fd


Dont mark sstables as repairing with sub range repairs

Patch by marcuse; reviewed by yukim for CASSANDRA-11451


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/10f25aee
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/10f25aee
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/10f25aee

Branch: refs/heads/cassandra-2.2
Commit: 10f25aeebb22d43bf4f61413380f69f8e3ab3189
Parents: 1dac59d
Author: Marcus Eriksson 
Authored: Tue Mar 29 17:06:42 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:41:04 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6e43496..e7aa321 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
  * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index ca02747..675d3cc 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1176,12 +1176,15 @@ public class CompactionManager implements 
CompactionManagerMBean
 }
 }
 
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
-
-if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+if (prs.isGlobal)
 {
-logger.error("Cannot start multiple repair sessions over the 
same sstables");
-throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
+
+if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+{
+logger.error("Cannot start multiple repair sessions over 
the same sstables");
+throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+}
 }
 
 sstables = Refs.tryRef(sstablesToValidate);
@@ -1191,8 +1194,8 @@ public class CompactionManager implements 
CompactionManagerMBean
 throw new RuntimeException("Could not reference sstables");
 }
 }
-
-prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
+if (prs.isGlobal)
+prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
 
 return sstables;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java 
b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index b8f8b65..8a0706a 100644
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@ -108,16 +108,18 @@ public class RepairMessageVerbHandler implements 
IVerbHandler
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 }
 }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
-
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.met

[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread marcuse
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cd69d9d3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cd69d9d3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cd69d9d3

Branch: refs/heads/cassandra-3.5
Commit: cd69d9de9c89a559eac4795e7a8cfa3e13c4
Parents: 7fbdce8 6807c59
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:44:35 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:44:35 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/CHANGES.txt
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 3b23b1f,eeefec4..519fe5f
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -98,17 -98,19 +98,19 @@@ public class RepairMessageVerbHandler i
 !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
  }
 -}, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
 +}, true, false); //ephemeral snapshot, if repair fails, 
it will be cleaned next startup
- 
- Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
- if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
  {
- // clear snapshot that we just created
- cfs.clearSnapshot(desc.sessionId.toString());
- logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
- return;
+ Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+ if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ {
+ // clear snapshot that we just created
+ cfs.clearSnapshot(desc.sessionId.toString());
+ logErrorAndSendFailureResponse("Cannot start 
multiple repair sessions over the same sstables", message.from, id);
+ return;
+ }
+ 
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
  }
- 
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
  logger.debug("Enqueuing response to snapshot request {} 
to {}", desc.sessionId, message.from);
  MessagingService.instance().sendReply(new 
MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from);
  break;



[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 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/6807c598
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6807c598
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6807c598

Branch: refs/heads/cassandra-3.5
Commit: 6807c5984965b2689e077dbd1c4b9a3dd92a6d96
Parents: 202786e 10f25ae
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:42:22 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:42:22 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/CHANGES.txt
--
diff --cc CHANGES.txt
index ea0040f,e7aa321..449a2b5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,6 +1,18 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 703d187,8a0706a..eeefec4
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -95,20 -104,22 +95,22 @@@ public class RepairMessageVerbHandler i
  public boolean apply(SSTableReader sstable)
  {
  return sstable != null &&
 -!(sstable.partitioner instanceof 
LocalPartitioner) && // exclude SSTables from 2i
 -new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 +   !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
 +   new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
  }
  }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
- 
- Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
- if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
  {
- // clear snapshot that we just created
- cfs.clearSnapshot(desc.sessionId.toString());
- logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
- return;
+ Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+ if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())

[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 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/6807c598
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6807c598
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6807c598

Branch: refs/heads/cassandra-3.0
Commit: 6807c5984965b2689e077dbd1c4b9a3dd92a6d96
Parents: 202786e 10f25ae
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:42:22 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:42:22 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/CHANGES.txt
--
diff --cc CHANGES.txt
index ea0040f,e7aa321..449a2b5
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,17 -1,6 +1,18 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/6807c598/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 703d187,8a0706a..eeefec4
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -95,20 -104,22 +95,22 @@@ public class RepairMessageVerbHandler i
  public boolean apply(SSTableReader sstable)
  {
  return sstable != null &&
 -!(sstable.partitioner instanceof 
LocalPartitioner) && // exclude SSTables from 2i
 -new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 +   !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
 +   new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
  }
  }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
- 
- Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
- if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
  {
- // clear snapshot that we just created
- cfs.clearSnapshot(desc.sessionId.toString());
- logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
- return;
+ Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+ if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())

[03/10] cassandra git commit: Dont mark sstables as repairing with sub range repairs

2016-03-31 Thread marcuse
Dont mark sstables as repairing with sub range repairs

Patch by marcuse; reviewed by yukim for CASSANDRA-11451


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/10f25aee
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/10f25aee
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/10f25aee

Branch: refs/heads/cassandra-3.5
Commit: 10f25aeebb22d43bf4f61413380f69f8e3ab3189
Parents: 1dac59d
Author: Marcus Eriksson 
Authored: Tue Mar 29 17:06:42 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:41:04 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 6e43496..e7aa321 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
  * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--
diff --git a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java 
b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index ca02747..675d3cc 100644
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@ -1176,12 +1176,15 @@ public class CompactionManager implements 
CompactionManagerMBean
 }
 }
 
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
-
-if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+if (prs.isGlobal)
 {
-logger.error("Cannot start multiple repair sessions over the 
same sstables");
-throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
validator.desc.parentSessionId);
+
+if (!Sets.intersection(currentlyRepairing, 
sstablesToValidate).isEmpty())
+{
+logger.error("Cannot start multiple repair sessions over 
the same sstables");
+throw new RuntimeException("Cannot start multiple repair 
sessions over the same sstables");
+}
 }
 
 sstables = Refs.tryRef(sstablesToValidate);
@@ -1191,8 +1194,8 @@ public class CompactionManager implements 
CompactionManagerMBean
 throw new RuntimeException("Could not reference sstables");
 }
 }
-
-prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
+if (prs.isGlobal)
+prs.addSSTables(cfs.metadata.cfId, sstablesToValidate);
 
 return sstables;
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/10f25aee/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --git a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java 
b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index b8f8b65..8a0706a 100644
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@ -108,16 +108,18 @@ public class RepairMessageVerbHandler implements 
IVerbHandler
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(Collections.singleton(repairingRange));
 }
 }, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
-
-Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
-if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).

[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread marcuse
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cd69d9d3
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cd69d9d3
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cd69d9d3

Branch: refs/heads/trunk
Commit: cd69d9de9c89a559eac4795e7a8cfa3e13c4
Parents: 7fbdce8 6807c59
Author: Marcus Eriksson 
Authored: Thu Mar 31 09:44:35 2016 +0200
Committer: Marcus Eriksson 
Committed: Thu Mar 31 09:44:35 2016 +0200

--
 CHANGES.txt   |  1 +
 .../db/compaction/CompactionManager.java  | 17 ++---
 .../repair/RepairMessageVerbHandler.java  | 18 ++
 .../cassandra/service/ActiveRepairService.java|  2 +-
 4 files changed, 22 insertions(+), 16 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/CHANGES.txt
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cd69d9d3/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
--
diff --cc src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
index 3b23b1f,eeefec4..519fe5f
--- a/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
+++ b/src/java/org/apache/cassandra/repair/RepairMessageVerbHandler.java
@@@ -98,17 -98,19 +98,19 @@@ public class RepairMessageVerbHandler i
 !sstable.metadata.isIndex() && // exclude 
SSTables from 2i
 new Bounds<>(sstable.first.getToken(), 
sstable.last.getToken()).intersects(repairingRange);
  }
 -}, true); //ephemeral snapshot, if repair fails, it will 
be cleaned next startup
 +}, true, false); //ephemeral snapshot, if repair fails, 
it will be cleaned next startup
- 
- Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
- if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ if 
(ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).isGlobal)
  {
- // clear snapshot that we just created
- cfs.clearSnapshot(desc.sessionId.toString());
- logErrorAndSendFailureResponse("Cannot start multiple 
repair sessions over the same sstables", message.from, id);
- return;
+ Set currentlyRepairing = 
ActiveRepairService.instance.currentlyRepairing(cfs.metadata.cfId, 
desc.parentSessionId);
+ if (!Sets.intersection(currentlyRepairing, 
snapshottedSSSTables).isEmpty())
+ {
+ // clear snapshot that we just created
+ cfs.clearSnapshot(desc.sessionId.toString());
+ logErrorAndSendFailureResponse("Cannot start 
multiple repair sessions over the same sstables", message.from, id);
+ return;
+ }
+ 
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
  }
- 
ActiveRepairService.instance.getParentRepairSession(desc.parentSessionId).addSSTables(cfs.metadata.cfId,
 snapshottedSSSTables);
  logger.debug("Enqueuing response to snapshot request {} 
to {}", desc.sessionId, message.from);
  MessagingService.instance().sendReply(new 
MessageOut(MessagingService.Verb.INTERNAL_RESPONSE), id, message.from);
  break;



[jira] [Updated] (CASSANDRA-11451) Don't mark sstables as repairing when doing sub range repair

2016-03-31 Thread Marcus Eriksson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcus Eriksson updated CASSANDRA-11451:

   Resolution: Fixed
Fix Version/s: (was: 3.0.x)
   (was: 2.2.x)
   (was: 3.x)
   3.5
   3.0.5
   2.2.6
   Status: Resolved  (was: Patch Available)

committed, thanks

> Don't mark sstables as repairing when doing sub range repair
> 
>
> Key: CASSANDRA-11451
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11451
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
> Fix For: 2.2.6, 3.0.5, 3.5
>
>
> Since CASSANDRA-10422 we don't do anticompaction when a user issues a sub 
> range repair (-st X -et Y), but we still mark sstables as repairing.
> We should avoid marking them as users might want to run many sub range repair 
> sessions in parallel. 
> The reason we mark sstables is that we don't want another repair session to 
> steal the sstables before we do anticompaction, and since we do no 
> anticompaction with sub range repair we have no benefit from the marking.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


cassandra git commit: Nitpick (for testing purposes)

2016-03-31 Thread slebresne
Repository: cassandra
Updated Branches:
  refs/heads/trunk fafbf27fd -> 657934f51


Nitpick (for testing purposes)


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/657934f5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/657934f5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/657934f5

Branch: refs/heads/trunk
Commit: 657934f5137eeab777dd54b7d9abde4472216543
Parents: fafbf27
Author: Sylvain Lebresne 
Authored: Thu Mar 31 09:57:23 2016 +0200
Committer: Sylvain Lebresne 
Committed: Thu Mar 31 09:57:23 2016 +0200

--
 CHANGES.txt | 1 -
 1 file changed, 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/657934f5/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index c689e96..0098a97 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -28,7 +28,6 @@
  * (cqlsh) Show static columns in a different color (CASSANDRA-11059)
  * Allow to remove TTLs on table with default_time_to_live (CASSANDRA-11207)
 
-
 3.5
  * Avoid index segment stitching in RAM which lead to OOM on big SSTable files 
(CASSANDRA-11383)
  * Fix clustering and row filters for LIKE queries on clustering columns 
(CASSANDRA-11397)



cassandra git commit: Make test index names unique

2016-03-31 Thread samt
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 6807c5984 -> f8cc86039


Make test index names unique

Patch by Sam Tunnicliffe; reviewed by Sylvain Lebresne for
CASSANDRA-11453


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f8cc8603
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f8cc8603
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f8cc8603

Branch: refs/heads/cassandra-3.0
Commit: f8cc86039a09f2632016c830d63a7b95195cbced
Parents: 6807c59
Author: Sam Tunnicliffe 
Authored: Tue Mar 29 16:23:03 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:00:42 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/cql3/CQLTester.java
--
diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java 
b/test/unit/org/apache/cassandra/cql3/CQLTester.java
index 43de101..a7145fc 100644
--- a/test/unit/org/apache/cassandra/cql3/CQLTester.java
+++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java
@@ -626,6 +626,7 @@ public abstract class CQLTester
 }
 catch (Exception e)
 {
+logger.info("Error performing schema change", e);
 throw new RuntimeException("Error setting schema for test (query 
was: " + query + ")", e);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/index/CustomIndexTest.java
--
diff --git a/test/unit/org/apache/cassandra/index/CustomIndexTest.java 
b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
index b1fd992..0b553f4 100644
--- a/test/unit/org/apache/cassandra/index/CustomIndexTest.java
+++ b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
@@ -392,30 +392,34 @@ public class CustomIndexTest extends CQLTester
 public void customExpressionsDisallowedInModifications() throws Throwable
 {
 createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY 
(a, b))");
-createIndex(String.format("CREATE CUSTOM INDEX custom_index ON %%s(c) 
USING '%s'", StubIndex.class.getName()));
+String indexName = currentTable() + "_custom_index";
+createIndex(String.format("CREATE CUSTOM INDEX %s ON %%s(c) USING 
'%s'",
+  indexName, StubIndex.class.getName()));
 
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "DELETE FROM %s WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("DELETE FROM %%s WHERE 
expr(%s, 'foo bar baz ')", indexName));
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "UPDATE %s SET d=0 WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("UPDATE %%s SET d=0 WHERE 
expr(%s, 'foo bar baz ')", indexName));
 }
 
 @Test
 public void indexSelectionPrefersMostSelectiveIndex() throws Throwable
 {
 createTable("CREATE TABLE %s(a int, b int, c int, PRIMARY KEY (a))");
-createIndex(String.format("CREATE CUSTOM INDEX more_selective ON 
%%s(b) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_more_selective ON 
%%s(b) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
-createIndex(String.format("CREATE CUSTOM INDEX less_selective ON 
%%s(c) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_less_selective ON 
%%s(c) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
 SettableSelectivityIndex moreSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName("more_selective");
+
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName(currentTable()
 + "_more_selective");
 SettableSelectivityIndex lessSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName("less_selective");

[5/5] cassandra git commit: Merge branch 'cassandra-3.5' into trunk

2016-03-31 Thread samt
Merge branch 'cassandra-3.5' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/3c147f86
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3c147f86
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3c147f86

Branch: refs/heads/trunk
Commit: 3c147f865cb2284ed971dd454e0295e42005ac6f
Parents: 657934f b984ea3
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 09:03:15 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:03:15 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--




[3/5] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread samt
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b984ea35
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b984ea35
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b984ea35

Branch: refs/heads/trunk
Commit: b984ea35e93a7ea9019375a1e5e7a60002085c10
Parents: cd69d9d f8cc860
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 09:02:53 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:02:53 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b984ea35/test/unit/org/apache/cassandra/cql3/CQLTester.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b984ea35/test/unit/org/apache/cassandra/index/CustomIndexTest.java
--



[1/5] cassandra git commit: Make test index names unique

2016-03-31 Thread samt
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.5 cd69d9d33 -> b984ea35e
  refs/heads/trunk 657934f51 -> 3c147f865


Make test index names unique

Patch by Sam Tunnicliffe; reviewed by Sylvain Lebresne for
CASSANDRA-11453


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f8cc8603
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f8cc8603
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f8cc8603

Branch: refs/heads/cassandra-3.5
Commit: f8cc86039a09f2632016c830d63a7b95195cbced
Parents: 6807c59
Author: Sam Tunnicliffe 
Authored: Tue Mar 29 16:23:03 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:00:42 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/cql3/CQLTester.java
--
diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java 
b/test/unit/org/apache/cassandra/cql3/CQLTester.java
index 43de101..a7145fc 100644
--- a/test/unit/org/apache/cassandra/cql3/CQLTester.java
+++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java
@@ -626,6 +626,7 @@ public abstract class CQLTester
 }
 catch (Exception e)
 {
+logger.info("Error performing schema change", e);
 throw new RuntimeException("Error setting schema for test (query 
was: " + query + ")", e);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/index/CustomIndexTest.java
--
diff --git a/test/unit/org/apache/cassandra/index/CustomIndexTest.java 
b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
index b1fd992..0b553f4 100644
--- a/test/unit/org/apache/cassandra/index/CustomIndexTest.java
+++ b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
@@ -392,30 +392,34 @@ public class CustomIndexTest extends CQLTester
 public void customExpressionsDisallowedInModifications() throws Throwable
 {
 createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY 
(a, b))");
-createIndex(String.format("CREATE CUSTOM INDEX custom_index ON %%s(c) 
USING '%s'", StubIndex.class.getName()));
+String indexName = currentTable() + "_custom_index";
+createIndex(String.format("CREATE CUSTOM INDEX %s ON %%s(c) USING 
'%s'",
+  indexName, StubIndex.class.getName()));
 
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "DELETE FROM %s WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("DELETE FROM %%s WHERE 
expr(%s, 'foo bar baz ')", indexName));
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "UPDATE %s SET d=0 WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("UPDATE %%s SET d=0 WHERE 
expr(%s, 'foo bar baz ')", indexName));
 }
 
 @Test
 public void indexSelectionPrefersMostSelectiveIndex() throws Throwable
 {
 createTable("CREATE TABLE %s(a int, b int, c int, PRIMARY KEY (a))");
-createIndex(String.format("CREATE CUSTOM INDEX more_selective ON 
%%s(b) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_more_selective ON 
%%s(b) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
-createIndex(String.format("CREATE CUSTOM INDEX less_selective ON 
%%s(c) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_less_selective ON 
%%s(c) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
 SettableSelectivityIndex moreSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName("more_selective");
+
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName(currentTable()
 + "_more_selective");
 SettableSelectivityIndex lessSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().inde

[2/5] cassandra git commit: Make test index names unique

2016-03-31 Thread samt
Make test index names unique

Patch by Sam Tunnicliffe; reviewed by Sylvain Lebresne for
CASSANDRA-11453


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f8cc8603
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f8cc8603
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f8cc8603

Branch: refs/heads/trunk
Commit: f8cc86039a09f2632016c830d63a7b95195cbced
Parents: 6807c59
Author: Sam Tunnicliffe 
Authored: Tue Mar 29 16:23:03 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:00:42 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/cql3/CQLTester.java
--
diff --git a/test/unit/org/apache/cassandra/cql3/CQLTester.java 
b/test/unit/org/apache/cassandra/cql3/CQLTester.java
index 43de101..a7145fc 100644
--- a/test/unit/org/apache/cassandra/cql3/CQLTester.java
+++ b/test/unit/org/apache/cassandra/cql3/CQLTester.java
@@ -626,6 +626,7 @@ public abstract class CQLTester
 }
 catch (Exception e)
 {
+logger.info("Error performing schema change", e);
 throw new RuntimeException("Error setting schema for test (query 
was: " + query + ")", e);
 }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f8cc8603/test/unit/org/apache/cassandra/index/CustomIndexTest.java
--
diff --git a/test/unit/org/apache/cassandra/index/CustomIndexTest.java 
b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
index b1fd992..0b553f4 100644
--- a/test/unit/org/apache/cassandra/index/CustomIndexTest.java
+++ b/test/unit/org/apache/cassandra/index/CustomIndexTest.java
@@ -392,30 +392,34 @@ public class CustomIndexTest extends CQLTester
 public void customExpressionsDisallowedInModifications() throws Throwable
 {
 createTable("CREATE TABLE %s (a int, b int, c int, d int, PRIMARY KEY 
(a, b))");
-createIndex(String.format("CREATE CUSTOM INDEX custom_index ON %%s(c) 
USING '%s'", StubIndex.class.getName()));
+String indexName = currentTable() + "_custom_index";
+createIndex(String.format("CREATE CUSTOM INDEX %s ON %%s(c) USING 
'%s'",
+  indexName, StubIndex.class.getName()));
 
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "DELETE FROM %s WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("DELETE FROM %%s WHERE 
expr(%s, 'foo bar baz ')", indexName));
 assertInvalidThrowMessage(Server.CURRENT_VERSION,
   
ModificationStatement.CUSTOM_EXPRESSIONS_NOT_ALLOWED,
   QueryValidationException.class,
-  "UPDATE %s SET d=0 WHERE expr(custom_index, 
'foo bar baz ')");
+  String.format("UPDATE %%s SET d=0 WHERE 
expr(%s, 'foo bar baz ')", indexName));
 }
 
 @Test
 public void indexSelectionPrefersMostSelectiveIndex() throws Throwable
 {
 createTable("CREATE TABLE %s(a int, b int, c int, PRIMARY KEY (a))");
-createIndex(String.format("CREATE CUSTOM INDEX more_selective ON 
%%s(b) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_more_selective ON 
%%s(b) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
-createIndex(String.format("CREATE CUSTOM INDEX less_selective ON 
%%s(c) USING '%s'",
+createIndex(String.format("CREATE CUSTOM INDEX %s_less_selective ON 
%%s(c) USING '%s'",
+  currentTable(),
   SettableSelectivityIndex.class.getName()));
 SettableSelectivityIndex moreSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName("more_selective");
+
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName(currentTable()
 + "_more_selective");
 SettableSelectivityIndex lessSelective =
-
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName("less_selective");
+
(SettableSelectivityIndex)getCurrentColumnFamilyStore().indexManager.getIndexByName(c

[4/5] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread samt
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b984ea35
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b984ea35
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b984ea35

Branch: refs/heads/cassandra-3.5
Commit: b984ea35e93a7ea9019375a1e5e7a60002085c10
Parents: cd69d9d f8cc860
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 09:02:53 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 09:02:53 2016 +0100

--
 .../org/apache/cassandra/cql3/CQLTester.java|  1 +
 .../apache/cassandra/index/CustomIndexTest.java | 30 
 2 files changed, 19 insertions(+), 12 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b984ea35/test/unit/org/apache/cassandra/cql3/CQLTester.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/b984ea35/test/unit/org/apache/cassandra/index/CustomIndexTest.java
--



[jira] [Updated] (CASSANDRA-11453) CustomIndexTest fails intermittently

2016-03-31 Thread Sam Tunnicliffe (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-11453:

   Resolution: Fixed
Fix Version/s: (was: 3.0.x)
   (was: 3.x)
   3.5
   3.0.5
   Status: Resolved  (was: Patch Available)

Thanks, committed in {{f8cc86039a09f2632016c830d63a7b95195cbced}}

> CustomIndexTest fails intermittently
> 
>
> Key: CASSANDRA-11453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Testing
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
> Fix For: 3.0.5, 3.5
>
>
> For example: 
> http://cassci.datastax.com/job/cassandra-3.0_testall/460/testReport/org.apache.cassandra.index/CustomIndexTest/customExpressionForcesIndexSelection/
> This is due to a clash in index names as the cleanup of tables (and so also 
> indexes) in the teardown of {{CQLTester}} is asynchronous.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-9325) cassandra-stress requires keystore for SSL but provides no way to configure it

2016-03-31 Thread Stefan Podkowinski (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219651#comment-15219651
 ] 

Stefan Podkowinski commented on CASSANDRA-9325:
---

cassci test results:

||2.2||3.0||trunk||
|[branch|https://github.com/spodkowinski/cassandra/tree/CASSANDRA-9325-2.2]|[branch|https://github.com/spodkowinski/cassandra/tree/CASSANDRA-9325-3.0]|[branch|https://github.com/spodkowinski/cassandra/tree/CASSANDRA-9325-trunk]|
|[dtest|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-2.2-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-3.0-dtest/]|[dtest|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-trunk-dtest/]|
|[testall|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-2.2-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-3.0-testall/]|[testall|http://cassci.datastax.com/view/Dev/view/spodkowinski/job/spodkowinski-CASSANDRA-9325-trunk-testall/]|

> cassandra-stress requires keystore for SSL but provides no way to configure it
> --
>
> Key: CASSANDRA-9325
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9325
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tools
>Reporter: J.B. Langston
>Assignee: Stefan Podkowinski
>  Labels: lhf, stress
> Fix For: 2.2.x
>
> Attachments: 9325-2.1.patch
>
>
> Even though it shouldn't be required unless client certificate authentication 
> is enabled, the stress tool is looking for a keystore in the default location 
> of conf/.keystore with the default password of cassandra. There is no command 
> line option to override these defaults so you have to provide a keystore that 
> satisfies the default. It looks for conf/.keystore in the working directory, 
> so you need to create this in the directory you are running cassandra-stress 
> from.It doesn't really matter what's in the keystore; it just needs to exist 
> in the expected location and have a password of cassandra.
> Since the keystore might be required if client certificate authentication is 
> enabled, we need to add -transport parameters for keystore and 
> keystore-password.  Ideally, these should be optional and stress shouldn't 
> require the keystore unless client certificate authentication is enabled on 
> the server.
> In case it wasn't apparent, this is for Cassandra 2.1 and later's stress 
> tool.  I actually had even more problems getting Cassandra 2.0's stress tool 
> working with SSL and gave up on it.  We probably don't need to fix 2.0; we 
> can just document that it doesn't support SSL and recommend using 2.1 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Reopened] (CASSANDRA-6091) Better Vnode support in hadoop/pig

2016-03-31 Thread mck (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

mck reopened CASSANDRA-6091:

  Assignee: mck

Patch against trunk is updated at 
https://github.com/thelastpickle/cassandra/commit/a8c169748ef21c44e19d909b656ae2631af306b8

Got some more testing to do before submitting it as a patch.

> Better Vnode support in hadoop/pig
> --
>
> Key: CASSANDRA-6091
> URL: https://issues.apache.org/jira/browse/CASSANDRA-6091
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Alex Liu
>Assignee: mck
>Priority: Minor
> Attachments: cassandra-2.0-6091.txt, cassandra-2.1-6091.txt, 
> trunk-6091.txt
>
>
> CASSANDRA-6084 shows there are some issues during running hadoop/pig job if 
> vnodes are enable. Also the hadoop performance of vnode enabled nodes  are 
> bad for there are so many splits.
> The idea is to combine vnode splits into a big sudo splits so it work like 
> vnode is disable for hadoop/pig job



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11331) Create Index IF NOT EXISTS throws error when index already exists

2016-03-31 Thread Benjamin Lerer (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer updated CASSANDRA-11331:
---
Reproduced In: 3.4, 3.0.4  (was: 3.0.4, 3.4)
 Reviewer: Benjamin Lerer

> Create Index IF NOT EXISTS throws error when index already exists
> -
>
> Key: CASSANDRA-11331
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11331
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL
>Reporter: Philip Thompson
>Assignee: Sam Tunnicliffe
> Fix For: 3.0.x, 3.x
>
>
> While testing with trunk, I see that issuing the following queries throws an 
> InvalidRequest, despite being valid.
> {code}
> CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'}  AND durable_writes = true;
> USE k;
> CREATE TABLE k.t (
> id int PRIMARY KEY,
> v int,
> v2 int,
> v3 text
> );
> CREATE INDEX IF NOT EXISTS ON t (v2);
> CREATE INDEX IF NOT EXISTS ON t (v2);
> InvalidRequest: code=2200 [Invalid query] message="Index t_v2_idx_1 is a 
> duplicate of existing index t_v2_idx"
> {code}
> The second {{CREATE INDEX IF NOT EXISTS}} should work fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11331) Create Index IF NOT EXISTS throws error when index already exists

2016-03-31 Thread Benjamin Lerer (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219880#comment-15219880
 ] 

Benjamin Lerer commented on CASSANDRA-11331:


+1

> Create Index IF NOT EXISTS throws error when index already exists
> -
>
> Key: CASSANDRA-11331
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11331
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL
>Reporter: Philip Thompson
>Assignee: Sam Tunnicliffe
> Fix For: 3.0.x, 3.x
>
>
> While testing with trunk, I see that issuing the following queries throws an 
> InvalidRequest, despite being valid.
> {code}
> CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'}  AND durable_writes = true;
> USE k;
> CREATE TABLE k.t (
> id int PRIMARY KEY,
> v int,
> v2 int,
> v3 text
> );
> CREATE INDEX IF NOT EXISTS ON t (v2);
> CREATE INDEX IF NOT EXISTS ON t (v2);
> InvalidRequest: code=2200 [Invalid query] message="Index t_v2_idx_1 is a 
> duplicate of existing index t_v2_idx"
> {code}
> The second {{CREATE INDEX IF NOT EXISTS}} should work fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11331) Create Index IF NOT EXISTS throws error when index already exists

2016-03-31 Thread Benjamin Lerer (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer updated CASSANDRA-11331:
---
Status: Ready to Commit  (was: Patch Available)

> Create Index IF NOT EXISTS throws error when index already exists
> -
>
> Key: CASSANDRA-11331
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11331
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL
>Reporter: Philip Thompson
>Assignee: Sam Tunnicliffe
> Fix For: 3.0.x, 3.x
>
>
> While testing with trunk, I see that issuing the following queries throws an 
> InvalidRequest, despite being valid.
> {code}
> CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'}  AND durable_writes = true;
> USE k;
> CREATE TABLE k.t (
> id int PRIMARY KEY,
> v int,
> v2 int,
> v3 text
> );
> CREATE INDEX IF NOT EXISTS ON t (v2);
> CREATE INDEX IF NOT EXISTS ON t (v2);
> InvalidRequest: code=2200 [Invalid query] message="Index t_v2_idx_1 is a 
> duplicate of existing index t_v2_idx"
> {code}
> The second {{CREATE INDEX IF NOT EXISTS}} should work fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (CASSANDRA-11467) Paging loses rows in certain conditions

2016-03-31 Thread Benjamin Lerer (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer reassigned CASSANDRA-11467:
--

Assignee: Benjamin Lerer

> Paging loses rows in certain conditions
> ---
>
> Key: CASSANDRA-11467
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11467
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ian McMahon
>Assignee: Benjamin Lerer
> Attachments: pagination_test.go
>
>
> The bug occurs under the following conditions:
>   - RandomPartitioner
>   - a compact storage CF
>   - querying across rows
>   - a tombstone in the first column of a row on the pagesize boundary
>   - you need to be querying at least 2*pagesize + 1 records
> Attached is a go program using gocql which reproduces the bug fairly 
> minimally.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11461) Failed incremental repairs never cleared from pending list

2016-03-31 Thread Marcus Eriksson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219911#comment-15219911
 ] 

Marcus Eriksson commented on CASSANDRA-11461:
-

Can we make sure somehow? With vnodes and incremental repair we can only 
trigger a repair on a single node in the cluster at a time.

What I tried:
# start repair service, it gets the error
# stop repair service
# start a manual -inc repair, which succeeds

if there were sstables marked as repairing #3 above should not succeed either.

> Failed incremental repairs never cleared from pending list
> --
>
> Key: CASSANDRA-11461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Adam Hattrell
>
> Set up a test cluster with 2 DC's, heavy use of LCS (not sure if that's 
> relevant).
> Kick off cassandra-stress against it.
> Kick of an automated incremental repair cycle.  
> After a bit a node starts flapping which causes a few repairs to fail.  This 
> is never cleared out of pending repairs - given the keyspace is replicated to 
> all nodes it means they all have pending repairs that will never complete.  
> Repairs  are basically blocked at this point.
> Given we're using Incremental repairs you're now spammed with:
> "Cannot start multiple repair sessions over the same sstables"
> Cluster and logs are still available for review - message me for details.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11461) Failed incremental repairs never cleared from pending list

2016-03-31 Thread Nick Bailey (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219907#comment-15219907
 ] 

Nick Bailey commented on CASSANDRA-11461:
-

Well that depends. It starts by doing everything synchronously and tries to 
calculate throughput. Based on the throughput it calculates it may try to run 
things in parallel if it think it's required to complete but it prefers to run 
a single repair at a time. I'm not 100% certain, but I believe in the case 
where this was scene, OpsCenter was not running anything in parallel.

> Failed incremental repairs never cleared from pending list
> --
>
> Key: CASSANDRA-11461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Adam Hattrell
>
> Set up a test cluster with 2 DC's, heavy use of LCS (not sure if that's 
> relevant).
> Kick off cassandra-stress against it.
> Kick of an automated incremental repair cycle.  
> After a bit a node starts flapping which causes a few repairs to fail.  This 
> is never cleared out of pending repairs - given the keyspace is replicated to 
> all nodes it means they all have pending repairs that will never complete.  
> Repairs  are basically blocked at this point.
> Given we're using Incremental repairs you're now spammed with:
> "Cannot start multiple repair sessions over the same sstables"
> Cluster and logs are still available for review - message me for details.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[09/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread jake
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b80a31d7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b80a31d7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b80a31d7

Branch: refs/heads/trunk
Commit: b80a31d7e0e3ea7bdb6cd5eb9de8d33a38e04430
Parents: b984ea3 067c8df
Author: T Jake Luciani 
Authored: Thu Mar 31 10:18:02 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:18:02 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b80a31d7/CHANGES.txt
--



[01/10] cassandra git commit: Add cassandra-stress keystore option (CASSANDRA-9325)

2016-03-31 Thread jake
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 10f25aeeb -> 106750c78
  refs/heads/cassandra-3.0 f8cc86039 -> 067c8dfbe
  refs/heads/cassandra-3.5 b984ea35e -> b80a31d7e
  refs/heads/trunk 3c147f865 -> 7e5c6b597


Add cassandra-stress keystore option (CASSANDRA-9325)

 * Prevents stress tool from checking keystore at .conf/keystore even if not 
needed
 * Adds keystore -transport option in case client verification is used on server

Patch by Stefan Podkowinski; reviewed by T Jake Luciani for CASSANDRA-9325


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/106750c7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/106750c7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/106750c7

Branch: refs/heads/cassandra-2.2
Commit: 106750c78e21c6d7ad85ee2d0819a36cd65726b3
Parents: 10f25ae
Author: Stefan Podkowinski 
Authored: Tue Feb 16 17:34:26 2016 +0100
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:09:24 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e7aa321..3e51935 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Add cassandra-stress keystore option (CASSANDRA-9325)
  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
--
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
index 8b0ef6a..b6d1d90 100644
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
@@ -65,6 +65,10 @@ public class SettingsTransport implements Serializable
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE, 
options.trustStore.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.TRUSTSTORE_PASSWORD))
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE_PASSWORD, 
options.trustStorePw.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE))
+factoryOptions.put(SSLTransportFactory.KEYSTORE, 
options.keyStore.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE_PASSWORD))
+factoryOptions.put(SSLTransportFactory.KEYSTORE_PASSWORD, 
options.keyStorePw.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.PROTOCOL))
 factoryOptions.put(SSLTransportFactory.PROTOCOL, 
options.protocol.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.CIPHER_SUITES))
@@ -102,6 +106,16 @@ public class SettingsTransport implements Serializable
 encOptions.enabled = true;
 encOptions.truststore = options.trustStore.value();
 encOptions.truststore_password = options.trustStorePw.value();
+if (options.keyStore.present())
+{
+encOptions.keystore = options.keyStore.value();
+encOptions.keystore_password = options.keyStorePw.value();
+}
+else
+{
+// mandatory for SSLFactory.createSSLContext(), see 
CASSANDRA-9325
+encOptions.keystore = encOptions.truststore;
+}
 encOptions.algorithm = options.alg.value();
 encOptions.protocol = options.protocol.value();
 encOptions.cipher_suites = options.ciphers.value().split(",");
@@ -116,6 +130,8 @@ public class SettingsTransport implements Serializable
 final OptionSimple factory = new OptionSimple("factory=", ".*", 
TFramedTransportFactory.class.getName(), "Fully-qualified ITransportFactory 
class name for creating a connection. Note: For Thrift over SSL, use 
org.apache.cassandra.thrift.SSLTransportFactory.", false);
 final OptionSimple trustStore = new OptionSimple("truststore=", ".*", 
null, "SSL: full path to truststore", false);
 final OptionSimple trustStorePw = new 
OptionSimple("truststore-password=", ".*", null, "SSL: truststore pa

[10/10] cassandra git commit: Merge branch 'cassandra-3.5' into trunk

2016-03-31 Thread jake
Merge branch 'cassandra-3.5' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7e5c6b59
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7e5c6b59
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7e5c6b59

Branch: refs/heads/trunk
Commit: 7e5c6b597aae9571b3e6fb47dfe3b6467fecdc19
Parents: 3c147f8 b80a31d
Author: T Jake Luciani 
Authored: Thu Mar 31 10:18:19 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:18:19 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/7e5c6b59/CHANGES.txt
--



[02/10] cassandra git commit: Add cassandra-stress keystore option (CASSANDRA-9325)

2016-03-31 Thread jake
Add cassandra-stress keystore option (CASSANDRA-9325)

 * Prevents stress tool from checking keystore at .conf/keystore even if not 
needed
 * Adds keystore -transport option in case client verification is used on server

Patch by Stefan Podkowinski; reviewed by T Jake Luciani for CASSANDRA-9325


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/106750c7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/106750c7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/106750c7

Branch: refs/heads/cassandra-3.0
Commit: 106750c78e21c6d7ad85ee2d0819a36cd65726b3
Parents: 10f25ae
Author: Stefan Podkowinski 
Authored: Tue Feb 16 17:34:26 2016 +0100
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:09:24 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e7aa321..3e51935 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Add cassandra-stress keystore option (CASSANDRA-9325)
  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
--
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
index 8b0ef6a..b6d1d90 100644
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
@@ -65,6 +65,10 @@ public class SettingsTransport implements Serializable
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE, 
options.trustStore.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.TRUSTSTORE_PASSWORD))
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE_PASSWORD, 
options.trustStorePw.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE))
+factoryOptions.put(SSLTransportFactory.KEYSTORE, 
options.keyStore.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE_PASSWORD))
+factoryOptions.put(SSLTransportFactory.KEYSTORE_PASSWORD, 
options.keyStorePw.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.PROTOCOL))
 factoryOptions.put(SSLTransportFactory.PROTOCOL, 
options.protocol.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.CIPHER_SUITES))
@@ -102,6 +106,16 @@ public class SettingsTransport implements Serializable
 encOptions.enabled = true;
 encOptions.truststore = options.trustStore.value();
 encOptions.truststore_password = options.trustStorePw.value();
+if (options.keyStore.present())
+{
+encOptions.keystore = options.keyStore.value();
+encOptions.keystore_password = options.keyStorePw.value();
+}
+else
+{
+// mandatory for SSLFactory.createSSLContext(), see 
CASSANDRA-9325
+encOptions.keystore = encOptions.truststore;
+}
 encOptions.algorithm = options.alg.value();
 encOptions.protocol = options.protocol.value();
 encOptions.cipher_suites = options.ciphers.value().split(",");
@@ -116,6 +130,8 @@ public class SettingsTransport implements Serializable
 final OptionSimple factory = new OptionSimple("factory=", ".*", 
TFramedTransportFactory.class.getName(), "Fully-qualified ITransportFactory 
class name for creating a connection. Note: For Thrift over SSL, use 
org.apache.cassandra.thrift.SSLTransportFactory.", false);
 final OptionSimple trustStore = new OptionSimple("truststore=", ".*", 
null, "SSL: full path to truststore", false);
 final OptionSimple trustStorePw = new 
OptionSimple("truststore-password=", ".*", null, "SSL: truststore password", 
false);
+final OptionSimple keyStore = new OptionSimple("keystore=", ".*", 
null, "SSL: full path to keystore", false);
+final OptionSimple keyStorePw = new OptionSimple("keystore-password=", 
".*", null, "SS

[07/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 Thread jake
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/067c8dfb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/067c8dfb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/067c8dfb

Branch: refs/heads/trunk
Commit: 067c8dfbe41421283e8cf6dc3c595efb237be054
Parents: f8cc860 106750c
Author: T Jake Luciani 
Authored: Thu Mar 31 10:15:40 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:15:40 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/067c8dfb/CHANGES.txt
--
diff --cc CHANGES.txt
index 449a2b5,3e51935..eda762b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,18 -1,7 +1,19 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Add cassandra-stress keystore option (CASSANDRA-9325)
   * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)



[08/10] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread jake
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b80a31d7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b80a31d7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b80a31d7

Branch: refs/heads/cassandra-3.5
Commit: b80a31d7e0e3ea7bdb6cd5eb9de8d33a38e04430
Parents: b984ea3 067c8df
Author: T Jake Luciani 
Authored: Thu Mar 31 10:18:02 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:18:02 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/b80a31d7/CHANGES.txt
--



[03/10] cassandra git commit: Add cassandra-stress keystore option (CASSANDRA-9325)

2016-03-31 Thread jake
Add cassandra-stress keystore option (CASSANDRA-9325)

 * Prevents stress tool from checking keystore at .conf/keystore even if not 
needed
 * Adds keystore -transport option in case client verification is used on server

Patch by Stefan Podkowinski; reviewed by T Jake Luciani for CASSANDRA-9325


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/106750c7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/106750c7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/106750c7

Branch: refs/heads/cassandra-3.5
Commit: 106750c78e21c6d7ad85ee2d0819a36cd65726b3
Parents: 10f25ae
Author: Stefan Podkowinski 
Authored: Tue Feb 16 17:34:26 2016 +0100
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:09:24 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e7aa321..3e51935 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Add cassandra-stress keystore option (CASSANDRA-9325)
  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
--
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
index 8b0ef6a..b6d1d90 100644
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
@@ -65,6 +65,10 @@ public class SettingsTransport implements Serializable
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE, 
options.trustStore.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.TRUSTSTORE_PASSWORD))
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE_PASSWORD, 
options.trustStorePw.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE))
+factoryOptions.put(SSLTransportFactory.KEYSTORE, 
options.keyStore.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE_PASSWORD))
+factoryOptions.put(SSLTransportFactory.KEYSTORE_PASSWORD, 
options.keyStorePw.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.PROTOCOL))
 factoryOptions.put(SSLTransportFactory.PROTOCOL, 
options.protocol.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.CIPHER_SUITES))
@@ -102,6 +106,16 @@ public class SettingsTransport implements Serializable
 encOptions.enabled = true;
 encOptions.truststore = options.trustStore.value();
 encOptions.truststore_password = options.trustStorePw.value();
+if (options.keyStore.present())
+{
+encOptions.keystore = options.keyStore.value();
+encOptions.keystore_password = options.keyStorePw.value();
+}
+else
+{
+// mandatory for SSLFactory.createSSLContext(), see 
CASSANDRA-9325
+encOptions.keystore = encOptions.truststore;
+}
 encOptions.algorithm = options.alg.value();
 encOptions.protocol = options.protocol.value();
 encOptions.cipher_suites = options.ciphers.value().split(",");
@@ -116,6 +130,8 @@ public class SettingsTransport implements Serializable
 final OptionSimple factory = new OptionSimple("factory=", ".*", 
TFramedTransportFactory.class.getName(), "Fully-qualified ITransportFactory 
class name for creating a connection. Note: For Thrift over SSL, use 
org.apache.cassandra.thrift.SSLTransportFactory.", false);
 final OptionSimple trustStore = new OptionSimple("truststore=", ".*", 
null, "SSL: full path to truststore", false);
 final OptionSimple trustStorePw = new 
OptionSimple("truststore-password=", ".*", null, "SSL: truststore password", 
false);
+final OptionSimple keyStore = new OptionSimple("keystore=", ".*", 
null, "SSL: full path to keystore", false);
+final OptionSimple keyStorePw = new OptionSimple("keystore-password=", 
".*", null, "SS

[05/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 Thread jake
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/067c8dfb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/067c8dfb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/067c8dfb

Branch: refs/heads/cassandra-3.5
Commit: 067c8dfbe41421283e8cf6dc3c595efb237be054
Parents: f8cc860 106750c
Author: T Jake Luciani 
Authored: Thu Mar 31 10:15:40 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:15:40 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/067c8dfb/CHANGES.txt
--
diff --cc CHANGES.txt
index 449a2b5,3e51935..eda762b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,18 -1,7 +1,19 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Add cassandra-stress keystore option (CASSANDRA-9325)
   * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)



[04/10] cassandra git commit: Add cassandra-stress keystore option (CASSANDRA-9325)

2016-03-31 Thread jake
Add cassandra-stress keystore option (CASSANDRA-9325)

 * Prevents stress tool from checking keystore at .conf/keystore even if not 
needed
 * Adds keystore -transport option in case client verification is used on server

Patch by Stefan Podkowinski; reviewed by T Jake Luciani for CASSANDRA-9325


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/106750c7
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/106750c7
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/106750c7

Branch: refs/heads/trunk
Commit: 106750c78e21c6d7ad85ee2d0819a36cd65726b3
Parents: 10f25ae
Author: Stefan Podkowinski 
Authored: Tue Feb 16 17:34:26 2016 +0100
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:09:24 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e7aa321..3e51935 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.2.6
+ * Add cassandra-stress keystore option (CASSANDRA-9325)
  * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
  * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
  * Notify when sstables change after cancelling compaction (CASSANDRA-11373)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/106750c7/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
--
diff --git 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
index 8b0ef6a..b6d1d90 100644
--- 
a/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
+++ 
b/tools/stress/src/org/apache/cassandra/stress/settings/SettingsTransport.java
@@ -65,6 +65,10 @@ public class SettingsTransport implements Serializable
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE, 
options.trustStore.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.TRUSTSTORE_PASSWORD))
 factoryOptions.put(SSLTransportFactory.TRUSTSTORE_PASSWORD, 
options.trustStorePw.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE))
+factoryOptions.put(SSLTransportFactory.KEYSTORE, 
options.keyStore.value());
+if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.KEYSTORE_PASSWORD))
+factoryOptions.put(SSLTransportFactory.KEYSTORE_PASSWORD, 
options.keyStorePw.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.PROTOCOL))
 factoryOptions.put(SSLTransportFactory.PROTOCOL, 
options.protocol.value());
 if 
(transportFactory.supportedOptions().contains(SSLTransportFactory.CIPHER_SUITES))
@@ -102,6 +106,16 @@ public class SettingsTransport implements Serializable
 encOptions.enabled = true;
 encOptions.truststore = options.trustStore.value();
 encOptions.truststore_password = options.trustStorePw.value();
+if (options.keyStore.present())
+{
+encOptions.keystore = options.keyStore.value();
+encOptions.keystore_password = options.keyStorePw.value();
+}
+else
+{
+// mandatory for SSLFactory.createSSLContext(), see 
CASSANDRA-9325
+encOptions.keystore = encOptions.truststore;
+}
 encOptions.algorithm = options.alg.value();
 encOptions.protocol = options.protocol.value();
 encOptions.cipher_suites = options.ciphers.value().split(",");
@@ -116,6 +130,8 @@ public class SettingsTransport implements Serializable
 final OptionSimple factory = new OptionSimple("factory=", ".*", 
TFramedTransportFactory.class.getName(), "Fully-qualified ITransportFactory 
class name for creating a connection. Note: For Thrift over SSL, use 
org.apache.cassandra.thrift.SSLTransportFactory.", false);
 final OptionSimple trustStore = new OptionSimple("truststore=", ".*", 
null, "SSL: full path to truststore", false);
 final OptionSimple trustStorePw = new 
OptionSimple("truststore-password=", ".*", null, "SSL: truststore password", 
false);
+final OptionSimple keyStore = new OptionSimple("keystore=", ".*", 
null, "SSL: full path to keystore", false);
+final OptionSimple keyStorePw = new OptionSimple("keystore-password=", 
".*", null, "SSL: keyst

[06/10] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2016-03-31 Thread jake
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/067c8dfb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/067c8dfb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/067c8dfb

Branch: refs/heads/cassandra-3.0
Commit: 067c8dfbe41421283e8cf6dc3c595efb237be054
Parents: f8cc860 106750c
Author: T Jake Luciani 
Authored: Thu Mar 31 10:15:40 2016 -0400
Committer: T Jake Luciani 
Committed: Thu Mar 31 10:15:40 2016 -0400

--
 CHANGES.txt   |  1 +
 .../stress/settings/SettingsTransport.java| 18 +-
 2 files changed, 18 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/067c8dfb/CHANGES.txt
--
diff --cc CHANGES.txt
index 449a2b5,3e51935..eda762b
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,18 -1,7 +1,19 @@@
 -2.2.6
 +3.0.5
 + * Upgrade ohc to 0.4.3
 + * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
 + * Allocate merkletrees with the correct size (CASSANDRA-11390)
 + * Support streaming pre-3.0 sstables (CASSANDRA-10990)
 + * Add backpressure to compressed commit log (CASSANDRA-10971)
 + * SSTableExport supports secondary index tables (CASSANDRA-11330)
 + * Fix sstabledump to include missing info in debug output (CASSANDRA-11321)
 + * Establish and implement canonical bulk reading workload(s) 
(CASSANDRA-10331)
 + * Fix paging for IN queries on tables without clustering columns 
(CASSANDRA-11208)
 + * Remove recursive call from CompositesSearcher (CASSANDRA-11304)
 + * Fix filtering on non-primary key columns for queries without index 
(CASSANDRA-6377)
 + * Fix sstableloader fail when using materialized view (CASSANDRA-11275)
 +Merged from 2.2:
+  * Add cassandra-stress keystore option (CASSANDRA-9325)
   * Dont mark sstables as repairing with sub range repairs (CASSANDRA-11451)
 - * Fix use of NullUpdater for 2i during compaction (CASSANDRA-11450)
   * Notify when sstables change after cancelling compaction (CASSANDRA-11373)
   * cqlsh: COPY FROM should check that explicit column names are valid 
(CASSANDRA-11333)
   * Add -Dcassandra.start_gossip startup option (CASSANDRA-10809)



[jira] [Updated] (CASSANDRA-9325) cassandra-stress requires keystore for SSL but provides no way to configure it

2016-03-31 Thread T Jake Luciani (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

T Jake Luciani updated CASSANDRA-9325:
--
   Resolution: Fixed
Fix Version/s: (was: 2.2.x)
   3.5
   3.0.5
   2.2.6
   Status: Resolved  (was: Patch Available)

committed 

> cassandra-stress requires keystore for SSL but provides no way to configure it
> --
>
> Key: CASSANDRA-9325
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9325
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Tools
>Reporter: J.B. Langston
>Assignee: Stefan Podkowinski
>  Labels: lhf, stress
> Fix For: 2.2.6, 3.0.5, 3.5
>
> Attachments: 9325-2.1.patch
>
>
> Even though it shouldn't be required unless client certificate authentication 
> is enabled, the stress tool is looking for a keystore in the default location 
> of conf/.keystore with the default password of cassandra. There is no command 
> line option to override these defaults so you have to provide a keystore that 
> satisfies the default. It looks for conf/.keystore in the working directory, 
> so you need to create this in the directory you are running cassandra-stress 
> from.It doesn't really matter what's in the keystore; it just needs to exist 
> in the expected location and have a password of cassandra.
> Since the keystore might be required if client certificate authentication is 
> enabled, we need to add -transport parameters for keystore and 
> keystore-password.  Ideally, these should be optional and stress shouldn't 
> require the keystore unless client certificate authentication is enabled on 
> the server.
> In case it wasn't apparent, this is for Cassandra 2.1 and later's stress 
> tool.  I actually had even more problems getting Cassandra 2.0's stress tool 
> working with SSL and gave up on it.  We probably don't need to fix 2.0; we 
> can just document that it doesn't support SSL and recommend using 2.1 instead.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11456) support for PreparedStatement with LIKE

2016-03-31 Thread Sam Tunnicliffe (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219923#comment-15219923
 ] 

Sam Tunnicliffe commented on CASSANDRA-11456:
-

[~xedin] sounds reasonable. I've pushed a branch with a quick implementation, 
wdyt?

||branch||testall||dtest||
|[11456-trunk|https://github.com/beobal/cassandra/tree/11456-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/beobal/job/beobal-11456-trunk-testall]|[dtest|http://cassci.datastax.com/view/Dev/view/beobal/job/beobal-11456-trunk-dtest]|


> support for PreparedStatement with LIKE
> ---
>
> Key: CASSANDRA-11456
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11456
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL
>Reporter: Pavel Yaskevich
>Assignee: Pavel Yaskevich
>Priority: Minor
> Fix For: 3.6
>
>
> Using the Java driver for example:
> {code}
> PreparedStatement pst = session.prepare("select * from test.users where 
> first_name LIKE ?");
> BoundStatement bs = pst.bind("Jon%");
> {code}
> The first line fails with {{SyntaxError: line 1:47 mismatched input '?' 
> expecting STRING_LITERAL}} (which makes sense since it's how it's declared in 
> the grammar). Other operators declare the right-hand side value as a 
> {{Term.Raw}}, which can also be a bind marker.
> I think users will expect to be able to bind the argument this way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (CASSANDRA-11412) Many sstablescanners opened during repair

2016-03-31 Thread Marcus Eriksson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marcus Eriksson reassigned CASSANDRA-11412:
---

Assignee: Marcus Eriksson

> Many sstablescanners opened during repair
> -
>
> Key: CASSANDRA-11412
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11412
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>
> Since CASSANDRA-5220 we open [one sstablescanner per range per 
> sstable|https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/db/compaction/CompactionStrategyManager.java#L374].
>  If compaction gets behind and you are running vnodes with 256 tokens and 
> RF3, this could become a problem (ie, {{768 * number of sstables}} scanners)
> We could probably refactor this similar to the way we handle scanners with 
> LCS - only open the scanner once we need it



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[3/6] cassandra git commit: Improve IF NOT EXISTS check in CREATE INDEX

2016-03-31 Thread samt
Improve IF NOT EXISTS check in CREATE INDEX

Patch by Sam Tunnicliffe; reviewed by Benjamin Lerer for CASSANDRA-11331


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be380814
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be380814
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be380814

Branch: refs/heads/trunk
Commit: be3808140207d2ab783ef907639c2ad544b6683f
Parents: 067c8df
Author: Sam Tunnicliffe 
Authored: Thu Mar 10 17:25:36 2016 +
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:37:16 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index eda762b..7fc628e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.5
+ * Improve IF NOT EXISTS check in CREATE INDEX (CASSANDRA-11131)
  * Upgrade ohc to 0.4.3
  * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
  * Allocate merkletrees with the correct size (CASSANDRA-11390)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
index b2a6fd5..df1965a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
@@ -229,9 +229,14 @@ public class CreateIndexStatement extends 
SchemaAlteringStatement
 // check to disallow creation of an index which duplicates an existing 
one in all but name
 Optional existingIndex = 
Iterables.tryFind(cfm.getIndexes(), existing -> 
existing.equalsWithoutName(index));
 if (existingIndex.isPresent())
-throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
-index.name,
-
existingIndex.get().name));
+{
+if (ifNotExists)
+return null;
+else
+throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
+index.name,
+
existingIndex.get().name));
+}
 
 logger.trace("Updating index definition for {}", indexName);
 cfm.indexes(cfm.getIndexes().with(index));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
index 6ad9cc8..f9802d7 100644
--- 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
+++ 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
@@ -106,7 +106,11 @@ public class SecondaryIndexTest extends CQLTester

removeQuotes(indexName.toLowerCase(Locale.US))),
  "CREATE INDEX " + indexName + " ON %s(b)");
 
+// IF NOT EXISTS should apply in cases where the new index differs 
from an existing one in name only
 String otherIndexName = "index_" + System.nanoTime();
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
+createIndex("CREATE INDEX IF NOT EXISTS " + otherIndexName + " ON 
%s(b)");
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
 assertInvalidMessage(String.format("Index %s is a duplicate of 
existing index %s",

removeQuotes(otherIndexName.toLowerCase(Locale.US)),

removeQuotes(indexName.toLowerCase(Locale.US))),



[jira] [Updated] (CASSANDRA-11468) Reading from early opened, and compressed, sstable throws CorruptSSTableException

2016-03-31 Thread Blake Eggleston (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Blake Eggleston updated CASSANDRA-11468:

Since Version: 3.0.4  (was: 3.4)

> Reading from early opened, and compressed, sstable throws 
> CorruptSSTableException
> -
>
> Key: CASSANDRA-11468
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11468
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Blake Eggleston
> Fix For: 3.0.x
>
>
> When a compressed sstable is early opened during compaction, reading from it 
> can fail with the following exception:
> {code}
> org.apache.cassandra.io.sstable.CorruptSSTableException: Corrupted: 
> build/test/cassandra/data/ks_1459378971131/early_open_test-893eb3d0f6cb11e59e1b4f343b985d3e/ma-3-big-Data.db
>   at 
> org.apache.cassandra.db.columniterator.AbstractSSTableIterator.(AbstractSSTableIterator.java:130)
>   at 
> org.apache.cassandra.db.columniterator.SSTableIterator.(SSTableIterator.java:46)
>   at 
> org.apache.cassandra.db.columniterator.SSTableIterator.(SSTableIterator.java:36)
>   at 
> org.apache.cassandra.io.sstable.format.big.BigTableReader.iterator(BigTableReader.java:62)
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndSSTablesInTimestampOrder(SinglePartitionReadCommand.java:715)
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:482)
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:459)
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:325)
>   at 
> org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:363)
>   at 
> org.apache.cassandra.db.ReadCommand.executeInternal(ReadCommand.java:393)
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand$Group.executeInternal(SinglePartitionReadCommand.java:950)
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:397)
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement.executeInternal(SelectStatement.java:76)
>   at 
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:295)
>   at 
> org.apache.cassandra.io.sstable.EarlyOpenTest.earlyOpen(EarlyOpenTest.java:160)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>   at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>   at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>   at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>   at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
>   at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
>   at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>   at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>   at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>   at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>   at 
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>   at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>   at org.junit.runner.JUnitCore.run(JUnitCore.java:159)
>   at 
> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:78)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:212)
>   at 
> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
> Caused by: java.io.EOFException
>   at 
> org.apache.cassandra.io.util.RebufferingInputStream.readByte(RebufferingInputStream.java:146)
>   at 
> org.apache.cassandra.io.util.RebufferingInputStream.readPrimitiveSlowly(RebufferingInputStream.java:108)
>   at 
> org.ap

[1/6] cassandra git commit: Improve IF NOT EXISTS check in CREATE INDEX

2016-03-31 Thread samt
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 067c8dfbe -> be3808140
  refs/heads/cassandra-3.5 b80a31d7e -> 4111e4fdf
  refs/heads/trunk 7e5c6b597 -> 961b5c9f4


Improve IF NOT EXISTS check in CREATE INDEX

Patch by Sam Tunnicliffe; reviewed by Benjamin Lerer for CASSANDRA-11331


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be380814
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be380814
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be380814

Branch: refs/heads/cassandra-3.0
Commit: be3808140207d2ab783ef907639c2ad544b6683f
Parents: 067c8df
Author: Sam Tunnicliffe 
Authored: Thu Mar 10 17:25:36 2016 +
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:37:16 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index eda762b..7fc628e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.5
+ * Improve IF NOT EXISTS check in CREATE INDEX (CASSANDRA-11131)
  * Upgrade ohc to 0.4.3
  * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
  * Allocate merkletrees with the correct size (CASSANDRA-11390)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
index b2a6fd5..df1965a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
@@ -229,9 +229,14 @@ public class CreateIndexStatement extends 
SchemaAlteringStatement
 // check to disallow creation of an index which duplicates an existing 
one in all but name
 Optional existingIndex = 
Iterables.tryFind(cfm.getIndexes(), existing -> 
existing.equalsWithoutName(index));
 if (existingIndex.isPresent())
-throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
-index.name,
-
existingIndex.get().name));
+{
+if (ifNotExists)
+return null;
+else
+throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
+index.name,
+
existingIndex.get().name));
+}
 
 logger.trace("Updating index definition for {}", indexName);
 cfm.indexes(cfm.getIndexes().with(index));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
index 6ad9cc8..f9802d7 100644
--- 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
+++ 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
@@ -106,7 +106,11 @@ public class SecondaryIndexTest extends CQLTester

removeQuotes(indexName.toLowerCase(Locale.US))),
  "CREATE INDEX " + indexName + " ON %s(b)");
 
+// IF NOT EXISTS should apply in cases where the new index differs 
from an existing one in name only
 String otherIndexName = "index_" + System.nanoTime();
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
+createIndex("CREATE INDEX IF NOT EXISTS " + otherIndexName + " ON 
%s(b)");
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
 assertInvalidMessage(String.format("Index %s is a duplicate of 
existing index %s",

removeQuotes(otherIndexName.toLowerCase(Locale.US)),

removeQuotes(indexName.toLowerCase(Locale.US))),



[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread samt
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4111e4fd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4111e4fd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4111e4fd

Branch: refs/heads/trunk
Commit: 4111e4fdf982462619145761d80d109bf1d78fa2
Parents: b80a31d be38081
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 15:40:16 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:40:16 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/CHANGES.txt
--
diff --cc CHANGES.txt
index d645925,7fc628e..b542a67
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
 -3.0.5
 +3.5
 + * Avoid index segment stitching in RAM which lead to OOM on big SSTable 
files (CASSANDRA-11383)
 + * Fix clustering and row filters for LIKE queries on clustering columns 
(CASSANDRA-11397)
 +Merged from 3.0:
+  * Improve IF NOT EXISTS check in CREATE INDEX (CASSANDRA-11131)
   * Upgrade ohc to 0.4.3
   * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
   * Allocate merkletrees with the correct size (CASSANDRA-11390)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
--



[jira] [Updated] (CASSANDRA-11331) Create Index IF NOT EXISTS throws error when index already exists

2016-03-31 Thread Sam Tunnicliffe (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-11331:

   Resolution: Fixed
Fix Version/s: (was: 3.0.x)
   (was: 3.x)
   3.5
   3.0.5
Reproduced In: 3.4, 3.0.4  (was: 3.0.4, 3.4)
   Status: Resolved  (was: Ready to Commit)

Thanks, committed to 3.0 in {{be3808140207d2ab783ef907639c2ad544b6683f}}

> Create Index IF NOT EXISTS throws error when index already exists
> -
>
> Key: CASSANDRA-11331
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11331
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL
>Reporter: Philip Thompson
>Assignee: Sam Tunnicliffe
> Fix For: 3.0.5, 3.5
>
>
> While testing with trunk, I see that issuing the following queries throws an 
> InvalidRequest, despite being valid.
> {code}
> CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', 
> 'replication_factor': '1'}  AND durable_writes = true;
> USE k;
> CREATE TABLE k.t (
> id int PRIMARY KEY,
> v int,
> v2 int,
> v3 text
> );
> CREATE INDEX IF NOT EXISTS ON t (v2);
> CREATE INDEX IF NOT EXISTS ON t (v2);
> InvalidRequest: code=2200 [Invalid query] message="Index t_v2_idx_1 is a 
> duplicate of existing index t_v2_idx"
> {code}
> The second {{CREATE INDEX IF NOT EXISTS}} should work fine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11461) Failed incremental repairs never cleared from pending list

2016-03-31 Thread Francesco Animali (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219978#comment-15219978
 ] 

Francesco Animali commented on CASSANDRA-11461:
---

actually I specified a number of parallel repairs in the opscenterd.conf:
max_parallel_repairs = 500


> Failed incremental repairs never cleared from pending list
> --
>
> Key: CASSANDRA-11461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Adam Hattrell
>
> Set up a test cluster with 2 DC's, heavy use of LCS (not sure if that's 
> relevant).
> Kick off cassandra-stress against it.
> Kick of an automated incremental repair cycle.  
> After a bit a node starts flapping which causes a few repairs to fail.  This 
> is never cleared out of pending repairs - given the keyspace is replicated to 
> all nodes it means they all have pending repairs that will never complete.  
> Repairs  are basically blocked at this point.
> Given we're using Incremental repairs you're now spammed with:
> "Cannot start multiple repair sessions over the same sstables"
> Cluster and logs are still available for review - message me for details.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (CASSANDRA-11307) Inappropriate WARN log message for commit log sync delay when using commitlog_sync: batch

2016-03-31 Thread Benjamin Lerer (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11307?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer reassigned CASSANDRA-11307:
--

Assignee: Benjamin Lerer

> Inappropriate WARN log message for commit log sync delay when using 
> commitlog_sync: batch
> -
>
> Key: CASSANDRA-11307
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11307
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
> Environment: Linux
>Reporter: Gary Ogasawara
>Assignee: Benjamin Lerer
>Priority: Minor
>
> In v2.1.11 when using configuration
> commitlog_sync: batch
> commitlog_sync_batch_window_in_ms: 2
> will frequently get this WARN log though there is not a real problem.
> WARN  [COMMIT-LOG-WRITER] 2016-03-03 00:40:11,646 
> AbstractCommitLogService.java:105 - Out of 142412 commit log syncs over the 
> past 300s with average duration of 0.00ms, 35 have exceeded the configured 
> commit interval by an average of 3.66ms
> WARN  [COMMIT-LOG-WRITER] 2016-03-03 00:45:11,755 
> AbstractCommitLogService.java:105 - Out of 104605 commit log syncs over the 
> past 300s with average duration of 1.74ms, 18314 have exceeded the configured 
> commit interval by an average of 6.33ms
> Looks like BatchCommitLogService sets AbstractCommitLogService() 
> pollIntervalMillis to the configured commitlog_sync_batch_window_in_ms.  
> Since CASSANDRA-9504, this is by default set to 2 which causes this WARN 
> message to be triggered unnecessarily.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[6/6] cassandra git commit: Merge branch 'cassandra-3.5' into trunk

2016-03-31 Thread samt
Merge branch 'cassandra-3.5' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/961b5c9f
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/961b5c9f
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/961b5c9f

Branch: refs/heads/trunk
Commit: 961b5c9f4561a0c0add9a05fe46a55fe01b9d398
Parents: 7e5c6b5 4111e4f
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 15:42:03 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:42:03 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/961b5c9f/CHANGES.txt
--



[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.5

2016-03-31 Thread samt
Merge branch 'cassandra-3.0' into cassandra-3.5


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4111e4fd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4111e4fd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4111e4fd

Branch: refs/heads/cassandra-3.5
Commit: 4111e4fdf982462619145761d80d109bf1d78fa2
Parents: b80a31d be38081
Author: Sam Tunnicliffe 
Authored: Thu Mar 31 15:40:16 2016 +0100
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:40:16 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/CHANGES.txt
--
diff --cc CHANGES.txt
index d645925,7fc628e..b542a67
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
 -3.0.5
 +3.5
 + * Avoid index segment stitching in RAM which lead to OOM on big SSTable 
files (CASSANDRA-11383)
 + * Fix clustering and row filters for LIKE queries on clustering columns 
(CASSANDRA-11397)
 +Merged from 3.0:
+  * Improve IF NOT EXISTS check in CREATE INDEX (CASSANDRA-11131)
   * Upgrade ohc to 0.4.3
   * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
   * Allocate merkletrees with the correct size (CASSANDRA-11390)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4111e4fd/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
--



[2/6] cassandra git commit: Improve IF NOT EXISTS check in CREATE INDEX

2016-03-31 Thread samt
Improve IF NOT EXISTS check in CREATE INDEX

Patch by Sam Tunnicliffe; reviewed by Benjamin Lerer for CASSANDRA-11331


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be380814
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be380814
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be380814

Branch: refs/heads/cassandra-3.5
Commit: be3808140207d2ab783ef907639c2ad544b6683f
Parents: 067c8df
Author: Sam Tunnicliffe 
Authored: Thu Mar 10 17:25:36 2016 +
Committer: Sam Tunnicliffe 
Committed: Thu Mar 31 15:37:16 2016 +0100

--
 CHANGES.txt  |  1 +
 .../cassandra/cql3/statements/CreateIndexStatement.java  | 11 ---
 .../cql3/validation/entities/SecondaryIndexTest.java |  4 
 3 files changed, 13 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index eda762b..7fc628e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 3.0.5
+ * Improve IF NOT EXISTS check in CREATE INDEX (CASSANDRA-11131)
  * Upgrade ohc to 0.4.3
  * Enable SO_REUSEADDR for JMX RMI server sockets (CASSANDRA-11093)
  * Allocate merkletrees with the correct size (CASSANDRA-11390)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
index b2a6fd5..df1965a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateIndexStatement.java
@@ -229,9 +229,14 @@ public class CreateIndexStatement extends 
SchemaAlteringStatement
 // check to disallow creation of an index which duplicates an existing 
one in all but name
 Optional existingIndex = 
Iterables.tryFind(cfm.getIndexes(), existing -> 
existing.equalsWithoutName(index));
 if (existingIndex.isPresent())
-throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
-index.name,
-
existingIndex.get().name));
+{
+if (ifNotExists)
+return null;
+else
+throw new InvalidRequestException(String.format("Index %s is a 
duplicate of existing index %s",
+index.name,
+
existingIndex.get().name));
+}
 
 logger.trace("Updating index definition for {}", indexName);
 cfm.indexes(cfm.getIndexes().with(index));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/be380814/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
--
diff --git 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
index 6ad9cc8..f9802d7 100644
--- 
a/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
+++ 
b/test/unit/org/apache/cassandra/cql3/validation/entities/SecondaryIndexTest.java
@@ -106,7 +106,11 @@ public class SecondaryIndexTest extends CQLTester

removeQuotes(indexName.toLowerCase(Locale.US))),
  "CREATE INDEX " + indexName + " ON %s(b)");
 
+// IF NOT EXISTS should apply in cases where the new index differs 
from an existing one in name only
 String otherIndexName = "index_" + System.nanoTime();
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
+createIndex("CREATE INDEX IF NOT EXISTS " + otherIndexName + " ON 
%s(b)");
+assertEquals(1, 
getCurrentColumnFamilyStore().metadata.getIndexes().size());
 assertInvalidMessage(String.format("Index %s is a duplicate of 
existing index %s",

removeQuotes(otherIndexName.toLowerCase(Locale.US)),

removeQuotes(indexName.toLowerCase(Locale.US))),



[jira] [Commented] (CASSANDRA-11225) dtest failure in consistency_test.TestAccuracy.test_simple_strategy_counters

2016-03-31 Thread Russ Hatch (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15219981#comment-15219981
 ] 

Russ Hatch commented on CASSANDRA-11225:


[~Stefania] Sounds like maybe those two failures could both be eventual 
consistency test problems? I learned recently while investigating another test, 
that even with an exclusive connection, with the coordinator in the replica 
set, it still may go out to another node for data (though rare). Maybe we're 
seeing a manifestation of that corner case?

> dtest failure in consistency_test.TestAccuracy.test_simple_strategy_counters
> 
>
> Key: CASSANDRA-11225
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11225
> Project: Cassandra
>  Issue Type: Test
>Reporter: Russ Hatch
>Assignee: Russ Hatch
>  Labels: dtest
>
> example failure:
> http://cassci.datastax.com/job/cassandra-2.1_novnode_dtest/209/testReport/consistency_test/TestAccuracy/test_simple_strategy_counters
> Failed on CassCI build cassandra-2.1_novnode_dtest #209
> error: "AssertionError: Failed to read value from sufficient number of nodes, 
> required 2 but got 1 - [574, 2]"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11461) Failed incremental repairs never cleared from pending list

2016-03-31 Thread Nick Bailey (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220014#comment-15220014
 ] 

Nick Bailey commented on CASSANDRA-11461:
-

We would need to reproduce the issue in OpsCenter with debug logging enabled to 
see how many parallel repairs OpsCenter is attempting. But I could easily see 
how you would hit this issue with vnodes enabled. We don't have any logic to 
prevent that from happening. 

> Failed incremental repairs never cleared from pending list
> --
>
> Key: CASSANDRA-11461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Adam Hattrell
>
> Set up a test cluster with 2 DC's, heavy use of LCS (not sure if that's 
> relevant).
> Kick off cassandra-stress against it.
> Kick of an automated incremental repair cycle.  
> After a bit a node starts flapping which causes a few repairs to fail.  This 
> is never cleared out of pending repairs - given the keyspace is replicated to 
> all nodes it means they all have pending repairs that will never complete.  
> Repairs  are basically blocked at this point.
> Given we're using Incremental repairs you're now spammed with:
> "Cannot start multiple repair sessions over the same sstables"
> Cluster and logs are still available for review - message me for details.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11461) Failed incremental repairs never cleared from pending list

2016-03-31 Thread Marcus Eriksson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220026#comment-15220026
 ] 

Marcus Eriksson commented on CASSANDRA-11461:
-

[~nickmbailey] with CASSANDRA-11451 users can run repair service just like 
today, only it doesn't make much sense to support incremental repairs in repair 
service as we never anticompact with sub range repairs

> Failed incremental repairs never cleared from pending list
> --
>
> Key: CASSANDRA-11461
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11461
> Project: Cassandra
>  Issue Type: Bug
>  Components: Core
>Reporter: Adam Hattrell
>
> Set up a test cluster with 2 DC's, heavy use of LCS (not sure if that's 
> relevant).
> Kick off cassandra-stress against it.
> Kick of an automated incremental repair cycle.  
> After a bit a node starts flapping which causes a few repairs to fail.  This 
> is never cleared out of pending repairs - given the keyspace is replicated to 
> all nodes it means they all have pending repairs that will never complete.  
> Repairs  are basically blocked at this point.
> Given we're using Incremental repairs you're now spammed with:
> "Cannot start multiple repair sessions over the same sstables"
> Cluster and logs are still available for review - message me for details.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-10587) sstablemetadata NPE on cassandra 2.2

2016-03-31 Thread Paulo Motta (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220046#comment-15220046
 ] 

Paulo Motta commented on CASSANDRA-10587:
-

LGTM, tested locally and worked after fix. Thanks!

> sstablemetadata NPE on cassandra 2.2
> 
>
> Key: CASSANDRA-10587
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10587
> Project: Cassandra
>  Issue Type: Bug
>  Components: Tools
>Reporter: Tiago Batista
>Assignee: Yuki Morishita
>Priority: Minor
> Fix For: 2.2.x, 3.x
>
>
> I have recently upgraded my cassandra cluster to 2.2, currently running 
> 2.2.3. After running the first repair, cassandra renames the sstables to the 
> new naming schema that does not contain the keyspace name.
>  This causes sstablemetadata to fail with the following stack trace:
> {noformat}
> Exception in thread "main" java.lang.NullPointerException
> at 
> org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:275)
> at 
> org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:172)
> at 
> org.apache.cassandra.tools.SSTableMetadataViewer.main(SSTableMetadataViewer.java:52)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10587) sstablemetadata NPE on cassandra 2.2

2016-03-31 Thread Paulo Motta (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10587?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paulo Motta updated CASSANDRA-10587:

Status: Ready to Commit  (was: Patch Available)

> sstablemetadata NPE on cassandra 2.2
> 
>
> Key: CASSANDRA-10587
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10587
> Project: Cassandra
>  Issue Type: Bug
>  Components: Tools
>Reporter: Tiago Batista
>Assignee: Yuki Morishita
>Priority: Minor
> Fix For: 2.2.x, 3.x
>
>
> I have recently upgraded my cassandra cluster to 2.2, currently running 
> 2.2.3. After running the first repair, cassandra renames the sstables to the 
> new naming schema that does not contain the keyspace name.
>  This causes sstablemetadata to fail with the following stack trace:
> {noformat}
> Exception in thread "main" java.lang.NullPointerException
> at 
> org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:275)
> at 
> org.apache.cassandra.io.sstable.Descriptor.fromFilename(Descriptor.java:172)
> at 
> org.apache.cassandra.tools.SSTableMetadataViewer.main(SSTableMetadataViewer.java:52)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-7881) SCHEMA_CHANGE Events and Responses should carry the Schema Version

2016-03-31 Thread Tyler Hobbs (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-7881?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220108#comment-15220108
 ] 

Tyler Hobbs commented on CASSANDRA-7881:


I agree with your comments.  Do you want to go ahead and resolve this as Won't 
Fix?

> SCHEMA_CHANGE Events and Responses should carry the Schema Version
> --
>
> Key: CASSANDRA-7881
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7881
> Project: Cassandra
>  Issue Type: Sub-task
>Reporter: Michaël Figuière
>Assignee: Robert Stupp
>Priority: Minor
>  Labels: client-impacting, protocolv4
> Fix For: 3.x
>
> Attachments: 7881.txt
>
>
> For similar logging and debugging purpose as exposed in CASSANDRA-7880, it 
> would be helpful to send to the client the previous and new schema version 
> UUID that were in use before and after a schema change operation, in the 
> {{SCHEMA_CHANGE}} events and responses in the protocol v4.
> This could then be exposed in the client APIs in order to bring much more 
> precise awareness of the actual status of the schema on each node.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11466) Add Dynamic Type to the Native Protocol

2016-03-31 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-11466:
--
Issue Type: Sub-task  (was: Improvement)
Parent: CASSANDRA-9362

> Add Dynamic Type to the Native Protocol
> ---
>
> Key: CASSANDRA-11466
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11466
> Project: Cassandra
>  Issue Type: Sub-task
>  Components: CQL
>Reporter: Tyler Hobbs
>  Labels: client-impacting, doc-impacting
>
> There are several cases where the native protocol limits our ability to 
> support functions due to argument or result types that are only known at 
> execution time.  For example, we can't support {{fromJson()}} in the 
> selection clause or {{toJson()}} outside of the selection clause.
> To support these functions and other use cases, we should add a dynamic type 
> to the native protocol.  The serialization format for this would be a 
> {{}} field (i.e. a numeric typecode, as defined in the native protocol 
> spec) followed by the serialized value.  When deserializing values, drivers 
> would first read the typecode to determine the type, then decode the 
> remainder of the bytes accordingly.  How this type information is exposed to 
> the end user is up to the driver authors.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-10735) Support netty openssl (netty-tcnative) for client encryption

2016-03-31 Thread Norman Maurer (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220125#comment-15220125
 ] 

Norman Maurer commented on CASSANDRA-10735:
---

Actually you may want to assign this to me ? ;)

> Support netty openssl (netty-tcnative) for client encryption
> 
>
> Key: CASSANDRA-10735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10735
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Andy Tolbert
>Assignee: Aleksey Yeschenko
> Fix For: 3.x
>
> Attachments: netty-ssl-trunk.tgz, nettyssl-bench.tgz, 
> nettysslbench.png, nettysslbench_small.png, sslbench12-03.png
>
>
> The java-driver recently added support for using netty openssl via 
> [netty-tcnative|http://netty.io/wiki/forked-tomcat-native.html] in 
> [JAVA-841|https://datastax-oss.atlassian.net/browse/JAVA-841], this shows a 
> very measured improvement (numbers incoming on that ticket).   It seems 
> likely that this can offer improvement if implemented C* side as well.
> Since netty-tcnative has platform specific requirements, this should not be 
> made the default, but rather be an option that one can use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-9371) Add SEQUENCE to schema-change response/event messages

2016-03-31 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-9371:
-
Issue Type: Bug  (was: Sub-task)
Parent: (was: CASSANDRA-9362)

> Add SEQUENCE to schema-change response/event messages
> -
>
> Key: CASSANDRA-9371
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9371
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL
>Reporter: Robert Stupp
>Assignee: Robert Stupp
>
> Placeholder to indicate that CASSANDRA-9200 implies modification of the 
> native protocol.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-9371) Add SEQUENCE to schema-change response/event messages

2016-03-31 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9371?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-9371:
-
Issue Type: Task  (was: Bug)

> Add SEQUENCE to schema-change response/event messages
> -
>
> Key: CASSANDRA-9371
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9371
> Project: Cassandra
>  Issue Type: Task
>  Components: CQL
>Reporter: Robert Stupp
>Assignee: Robert Stupp
>
> Placeholder to indicate that CASSANDRA-9200 implies modification of the 
> native protocol.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-11469) dtest failure in upgrade_internal_auth_test.TestAuthUpgrade.upgrade_to_22_test

2016-03-31 Thread Philip Thompson (JIRA)
Philip Thompson created CASSANDRA-11469:
---

 Summary: dtest failure in 
upgrade_internal_auth_test.TestAuthUpgrade.upgrade_to_22_test
 Key: CASSANDRA-11469
 URL: https://issues.apache.org/jira/browse/CASSANDRA-11469
 Project: Cassandra
  Issue Type: Bug
Reporter: Philip Thompson
 Fix For: 2.2.x


Upgrading from 2.1 to 2.2, we are seeing failures in 
upgrade_internal_auth_test.py. I have seen a variety of stack traces, but the 
most common is:
{code}
java.lang.IllegalArgumentException: Unknown keyspace/cf pair 
(system_auth.credentials)
at 
org.apache.cassandra.db.Keyspace.getColumnFamilyStore(Keyspace.java:169) 
~[main/:na]
at 
org.apache.cassandra.service.StorageProxy.readRegular(StorageProxy.java:1383) 
~[main/:na]
at 
org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:1277) 
~[main/:na]
at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:221)
 ~[main/:na]
at 
org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:176)
 ~[main/:na]
at 
org.apache.cassandra.auth.PasswordAuthenticator.doAuthenticate(PasswordAuthenticator.java:143)
 ~[main/:na]
at 
org.apache.cassandra.auth.PasswordAuthenticator.authenticate(PasswordAuthenticator.java:85)
 ~[main/:na]
at 
org.apache.cassandra.auth.PasswordAuthenticator.access$100(PasswordAuthenticator.java:53)
 ~[main/:na]
at 
org.apache.cassandra.auth.PasswordAuthenticator$PlainTextSaslAuthenticator.getAuthenticatedUser(PasswordAuthenticator.java:181)
 ~[main/:na]
at 
org.apache.cassandra.transport.messages.AuthResponse.execute(AuthResponse.java:78)
 ~[main/:na]
at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:507)
 [main/:na]
at 
org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:401)
 [main/:na]
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_51]
at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164)
 [main/:na]
at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) 
[main/:na]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]
{code}

This failure is flaky, but not uncommon. I ran it 300 times here, and saw about 
100 failures on CI:

http://cassci.datastax.com/view/Parameterized/job/parameterized_dtest_multiplexer/53/testReport/

This is a recent failure, and given the type of failure, it seems like 
potentially a bug and not a test issue. [~beobal], you may be most interested 
in looking at this?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10735) Support netty openssl (netty-tcnative) for client encryption

2016-03-31 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-10735:
--
Assignee: Norman Maurer  (was: Aleksey Yeschenko)

> Support netty openssl (netty-tcnative) for client encryption
> 
>
> Key: CASSANDRA-10735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10735
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Andy Tolbert
>Assignee: Norman Maurer
> Fix For: 3.x
>
> Attachments: netty-ssl-trunk.tgz, nettyssl-bench.tgz, 
> nettysslbench.png, nettysslbench_small.png, sslbench12-03.png
>
>
> The java-driver recently added support for using netty openssl via 
> [netty-tcnative|http://netty.io/wiki/forked-tomcat-native.html] in 
> [JAVA-841|https://datastax-oss.atlassian.net/browse/JAVA-841], this shows a 
> very measured improvement (numbers incoming on that ticket).   It seems 
> likely that this can offer improvement if implemented C* side as well.
> Since netty-tcnative has platform specific requirements, this should not be 
> made the default, but rather be an option that one can use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-10735) Support netty openssl (netty-tcnative) for client encryption

2016-03-31 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220130#comment-15220130
 ] 

Aleksey Yeschenko commented on CASSANDRA-10735:
---

bq. Actually you may want to assign this to me?

As you wish (:

> Support netty openssl (netty-tcnative) for client encryption
> 
>
> Key: CASSANDRA-10735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10735
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Andy Tolbert
>Assignee: Norman Maurer
> Fix For: 3.x
>
> Attachments: netty-ssl-trunk.tgz, nettyssl-bench.tgz, 
> nettysslbench.png, nettysslbench_small.png, sslbench12-03.png
>
>
> The java-driver recently added support for using netty openssl via 
> [netty-tcnative|http://netty.io/wiki/forked-tomcat-native.html] in 
> [JAVA-841|https://datastax-oss.atlassian.net/browse/JAVA-841], this shows a 
> very measured improvement (numbers incoming on that ticket).   It seems 
> likely that this can offer improvement if implemented C* side as well.
> Since netty-tcnative has platform specific requirements, this should not be 
> made the default, but rather be an option that one can use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (CASSANDRA-7881) SCHEMA_CHANGE Events and Responses should carry the Schema Version

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-7881?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp resolved CASSANDRA-7881.
-
   Resolution: Won't Fix
Fix Version/s: (was: 3.x)

> SCHEMA_CHANGE Events and Responses should carry the Schema Version
> --
>
> Key: CASSANDRA-7881
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7881
> Project: Cassandra
>  Issue Type: Sub-task
>Reporter: Michaël Figuière
>Assignee: Robert Stupp
>Priority: Minor
>  Labels: client-impacting, protocolv4
> Attachments: 7881.txt
>
>
> For similar logging and debugging purpose as exposed in CASSANDRA-7880, it 
> would be helpful to send to the client the previous and new schema version 
> UUID that were in use before and after a schema change operation, in the 
> {{SCHEMA_CHANGE}} events and responses in the protocol v4.
> This could then be exposed in the client APIs in order to bring much more 
> precise awareness of the actual status of the schema on each node.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-10735) Support netty openssl (netty-tcnative) for client encryption

2016-03-31 Thread Norman Maurer (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220135#comment-15220135
 ] 

Norman Maurer commented on CASSANDRA-10735:
---

[~iamaleksey] you are fast buddy ;)

> Support netty openssl (netty-tcnative) for client encryption
> 
>
> Key: CASSANDRA-10735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10735
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Andy Tolbert
>Assignee: Norman Maurer
> Fix For: 3.x
>
> Attachments: netty-ssl-trunk.tgz, nettyssl-bench.tgz, 
> nettysslbench.png, nettysslbench_small.png, sslbench12-03.png
>
>
> The java-driver recently added support for using netty openssl via 
> [netty-tcnative|http://netty.io/wiki/forked-tomcat-native.html] in 
> [JAVA-841|https://datastax-oss.atlassian.net/browse/JAVA-841], this shows a 
> very measured improvement (numbers incoming on that ticket).   It seems 
> likely that this can offer improvement if implemented C* side as well.
> Since netty-tcnative has platform specific requirements, this should not be 
> made the default, but rather be an option that one can use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-10735) Support netty openssl (netty-tcnative) for client encryption

2016-03-31 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220139#comment-15220139
 ] 

Aleksey Yeschenko commented on CASSANDRA-10735:
---

[~norman] I hope you'll be too, mate (:

> Support netty openssl (netty-tcnative) for client encryption
> 
>
> Key: CASSANDRA-10735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10735
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Andy Tolbert
>Assignee: Norman Maurer
> Fix For: 3.x
>
> Attachments: netty-ssl-trunk.tgz, nettyssl-bench.tgz, 
> nettysslbench.png, nettysslbench_small.png, sslbench12-03.png
>
>
> The java-driver recently added support for using netty openssl via 
> [netty-tcnative|http://netty.io/wiki/forked-tomcat-native.html] in 
> [JAVA-841|https://datastax-oss.atlassian.net/browse/JAVA-841], this shows a 
> very measured improvement (numbers incoming on that ticket).   It seems 
> likely that this can offer improvement if implemented C* side as well.
> Since netty-tcnative has platform specific requirements, this should not be 
> made the default, but rather be an option that one can use.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11310) Allow filtering on clustering columns for queries without secondary indexes

2016-03-31 Thread Benjamin Lerer (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11310?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benjamin Lerer updated CASSANDRA-11310:
---
Status: Patch Available  (was: Open)

> Allow filtering on clustering columns for queries without secondary indexes
> ---
>
> Key: CASSANDRA-11310
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11310
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL
>Reporter: Benjamin Lerer
>Assignee: Alex Petrov
>  Labels: doc-impacting
> Fix For: 3.x
>
>
> Since CASSANDRA-6377 queries without index filtering non-primary key columns 
> are fully supported.
> It makes sense to also support filtering on clustering-columns.
> {code}
> CREATE TABLE emp_table2 (
> empID int,
> firstname text,
> lastname text,
> b_mon text,
> b_day text,
> b_yr text,
> PRIMARY KEY (empID, b_yr, b_mon, b_day));
> SELECT b_mon,b_day,b_yr,firstname,lastname FROM emp_table2
> WHERE b_mon='oct' ALLOW FILTERING;
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11393) dtest failure in upgrade_tests.upgrade_through_versions_test.ProtoV3Upgrade_2_1_UpTo_3_0_HEAD.rolling_upgrade_test

2016-03-31 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11393?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220159#comment-15220159
 ] 

Philip Thompson commented on CASSANDRA-11393:
-

I am now also seeing this in another upgrade test, 
upgrade_internal_auth_test.py:TestAuthUpgrade.upgrade_to_30_test

http://cassci.datastax.com/job/cassandra-3.0_dtest/633/testReport/upgrade_internal_auth_test/TestAuthUpgrade/upgrade_to_30_test/

> dtest failure in 
> upgrade_tests.upgrade_through_versions_test.ProtoV3Upgrade_2_1_UpTo_3_0_HEAD.rolling_upgrade_test
> --
>
> Key: CASSANDRA-11393
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11393
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>Assignee: Benjamin Lerer
>  Labels: dtest
> Fix For: 3.0.x
>
>
> We are seeing a failure in the upgrade tests that go from 2.1 to 3.0
> {code}
> node2: ERROR [SharedPool-Worker-2] 2016-03-10 20:05:17,865 Message.java:611 - 
> Unexpected exception during request; channel = [id: 0xeb79b477, 
> /127.0.0.1:39613 => /127.0.0.2:9042]
> java.lang.AssertionError: null
>   at 
> org.apache.cassandra.db.ReadCommand$LegacyReadCommandSerializer.serializedSize(ReadCommand.java:1208)
>  ~[main/:na]
>   at 
> org.apache.cassandra.db.ReadCommand$LegacyReadCommandSerializer.serializedSize(ReadCommand.java:1155)
>  ~[main/:na]
>   at org.apache.cassandra.net.MessageOut.payloadSize(MessageOut.java:166) 
> ~[main/:na]
>   at 
> org.apache.cassandra.net.OutboundTcpConnectionPool.getConnection(OutboundTcpConnectionPool.java:72)
>  ~[main/:na]
>   at 
> org.apache.cassandra.net.MessagingService.getConnection(MessagingService.java:609)
>  ~[main/:na]
>   at 
> org.apache.cassandra.net.MessagingService.sendOneWay(MessagingService.java:758)
>  ~[main/:na]
>   at 
> org.apache.cassandra.net.MessagingService.sendRR(MessagingService.java:701) 
> ~[main/:na]
>   at 
> org.apache.cassandra.net.MessagingService.sendRRWithFailure(MessagingService.java:684)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.AbstractReadExecutor.makeRequests(AbstractReadExecutor.java:110)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.AbstractReadExecutor.makeDataRequests(AbstractReadExecutor.java:85)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.AbstractReadExecutor$AlwaysSpeculatingReadExecutor.executeAsync(AbstractReadExecutor.java:330)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.StorageProxy$SinglePartitionReadLifecycle.doInitialQueries(StorageProxy.java:1699)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:1654) 
> ~[main/:na]
>   at 
> org.apache.cassandra.service.StorageProxy.readRegular(StorageProxy.java:1601) 
> ~[main/:na]
>   at 
> org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:1520) 
> ~[main/:na]
>   at 
> org.apache.cassandra.db.SinglePartitionReadCommand.execute(SinglePartitionReadCommand.java:302)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.pager.AbstractQueryPager.fetchPage(AbstractQueryPager.java:67)
>  ~[main/:na]
>   at 
> org.apache.cassandra.service.pager.SinglePartitionPager.fetchPage(SinglePartitionPager.java:34)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement$Pager$NormalPager.fetchPage(SelectStatement.java:297)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:333)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:209)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:76)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:472)
>  ~[main/:na]
>   at 
> org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:449)
>  ~[main/:na]
>   at 
> org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:130)
>  ~[main/:na]
>   at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:507)
>  [main/:na]
>   at 
> org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:401)
>  [main/:na]
>   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]

[jira] [Commented] (CASSANDRA-11310) Allow filtering on clustering columns for queries without secondary indexes

2016-03-31 Thread Benjamin Lerer (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220158#comment-15220158
 ] 

Benjamin Lerer commented on CASSANDRA-11310:


Thanks the changes look good. 
Waiting for CI results.

> Allow filtering on clustering columns for queries without secondary indexes
> ---
>
> Key: CASSANDRA-11310
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11310
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL
>Reporter: Benjamin Lerer
>Assignee: Alex Petrov
>  Labels: doc-impacting
> Fix For: 3.x
>
>
> Since CASSANDRA-6377 queries without index filtering non-primary key columns 
> are fully supported.
> It makes sense to also support filtering on clustering-columns.
> {code}
> CREATE TABLE emp_table2 (
> empID int,
> firstname text,
> lastname text,
> b_mon text,
> b_day text,
> b_yr text,
> PRIMARY KEY (empID, b_yr, b_mon, b_day));
> SELECT b_mon,b_day,b_yr,firstname,lastname FROM emp_table2
> WHERE b_mon='oct' ALLOW FILTERING;
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11452) Cache implementation using LIRS eviction for in-process page cache

2016-03-31 Thread Branimir Lambov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220189#comment-15220189
 ] 

Branimir Lambov commented on CASSANDRA-11452:
-

Work in progress attached 
[here|https://github.com/blambov/cassandra/tree/5863-cache-implementation]: 

Implements caches based on {{ConcurrentHashMap}} using FIFO, LRU and LIRS 
eviction strategies, implemented with lock-free queues. Also has version of the 
LIRS with some locking, as well as EHCache (too slow) for comparison.

LIRS does achieve better hit ratios, very obviously so for smaller 
cache-to-data ratios. Its latencies and throughput are similar to the Guava 
cache.
[Sample hit rates (using the included {{CachingBench}}) and varying the cache 
size)|https://docs.google.com/spreadsheets/d/1FlOFIMidbRXIXbu6wAEDBsyCiFE95XiwVz9aE7iYuh4/edit?usp=sharing]
[cstar_perf|http://cstar.datastax.com/tests/id/a7389154-f756-11e5-82e5-0256e416528f]


Next step: try an alternative for the concurrent hash map.


> Cache implementation using LIRS eviction for in-process page cache
> --
>
> Key: CASSANDRA-11452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Local Write-Read Paths
>Reporter: Branimir Lambov
>Assignee: Branimir Lambov
>
> Following up from CASSANDRA-5863, to make best use of caching and to avoid 
> having to explicitly marking compaction accesses as non-cacheable, we need a 
> cache implementation that uses an eviction algorithm that can better handle 
> non-recurring accesses.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (CASSANDRA-11452) Cache implementation using LIRS eviction for in-process page cache

2016-03-31 Thread Branimir Lambov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11452?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220189#comment-15220189
 ] 

Branimir Lambov edited comment on CASSANDRA-11452 at 3/31/16 4:47 PM:
--

Work in progress attached 
[here|https://github.com/blambov/cassandra/compare/5863-page-cache-4-rebase...blambov:5863-cache-implementation]:
 

Implements caches based on {{ConcurrentHashMap}} using FIFO, LRU and LIRS 
eviction strategies, implemented with lock-free queues. Also has version of the 
LIRS with some locking, as well as EHCache (too slow) for comparison.

LIRS does achieve better hit ratios, very obviously so for smaller 
cache-to-data ratios. Its latencies and throughput are similar to the Guava 
cache.
[Sample hit rates (using the included {{CachingBench}}) and varying the cache 
size)|https://docs.google.com/spreadsheets/d/1FlOFIMidbRXIXbu6wAEDBsyCiFE95XiwVz9aE7iYuh4/edit?usp=sharing]
[cstar_perf|http://cstar.datastax.com/tests/id/a7389154-f756-11e5-82e5-0256e416528f]


Next step: try an alternative for the concurrent hash map.



was (Author: blambov):
Work in progress attached 
[here|https://github.com/blambov/cassandra/tree/5863-cache-implementation]: 

Implements caches based on {{ConcurrentHashMap}} using FIFO, LRU and LIRS 
eviction strategies, implemented with lock-free queues. Also has version of the 
LIRS with some locking, as well as EHCache (too slow) for comparison.

LIRS does achieve better hit ratios, very obviously so for smaller 
cache-to-data ratios. Its latencies and throughput are similar to the Guava 
cache.
[Sample hit rates (using the included {{CachingBench}}) and varying the cache 
size)|https://docs.google.com/spreadsheets/d/1FlOFIMidbRXIXbu6wAEDBsyCiFE95XiwVz9aE7iYuh4/edit?usp=sharing]
[cstar_perf|http://cstar.datastax.com/tests/id/a7389154-f756-11e5-82e5-0256e416528f]


Next step: try an alternative for the concurrent hash map.


> Cache implementation using LIRS eviction for in-process page cache
> --
>
> Key: CASSANDRA-11452
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11452
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Local Write-Read Paths
>Reporter: Branimir Lambov
>Assignee: Branimir Lambov
>
> Following up from CASSANDRA-5863, to make best use of caching and to avoid 
> having to explicitly marking compaction accesses as non-cacheable, we need a 
> cache implementation that uses an eviction algorithm that can better handle 
> non-recurring accesses.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-11470) dtest failure in materialized_views_test.TestMaterializedViews.base_replica_repair_test

2016-03-31 Thread Philip Thompson (JIRA)
Philip Thompson created CASSANDRA-11470:
---

 Summary: dtest failure in 
materialized_views_test.TestMaterializedViews.base_replica_repair_test
 Key: CASSANDRA-11470
 URL: https://issues.apache.org/jira/browse/CASSANDRA-11470
 Project: Cassandra
  Issue Type: Test
Reporter: Philip Thompson
Assignee: DS Test Eng
 Attachments: node1.log, node2.log, node2_debug.log, node3.log, 
node3_debug.log

base_replica_repair_test has failed on trunk with the following exception in 
the log of node2:

{code}
ERROR [main] 2016-03-31 08:48:46,949 CassandraDaemon.java:708 - Exception 
encountered during startup
java.lang.RuntimeException: Failed to list files in 
/mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985
at 
org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53)
 ~[main/:na]
at 
org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:547)
 ~[main/:na]
at 
org.apache.cassandra.db.Directories$SSTableLister.filter(Directories.java:725) 
~[main/:na]
at 
org.apache.cassandra.db.Directories$SSTableLister.list(Directories.java:690) 
~[main/:na]
at 
org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:567)
 ~[main/:na]
at 
org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:555)
 ~[main/:na]
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:383) 
~[main/:na]
at org.apache.cassandra.db.Keyspace.(Keyspace.java:320) 
~[main/:na]
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:130) ~[main/:na]
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:107) ~[main/:na]
at 
org.apache.cassandra.cql3.restrictions.StatementRestrictions.(StatementRestrictions.java:139)
 ~[main/:na]
at 
org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:864)
 ~[main/:na]
at 
org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:811)
 ~[main/:na]
at 
org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:799)
 ~[main/:na]
at 
org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:505) 
~[main/:na]
at 
org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:242)
 ~[main/:na]
at 
org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286)
 ~[main/:na]
at 
org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294)
 ~[main/:na]
at 
org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1246) 
~[main/:na]
at 
org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:875)
 ~[main/:na]
at 
org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867)
 ~[main/:na]
at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) 
~[main/:na]
at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) 
~[main/:na]
at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) 
[main/:na]
at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562) 
[main/:na]
at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:691) 
[main/:na]
Caused by: java.lang.RuntimeException: Failed to list directory files in 
/mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985,
 inconsistent disk state for transaction 
[ma_txn_flush_58db56b0-f71d-11e5-bf68-03a01adb9f11.log in 
/mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985]
at 
org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:149)
 ~[main/:na]
at 
org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:103)
 ~[main/:na]
at 
org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$48/35984028.accept(Unknown
 Source) ~[na:na]
at 
java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
~[na:1.8.0_45]
at 
java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 
~[na:1.8.0_45]
at 
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) 
~[na:1.8.0_45]
at 
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) 
~[na:1.8.0_45]
at 
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) 
~[na:1.8.0_45]
at 
java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151) 
~[na:1.8.0_45]
at 
java.util.stream.ForEachO

[jira] [Updated] (CASSANDRA-11470) dtest failure in materialized_views_test.TestMaterializedViews.base_replica_repair_test

2016-03-31 Thread Philip Thompson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip Thompson updated CASSANDRA-11470:

Issue Type: Bug  (was: Test)

> dtest failure in 
> materialized_views_test.TestMaterializedViews.base_replica_repair_test
> ---
>
> Key: CASSANDRA-11470
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11470
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>Assignee: DS Test Eng
>  Labels: dtest
> Attachments: node1.log, node2.log, node2_debug.log, node3.log, 
> node3_debug.log
>
>
> base_replica_repair_test has failed on trunk with the following exception in 
> the log of node2:
> {code}
> ERROR [main] 2016-03-31 08:48:46,949 CassandraDaemon.java:708 - Exception 
> encountered during startup
> java.lang.RuntimeException: Failed to list files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:547)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.filter(Directories.java:725)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.list(Directories.java:690) 
> ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:567)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:555)
>  ~[main/:na]
> at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:383) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.(Keyspace.java:320) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:130) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:107) 
> ~[main/:na]
> at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.(StatementRestrictions.java:139)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:864)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:811)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:799)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:505)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:242)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1246) 
> ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:875)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867)
>  ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) 
> ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) 
> ~[main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) 
> [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562)
>  [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:691) 
> [main/:na]
> Caused by: java.lang.RuntimeException: Failed to list directory files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985,
>  inconsistent disk state for transaction 
> [ma_txn_flush_58db56b0-f71d-11e5-bf68-03a01adb9f11.log in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:149)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:103)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$48/35984028.accept(Unknown
>  Source) ~[na:na]
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
> ~[na:1.8.0_45]
> at 
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:

[jira] [Updated] (CASSANDRA-11470) dtest failure in materialized_views_test.TestMaterializedViews.base_replica_repair_test

2016-03-31 Thread Philip Thompson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip Thompson updated CASSANDRA-11470:

Assignee: (was: DS Test Eng)

> dtest failure in 
> materialized_views_test.TestMaterializedViews.base_replica_repair_test
> ---
>
> Key: CASSANDRA-11470
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11470
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>  Labels: dtest
> Attachments: node1.log, node2.log, node2_debug.log, node3.log, 
> node3_debug.log
>
>
> base_replica_repair_test has failed on trunk with the following exception in 
> the log of node2:
> {code}
> ERROR [main] 2016-03-31 08:48:46,949 CassandraDaemon.java:708 - Exception 
> encountered during startup
> java.lang.RuntimeException: Failed to list files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:547)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.filter(Directories.java:725)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.list(Directories.java:690) 
> ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:567)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:555)
>  ~[main/:na]
> at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:383) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.(Keyspace.java:320) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:130) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:107) 
> ~[main/:na]
> at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.(StatementRestrictions.java:139)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:864)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:811)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:799)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:505)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:242)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1246) 
> ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:875)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867)
>  ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) 
> ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) 
> ~[main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) 
> [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562)
>  [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:691) 
> [main/:na]
> Caused by: java.lang.RuntimeException: Failed to list directory files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985,
>  inconsistent disk state for transaction 
> [ma_txn_flush_58db56b0-f71d-11e5-bf68-03a01adb9f11.log in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:149)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:103)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$48/35984028.accept(Unknown
>  Source) ~[na:na]
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
> ~[na:1.8.0_45]
> at 
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 
> ~[na:1.8.0_45]
>   

[jira] [Updated] (CASSANDRA-11470) dtest failure in materialized_views_test.TestMaterializedViews.base_replica_repair_test

2016-03-31 Thread Philip Thompson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Philip Thompson updated CASSANDRA-11470:

Fix Version/s: 3.x

> dtest failure in 
> materialized_views_test.TestMaterializedViews.base_replica_repair_test
> ---
>
> Key: CASSANDRA-11470
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11470
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>  Labels: dtest
> Fix For: 3.x
>
> Attachments: node1.log, node2.log, node2_debug.log, node3.log, 
> node3_debug.log
>
>
> base_replica_repair_test has failed on trunk with the following exception in 
> the log of node2:
> {code}
> ERROR [main] 2016-03-31 08:48:46,949 CassandraDaemon.java:708 - Exception 
> encountered during startup
> java.lang.RuntimeException: Failed to list files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:547)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.filter(Directories.java:725)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.list(Directories.java:690) 
> ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:567)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:555)
>  ~[main/:na]
> at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:383) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.(Keyspace.java:320) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:130) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:107) 
> ~[main/:na]
> at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.(StatementRestrictions.java:139)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:864)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:811)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:799)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:505)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:242)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1246) 
> ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:875)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867)
>  ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) 
> ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) 
> ~[main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) 
> [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562)
>  [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:691) 
> [main/:na]
> Caused by: java.lang.RuntimeException: Failed to list directory files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985,
>  inconsistent disk state for transaction 
> [ma_txn_flush_58db56b0-f71d-11e5-bf68-03a01adb9f11.log in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:149)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:103)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$48/35984028.accept(Unknown
>  Source) ~[na:na]
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184) 
> ~[na:1.8.0_45]
> at 
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175) 
> ~[na:1.8

[jira] [Commented] (CASSANDRA-11465) dtest failure in cql_tracing_test.TestCqlTracing.tracing_unknown_impl_test

2016-03-31 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220227#comment-15220227
 ] 

Philip Thompson commented on CASSANDRA-11465:
-

Also seeing the failure in tracing_default_impl_test

http://cassci.datastax.com/job/trunk_novnode_dtest/337/testReport/cql_tracing_test/TestCqlTracing/tracing_default_impl_test/

> dtest failure in cql_tracing_test.TestCqlTracing.tracing_unknown_impl_test
> --
>
> Key: CASSANDRA-11465
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11465
> Project: Cassandra
>  Issue Type: Test
>Reporter: Philip Thompson
>Assignee: DS Test Eng
>  Labels: dtest
>
> Failing on the following assert, on trunk only: 
> {{self.assertEqual(len(errs[0]), 1)}}
> Is not failing consistently.
> example failure:
> http://cassci.datastax.com/job/trunk_dtest/1087/testReport/cql_tracing_test/TestCqlTracing/tracing_unknown_impl_test
> Failed on CassCI build trunk_dtest #1087



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11446) dtest failure in scrub_test.TestScrub.test_nodetool_scrub

2016-03-31 Thread Jim Witschey (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220241#comment-15220241
 ] 

Jim Witschey commented on CASSANDRA-11446:
--

This may just be noise that can be addressed by adding a {{.sleep}}, which I've 
done in this PR:

https://github.com/riptano/cassandra-dtest/pull/904

> dtest failure in scrub_test.TestScrub.test_nodetool_scrub
> -
>
> Key: CASSANDRA-11446
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11446
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>Assignee: Jim Witschey
>  Labels: dtest
>
> test_nodetool_scrub is failing on trunk with offheap memtables. The failure 
> is in this assertion:
> {{self.assertEqual(initial_sstables, scrubbed_sstables)}}
> Example failure:
> http://cassci.datastax.com/job/trunk_offheap_dtest/95/testReport/scrub_test/TestScrub/test_nodetool_scrub/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (CASSANDRA-11465) dtest failure in cql_tracing_test.TestCqlTracing.tracing_unknown_impl_test

2016-03-31 Thread Jim Witschey (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jim Witschey reassigned CASSANDRA-11465:


Assignee: Jim Witschey  (was: DS Test Eng)

> dtest failure in cql_tracing_test.TestCqlTracing.tracing_unknown_impl_test
> --
>
> Key: CASSANDRA-11465
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11465
> Project: Cassandra
>  Issue Type: Test
>Reporter: Philip Thompson
>Assignee: Jim Witschey
>  Labels: dtest
>
> Failing on the following assert, on trunk only: 
> {{self.assertEqual(len(errs[0]), 1)}}
> Is not failing consistently.
> example failure:
> http://cassci.datastax.com/job/trunk_dtest/1087/testReport/cql_tracing_test/TestCqlTracing/tracing_unknown_impl_test
> Failed on CassCI build trunk_dtest #1087



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11470) dtest failure in materialized_views_test.TestMaterializedViews.base_replica_repair_test

2016-03-31 Thread Philip Thompson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220248#comment-15220248
 ] 

Philip Thompson commented on CASSANDRA-11470:
-

This appears to have nothing to do with MV. I am now also seeing in in 
readrepair_test on trunk

http://cassci.datastax.com/job/trunk_offheap_dtest/100/testReport/

> dtest failure in 
> materialized_views_test.TestMaterializedViews.base_replica_repair_test
> ---
>
> Key: CASSANDRA-11470
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11470
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Philip Thompson
>  Labels: dtest
> Fix For: 3.x
>
> Attachments: node1.log, node2.log, node2_debug.log, node3.log, 
> node3_debug.log
>
>
> base_replica_repair_test has failed on trunk with the following exception in 
> the log of node2:
> {code}
> ERROR [main] 2016-03-31 08:48:46,949 CassandraDaemon.java:708 - Exception 
> encountered during startup
> java.lang.RuntimeException: Failed to list files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.list(LogAwareFileLister.java:53)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LifecycleTransaction.getFiles(LifecycleTransaction.java:547)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.filter(Directories.java:725)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.Directories$SSTableLister.list(Directories.java:690) 
> ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:567)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:555)
>  ~[main/:na]
> at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:383) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.(Keyspace.java:320) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:130) 
> ~[main/:na]
> at org.apache.cassandra.db.Keyspace.open(Keyspace.java:107) 
> ~[main/:na]
> at 
> org.apache.cassandra.cql3.restrictions.StatementRestrictions.(StatementRestrictions.java:139)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:864)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:811)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:799)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:505)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:242)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:286)
>  ~[main/:na]
> at 
> org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:294)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.query(SchemaKeyspace.java:1246) 
> ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchKeyspacesWithout(SchemaKeyspace.java:875)
>  ~[main/:na]
> at 
> org.apache.cassandra.schema.SchemaKeyspace.fetchNonSystemKeyspaces(SchemaKeyspace.java:867)
>  ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:134) 
> ~[main/:na]
> at org.apache.cassandra.config.Schema.loadFromDisk(Schema.java:124) 
> ~[main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:229) 
> [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:562)
>  [main/:na]
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:691) 
> [main/:na]
> Caused by: java.lang.RuntimeException: Failed to list directory files in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985,
>  inconsistent disk state for transaction 
> [ma_txn_flush_58db56b0-f71d-11e5-bf68-03a01adb9f11.log in 
> /mnt/tmp/dtest-du964e/test/node2/data0/system_schema/views-9786ac1cdd583201a7cdad556410c985]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:149)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister.classifyFiles(LogAwareFileLister.java:103)
>  ~[main/:na]
> at 
> org.apache.cassandra.db.lifecycle.LogAwareFileLister$$Lambda$48/35984028.accept(Unknown
>  Source) ~[na:na]
>  

[jira] [Updated] (CASSANDRA-10201) Row cache compression

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10201?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-10201:
-
Assignee: (was: Robert Stupp)

> Row cache compression
> -
>
> Key: CASSANDRA-10201
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10201
> Project: Cassandra
>  Issue Type: Sub-task
>Reporter: Robert Stupp
>Priority: Minor
> Fix For: 3.x
>
>
> Compressing the contents of the row cache _may_ buy some performance benefit 
> by increasing hit ratio due to allowing more data in the row cache.
> This would obviously only work if the data really allows good compression 
> ratio.
> (This is not a high priority ticket but feels useful enough to have it in the 
> backlog.)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10189) Unify read/writeUTF code paths

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-10189:
-
Assignee: (was: Robert Stupp)

> Unify read/writeUTF code paths
> --
>
> Key: CASSANDRA-10189
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10189
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Robert Stupp
>
> (Follow-up to CASSANDRA-9738 and CASSANDRA-8670)
> CASSANDRA-9738 requires {{writeUTF}} functionality that has been improved in 
> CASSANDRA-8670 plus {{readUTF}} functionality. But we need slightly different 
> signatures - one taking {{DataInput}}/{{DataOutput}} and one taking 
> {{ByteBuffer}}.
> We can combine both code paths and benefit from a shared, thread-local byte 
> buffer.
> Slightly different implementations are needed for array backed and direct BBs 
> (as we can directly access the backing array bypassing the direct BB's 
> boundary checks).
> (Part of this has already been done for CASSANDRA-9738 in 
> {{OHCKeyCache.SerializationUtil}})



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10081) Remove cache related code from CompactionManager

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10081?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-10081:
-
Assignee: (was: Robert Stupp)

> Remove cache related code from CompactionManager
> 
>
> Key: CASSANDRA-10081
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10081
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Robert Stupp
>
> Code to asynchronously save a cache is made from {{AutoSavingCache}} via 
> {{CompactionManager}} to {{AutoSavingCache.Writer}}.
> The only reason why this is how it is, is to keep track of cache-save 
> progress.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10039) Make UDF script sandbox more robust against Nashorn internal changes

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10039?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-10039:
-
Assignee: (was: Robert Stupp)

> Make UDF script sandbox more robust against Nashorn internal changes
> 
>
> Key: CASSANDRA-10039
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10039
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Robert Stupp
> Fix For: 3.x
>
>
> {{UFPureScriptTest}} doesn't work against Java 1.8.0_25 but with recent 
> versions (1.8.0_51 for example).
> Need to find a way to make this more robust against future Nashorn changes.
> /cc [~aweisberg]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-9756) Cleanup UDA code after 6717

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9756?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-9756:

Assignee: (was: Robert Stupp)

> Cleanup UDA code after 6717
> ---
>
> Key: CASSANDRA-9756
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9756
> Project: Cassandra
>  Issue Type: Task
>Reporter: Robert Stupp
>Priority: Minor
> Fix For: 3.x
>
>
> After CASSANDRA-6717 has landed, there should be some cleanup of UDF/UDA code 
> wrt load from schema tables and handling broken functions.
> /cc [~iamaleksey] 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-7597) Remove static initializer in DatabaseDescriptor

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-7597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-7597:

Assignee: (was: Robert Stupp)

> Remove static initializer in DatabaseDescriptor
> ---
>
> Key: CASSANDRA-7597
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7597
> Project: Cassandra
>  Issue Type: Improvement
> Environment: Cassandra 2.0.9 (earlier version should be affected as 
> well)
>Reporter: Pavel Sakun
> Attachments: 7597.txt
>
>
> As discussed below, it's difficult to properly react on invalid configuration 
> values in a client tool that uses cassandra code (here: an sstable loader).
> Reason is that the static initializer in DatabaseDescriptor calls System.exit 
> in case of configuration failures.
> Recommend to implement some "loadAndApplyConfig" method on DatabaseDescriptor 
> and remove the static initializer and let the calling code react accordingly 
> (print error, exit VM).
> All direct and indirect uses of DatabaseDescriptor must be catched to solve 
> this ticket - so this is not a 2.1 ticket.
> --
> Old Description:
> We're using SSTableSimpleUnsortedWriter API to generate SSTable to be loaded 
> into cassandra. In case of any issue with config DatabaseDescriptor calls 
> System.exit() which is apparently not the thing you expect while using API.
> Test case is simple:
> System.setProperty( "cassandra.config", "" );
> new YamlConfigurationLoader().loadConfig();
> Thread.sleep( 5000 );
> System.out.println("We're still alive"); // this will never be called



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-8929) Workload sampling

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-8929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-8929:

Assignee: (was: Robert Stupp)

> Workload sampling
> -
>
> Key: CASSANDRA-8929
> URL: https://issues.apache.org/jira/browse/CASSANDRA-8929
> Project: Cassandra
>  Issue Type: New Feature
>  Components: Tools
>Reporter: Jonathan Ellis
>
> Workload *recording* looks to be unworkable (CASSANDRA-6572).  We could build 
> something almost as useful by sampling the requests sent to a node and 
> building a synthetic workload with the same characteristics using the same 
> (or anonymized) schema.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-9200) Sequences

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9200?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-9200:

Assignee: (was: Robert Stupp)

> Sequences
> -
>
> Key: CASSANDRA-9200
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9200
> Project: Cassandra
>  Issue Type: New Feature
>Reporter: Jonathan Ellis
> Fix For: 3.x
>
>
> UUIDs are usually the right choice for surrogate keys, but sometimes 
> application constraints dictate an increasing numeric value.
> We could do this by using LWT to reserve "blocks" of the sequence for each 
> member of the cluster, which would eliminate paxos contention at the cost of 
> not being strictly increasing.
> PostgreSQL syntax: 
> http://www.postgresql.org/docs/9.4/static/sql-createsequence.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-9626) Make C* work in all locales

2016-03-31 Thread Robert Stupp (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-9626?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Stupp updated CASSANDRA-9626:

Assignee: (was: Robert Stupp)

> Make C* work in all locales
> ---
>
> Key: CASSANDRA-9626
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9626
> Project: Cassandra
>  Issue Type: Improvement
>Reporter: Robert Stupp
>Priority: Minor
> Attachments: 9626.txt
>
>
> Default locale and default charset has immediate effect on how strings are 
> encoded and handles - e.g. via {{String.toLowerCase()}} or {{new 
> String(byte[])}}.
> Problems with different default locales + charsets don't become obvious for 
> US and most European regional settings. But some regional OS settings will 
> cause severe errors. Example: {{"BILLY".toLowerCase()}} returns {{bılly}} 
> with Locale tr_TR (take a look at the second letter - it's an i without the 
> dot).
> (ref: 
> http://blog.thetaphi.de/2012/07/default-locales-default-charsets-and.html)
> It's not a problem I'm currently facing, but it could become a problem for 
> some users. A quick fix could be to set default locale and charset in the 
> start scripts - maybe that's all we need.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11471) Add SASL mechanism negotiation to the native protocol

2016-03-31 Thread Sam Tunnicliffe (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220267#comment-15220267
 ] 

Sam Tunnicliffe commented on CASSANDRA-11471:
-

See CASSANDRA-10956 for some initial discussion.

> Add SASL mechanism negotiation to the native protocol
> -
>
> Key: CASSANDRA-11471
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11471
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL
>Reporter: Sam Tunnicliffe
>  Labels: client-impacting
>
> Introducing an additional message exchange into the authentication sequence 
> would allow us to support multiple authentication schemes and [negotiation of 
> SASL mechanisms|https://tools.ietf.org/html/rfc4422#section-3.2]. 
> The current {{AUTHENTICATE}} message sent from Client to Server includes the 
> java classname of the configured {{IAuthenticator}}. This could be superceded 
> by a new message which lists the SASL mechanisms supported by the server. The 
> client would then respond with a new message which indicates it's choice of 
> mechanism.  This would allow the server to support multiple mechanisms, for 
> example enabling both {{PLAIN}} for username/password authentication and 
> {{EXTERNAL}} for a mechanism for extracting credentials from SSL 
> certificates\* (see the example in 
> [RFC-4422|https://tools.ietf.org/html/rfc4422#appendix-A]). Furthermore, the 
> server could tailor the list of supported mechanisms on a per-connection 
> basis, e.g. only offering certificate based auth to encrypted clients. 
> The client's response should include the selected mechanism and any initial 
> response data. This is mechanism-specific; the {{PLAIN}} mechanism consists 
> of a single round in which the client sends encoded credentials as the 
> initial response data and the server response indicates either success or 
> failure with no futher challenges required.
> From a protocol perspective, after the mechanism negotiation the exchange 
> would continue as in protocol v4, with one or more rounds of 
> {{AUTH_CHALLENGE}} and {{AUTH_RESPONSE}} messages, terminated by an 
> {{AUTH_SUCCESS}} sent from Client to Server upon successful authentication or 
> an {{ERROR}} on auth failure. 
> XMPP performs mechanism negotiation in this way, 
> [RFC-3920|http://tools.ietf.org/html/rfc3920#section-6] includes a good 
> overview.
> \* Note: this would require some a priori agreement between client and server 
> over the implementation of the {{EXTERNAL}} mechanism.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (CASSANDRA-11471) Add SASL mechanism negotiation to the native protocol

2016-03-31 Thread Sam Tunnicliffe (JIRA)
Sam Tunnicliffe created CASSANDRA-11471:
---

 Summary: Add SASL mechanism negotiation to the native protocol
 Key: CASSANDRA-11471
 URL: https://issues.apache.org/jira/browse/CASSANDRA-11471
 Project: Cassandra
  Issue Type: Improvement
  Components: CQL
Reporter: Sam Tunnicliffe


Introducing an additional message exchange into the authentication sequence 
would allow us to support multiple authentication schemes and [negotiation of 
SASL mechanisms|https://tools.ietf.org/html/rfc4422#section-3.2]. 

The current {{AUTHENTICATE}} message sent from Client to Server includes the 
java classname of the configured {{IAuthenticator}}. This could be superceded 
by a new message which lists the SASL mechanisms supported by the server. The 
client would then respond with a new message which indicates it's choice of 
mechanism.  This would allow the server to support multiple mechanisms, for 
example enabling both {{PLAIN}} for username/password authentication and 
{{EXTERNAL}} for a mechanism for extracting credentials from SSL certificates\* 
(see the example in [RFC-4422|https://tools.ietf.org/html/rfc4422#appendix-A]). 
Furthermore, the server could tailor the list of supported mechanisms on a 
per-connection basis, e.g. only offering certificate based auth to encrypted 
clients. 

The client's response should include the selected mechanism and any initial 
response data. This is mechanism-specific; the {{PLAIN}} mechanism consists of 
a single round in which the client sends encoded credentials as the initial 
response data and the server response indicates either success or failure with 
no futher challenges required.

>From a protocol perspective, after the mechanism negotiation the exchange 
>would continue as in protocol v4, with one or more rounds of 
>{{AUTH_CHALLENGE}} and {{AUTH_RESPONSE}} messages, terminated by an 
>{{AUTH_SUCCESS}} sent from Client to Server upon successful authentication or 
>an {{ERROR}} on auth failure. 

XMPP performs mechanism negotiation in this way, 
[RFC-3920|http://tools.ietf.org/html/rfc3920#section-6] includes a good 
overview.

\* Note: this would require some a priori agreement between client and server 
over the implementation of the {{EXTERNAL}} mechanism.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-10956) Enable authentication of native protocol users via client certificates

2016-03-31 Thread Sam Tunnicliffe (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-10956?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-10956:

Resolution: Won't Fix
Status: Resolved  (was: Patch Available)

I've opened CASSANDRA-11471 to add SASL mechanism negotiation to the native 
protocol. As per the comments, we can re-open this later should we need to.

> Enable authentication of native protocol users via client certificates
> --
>
> Key: CASSANDRA-10956
> URL: https://issues.apache.org/jira/browse/CASSANDRA-10956
> Project: Cassandra
>  Issue Type: New Feature
>Reporter: Samuel Klock
>Assignee: Samuel Klock
> Attachments: 10956.patch
>
>
> Currently, the native protocol only supports user authentication via SASL.  
> While this is adequate for many use cases, it may be superfluous in scenarios 
> where clients are required to present an SSL certificate to connect to the 
> server.  If the certificate presented by a client is sufficient by itself to 
> specify a user, then an additional (series of) authentication step(s) via 
> SASL merely add overhead.  Worse, for uses wherein it's desirable to obtain 
> the identity from the client's certificate, it's necessary to implement a 
> custom SASL mechanism to do so, which increases the effort required to 
> maintain both client and server and which also duplicates functionality 
> already provided via SSL/TLS.
> Cassandra should provide a means of using certificates for user 
> authentication in the native protocol without any effort above configuring 
> SSL on the client and server.  Here's a possible strategy:
> * Add a new authenticator interface that returns {{AuthenticatedUser}} 
> objects based on the certificate chain presented by the client.
> * If this interface is in use, the user is authenticated immediately after 
> the server receives the {{STARTUP}} message.  It then responds with a 
> {{READY}} message.
> * Otherwise, the existing flow of control is used (i.e., if the authenticator 
> requires authentication, then an {{AUTHENTICATE}} message is sent to the 
> client).
> One advantage of this strategy is that it is backwards-compatible with 
> existing schemes; current users of SASL/{{IAuthenticator}} are not impacted.  
> Moreover, it can function as a drop-in replacement for SASL schemes without 
> requiring code changes (or even config changes) on the client side.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11471) Add SASL mechanism negotiation to the native protocol

2016-03-31 Thread Sam Tunnicliffe (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sam Tunnicliffe updated CASSANDRA-11471:

Description: 
Introducing an additional message exchange into the authentication sequence 
would allow us to support multiple authentication schemes and [negotiation of 
SASL mechanisms|https://tools.ietf.org/html/rfc4422#section-3.2]. 

The current {{AUTHENTICATE}} message sent from Client to Server includes the 
java classname of the configured {{IAuthenticator}}. This could be superceded 
by a new message which lists the SASL mechanisms supported by the server. The 
client would then respond with a new message which indicates it's choice of 
mechanism.  This would allow the server to support multiple mechanisms, for 
example enabling both {{PLAIN}} for username/password authentication and 
{{EXTERNAL}} for a mechanism for extracting credentials from SSL certificates\* 
(see the example in [RFC-4422|https://tools.ietf.org/html/rfc4422#appendix-A]). 
Furthermore, the server could tailor the list of supported mechanisms on a 
per-connection basis, e.g. only offering certificate based auth to encrypted 
clients. 

The client's response should include the selected mechanism and any initial 
response data. This is mechanism-specific; the {{PLAIN}} mechanism consists of 
a single round in which the client sends encoded credentials as the initial 
response data and the server response indicates either success or failure with 
no futher challenges required.

>From a protocol perspective, after the mechanism negotiation the exchange 
>would continue as in protocol v4, with one or more rounds of 
>{{AUTH_CHALLENGE}} and {{AUTH_RESPONSE}} messages, terminated by an 
>{{AUTH_SUCCESS}} sent from Server to Client upon successful authentication or 
>an {{ERROR}} on auth failure. 

XMPP performs mechanism negotiation in this way, 
[RFC-3920|http://tools.ietf.org/html/rfc3920#section-6] includes a good 
overview.

\* Note: this would require some a priori agreement between client and server 
over the implementation of the {{EXTERNAL}} mechanism.



  was:
Introducing an additional message exchange into the authentication sequence 
would allow us to support multiple authentication schemes and [negotiation of 
SASL mechanisms|https://tools.ietf.org/html/rfc4422#section-3.2]. 

The current {{AUTHENTICATE}} message sent from Client to Server includes the 
java classname of the configured {{IAuthenticator}}. This could be superceded 
by a new message which lists the SASL mechanisms supported by the server. The 
client would then respond with a new message which indicates it's choice of 
mechanism.  This would allow the server to support multiple mechanisms, for 
example enabling both {{PLAIN}} for username/password authentication and 
{{EXTERNAL}} for a mechanism for extracting credentials from SSL certificates\* 
(see the example in [RFC-4422|https://tools.ietf.org/html/rfc4422#appendix-A]). 
Furthermore, the server could tailor the list of supported mechanisms on a 
per-connection basis, e.g. only offering certificate based auth to encrypted 
clients. 

The client's response should include the selected mechanism and any initial 
response data. This is mechanism-specific; the {{PLAIN}} mechanism consists of 
a single round in which the client sends encoded credentials as the initial 
response data and the server response indicates either success or failure with 
no futher challenges required.

>From a protocol perspective, after the mechanism negotiation the exchange 
>would continue as in protocol v4, with one or more rounds of 
>{{AUTH_CHALLENGE}} and {{AUTH_RESPONSE}} messages, terminated by an 
>{{AUTH_SUCCESS}} sent from Client to Server upon successful authentication or 
>an {{ERROR}} on auth failure. 

XMPP performs mechanism negotiation in this way, 
[RFC-3920|http://tools.ietf.org/html/rfc3920#section-6] includes a good 
overview.

\* Note: this would require some a priori agreement between client and server 
over the implementation of the {{EXTERNAL}} mechanism.




> Add SASL mechanism negotiation to the native protocol
> -
>
> Key: CASSANDRA-11471
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11471
> Project: Cassandra
>  Issue Type: Improvement
>  Components: CQL
>Reporter: Sam Tunnicliffe
>  Labels: client-impacting
>
> Introducing an additional message exchange into the authentication sequence 
> would allow us to support multiple authentication schemes and [negotiation of 
> SASL mechanisms|https://tools.ietf.org/html/rfc4422#section-3.2]. 
> The current {{AUTHENTICATE}} message sent from Client to Server includes the 
> java classname of the configured {{IAuthenticator}}. This could be superceded 
> by a new message which lists the SASL mechanisms sup

[jira] [Updated] (CASSANDRA-11402) Alignment wrong in tpstats output for PerDiskMemtableFlushWriter

2016-03-31 Thread Ryan Magnusson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Magnusson updated CASSANDRA-11402:
---
Attachment: 11402-trunk.txt

> Alignment wrong in tpstats output for PerDiskMemtableFlushWriter
> 
>
> Key: CASSANDRA-11402
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11402
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Joel Knighton
>Priority: Trivial
>  Labels: lhf
> Attachments: 11402-trunk.txt
>
>
> With the accompanying designation of which memtableflushwriter it is, this 
> threadpool name is too long for the hardcoded padding in tpstats output.
> We should dynamically calculate padding so that we don't need to check this 
> every time we add a threadpool.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-9935) Repair fails with RuntimeException

2016-03-31 Thread Ruoran Wang (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9935?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220322#comment-15220322
 ] 

Ruoran Wang commented on CASSANDRA-9935:


That's not an ideal fix. I noticed in LevelCompactionStrategy getScanners, it 
uses SSTableScanner for L0. However, those sstables have the issue are at L1, I 
need to figure out why that happens.

> Repair fails with RuntimeException
> --
>
> Key: CASSANDRA-9935
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9935
> Project: Cassandra
>  Issue Type: Bug
> Environment: C* 2.1.8, Debian Wheezy
>Reporter: mlowicki
>Assignee: Yuki Morishita
> Fix For: 2.1.x
>
> Attachments: db1.sync.lati.osa.cassandra.log, 
> db5.sync.lati.osa.cassandra.log, system.log.10.210.3.117, 
> system.log.10.210.3.221, system.log.10.210.3.230
>
>
> We had problems with slow repair in 2.1.7 (CASSANDRA-9702) but after upgrade 
> to 2.1.8 it started to work faster but now it fails with:
> {code}
> ...
> [2015-07-29 20:44:03,956] Repair session 23a811b0-3632-11e5-a93e-4963524a8bde 
> for range (-5474076923322749342,-5468600594078911162] finished
> [2015-07-29 20:44:03,957] Repair session 336f8740-3632-11e5-a93e-4963524a8bde 
> for range (-8631877858109464676,-8624040066373718932] finished
> [2015-07-29 20:44:03,957] Repair session 4ccd8430-3632-11e5-a93e-4963524a8bde 
> for range (-5372806541854279315,-5369354119480076785] finished
> [2015-07-29 20:44:03,957] Repair session 59f129f0-3632-11e5-a93e-4963524a8bde 
> for range (8166489034383821955,8168408930184216281] finished
> [2015-07-29 20:44:03,957] Repair session 6ae7a9a0-3632-11e5-a93e-4963524a8bde 
> for range (6084602890817326921,6088328703025510057] finished
> [2015-07-29 20:44:03,957] Repair session 8938e4a0-3632-11e5-a93e-4963524a8bde 
> for range (-781874602493000830,-781745173070807746] finished
> [2015-07-29 20:44:03,957] Repair command #4 finished
> error: nodetool failed, check server logs
> -- StackTrace --
> java.lang.RuntimeException: nodetool failed, check server logs
> at 
> org.apache.cassandra.tools.NodeTool$NodeToolCmd.run(NodeTool.java:290)
> at org.apache.cassandra.tools.NodeTool.main(NodeTool.java:202)
> {code}
> After running:
> {code}
> nodetool repair --partitioner-range --parallel --in-local-dc sync
> {code}
> Last records in logs regarding repair are:
> {code}
> INFO  [Thread-173887] 2015-07-29 20:44:03,956 StorageService.java:2952 - 
> Repair session 09ff9e40-3632-11e5-a93e-4963524a8bde for range 
> (-7695808664784761779,-7693529816291585568] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,956 StorageService.java:2952 - 
> Repair session 17d8d860-3632-11e5-a93e-4963524a8bde for range 
> (806371695398849,8065203836608925992] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,956 StorageService.java:2952 - 
> Repair session 23a811b0-3632-11e5-a93e-4963524a8bde for range 
> (-5474076923322749342,-5468600594078911162] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,956 StorageService.java:2952 - 
> Repair session 336f8740-3632-11e5-a93e-4963524a8bde for range 
> (-8631877858109464676,-8624040066373718932] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,957 StorageService.java:2952 - 
> Repair session 4ccd8430-3632-11e5-a93e-4963524a8bde for range 
> (-5372806541854279315,-5369354119480076785] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,957 StorageService.java:2952 - 
> Repair session 59f129f0-3632-11e5-a93e-4963524a8bde for range 
> (8166489034383821955,8168408930184216281] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,957 StorageService.java:2952 - 
> Repair session 6ae7a9a0-3632-11e5-a93e-4963524a8bde for range 
> (6084602890817326921,6088328703025510057] finished
> INFO  [Thread-173887] 2015-07-29 20:44:03,957 StorageService.java:2952 - 
> Repair session 8938e4a0-3632-11e5-a93e-4963524a8bde for range 
> (-781874602493000830,-781745173070807746] finished
> {code}
> but a bit above I see (at least two times in attached log):
> {code}
> ERROR [Thread-173887] 2015-07-29 20:44:03,853 StorageService.java:2959 - 
> Repair session 1b07ea50-3608-11e5-a93e-4963524a8bde for range 
> (5765414319217852786,5781018794516851576] failed with error 
> org.apache.cassandra.exceptions.RepairException: [repair 
> #1b07ea50-3608-11e5-a93e-4963524a8bde on sync/entity_by_id2, 
> (5765414319217852786,5781018794516851576]] Validation failed in /10.195.15.162
> java.util.concurrent.ExecutionException: java.lang.RuntimeException: 
> org.apache.cassandra.exceptions.RepairException: [repair 
> #1b07ea50-3608-11e5-a93e-4963524a8bde on sync/entity_by_id2, 
> (5765414319217852786,5781018794516851576]] Validation failed in /10.195.15.162
> at java.util.concurrent.FutureTask.report(FutureTask.java:122) 
> [na:1.7.0_80]
> at java.

[jira] [Updated] (CASSANDRA-11402) Alignment wrong in tpstats output for PerDiskMemtableFlushWriter

2016-03-31 Thread Ryan Magnusson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Magnusson updated CASSANDRA-11402:
---
Attachment: (was: 11402-trunk.txt)

> Alignment wrong in tpstats output for PerDiskMemtableFlushWriter
> 
>
> Key: CASSANDRA-11402
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11402
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Joel Knighton
>Priority: Trivial
>  Labels: lhf
>
> With the accompanying designation of which memtableflushwriter it is, this 
> threadpool name is too long for the hardcoded padding in tpstats output.
> We should dynamically calculate padding so that we don't need to check this 
> every time we add a threadpool.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (CASSANDRA-11402) Alignment wrong in tpstats output for PerDiskMemtableFlushWriter

2016-03-31 Thread Ryan Magnusson (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-11402?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan Magnusson updated CASSANDRA-11402:
---
Attachment: 11402-trunk.txt

> Alignment wrong in tpstats output for PerDiskMemtableFlushWriter
> 
>
> Key: CASSANDRA-11402
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11402
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Joel Knighton
>Priority: Trivial
>  Labels: lhf
> Attachments: 11402-trunk.txt
>
>
> With the accompanying designation of which memtableflushwriter it is, this 
> threadpool name is too long for the hardcoded padding in tpstats output.
> We should dynamically calculate padding so that we don't need to check this 
> every time we add a threadpool.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (CASSANDRA-11402) Alignment wrong in tpstats output for PerDiskMemtableFlushWriter

2016-03-31 Thread Ryan Magnusson (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-11402?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15220338#comment-15220338
 ] 

Ryan Magnusson commented on CASSANDRA-11402:


Please let me know if this looks correct. 
I've also uploaded my changes to github @ 
https://github.com/RyanMagnusson/cassandra/tree/11402-3.0

> Alignment wrong in tpstats output for PerDiskMemtableFlushWriter
> 
>
> Key: CASSANDRA-11402
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11402
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Joel Knighton
>Priority: Trivial
>  Labels: lhf
> Attachments: 11402-trunk.txt
>
>
> With the accompanying designation of which memtableflushwriter it is, this 
> threadpool name is too long for the hardcoded padding in tpstats output.
> We should dynamically calculate padding so that we don't need to check this 
> every time we add a threadpool.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   >