[jira] [Commented] (CASSANDRA-10085) Allow BATCH with conditions to span multiple tables with same partition key

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698615#comment-14698615
 ] 

Sylvain Lebresne commented on CASSANDRA-10085:
--

I will simply start by noting that doing this is not trivial considering the 
current implementation since everything Paxos related is currently grouped by 
cfId. And while changing that is not too complex in itself, dealing with 
backward compatibility is (as always) more painful. And of course, doing so 
would also potentially create contention between tables, which would be desired 
in your case but might be detrimental in other cases, so we'd have to debate 
whether that's acceptable (of if we make it an option, which adds complexity to 
the system).

I'll also note that:
# conditionals are currently pretty costly in C* and should be used sparingly.
# your justification for this sounds like you're trying to translate as 
directly as possible what do in SQL DBs into C*. That's rarely the right 
approach.
That said, JIRA is not the right place to discuss modeling options so I could 
maybe encourage you to start by sending a mail on the mailing list asking 
others how they usually deal with the kind of issue you're trying to deal with. 
You might get satisfying answers.

But to manage expectation, given the technical difficulties above and the fact 
that we're not as convinced as you are that this is crucial (if we were, we 
would have designed it to allow it in the first place), I would expect this to 
be dealt with in the short term.

Which is not to say that this wouldn't be a nice to have all other things 
considered.

 Allow BATCH with conditions to span multiple tables with same partition key
 ---

 Key: CASSANDRA-10085
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10085
 Project: Cassandra
  Issue Type: Improvement
Reporter: Dennis Roppelt
  Labels: batch, conditional-statement, partitioning

 h4. Use case:
 I want to use batch to keep data between tables synchronized with help of 
 conditionals. In particular, I want to have a ONE-to-ONE relationship in my 
 data model. I dont want to have an unintended upsert while trying to maintain 
 a consistent one-to-one relationship (write requests from other clients that 
 try to create a different relationship with one of the keys I inteded to 
 use), which is why I would like the IF NOT EXISTS when inserting data into 
 multiple tables in a batch.
 But when trying to insert data in a batch-block with an IF NOT EXISTS, I get 
 the following response (reproduceable example further below):
 {code}
 cqlsh:testkeyspace 
 BEGIN BATCH 
 INSERT INTO key1_to_key2 (partKey, key1, key2) values (1,2,3) IF NOT EXISTS; 
 INSERT INTO key2_to_key1 (partKey, key1, key2) values (1,2,3) IF NOT EXISTS; 
 APPLY BATCH;
 Bad Request: Batch with conditions cannot span multiple tables{code}
 The tables have a primary key on (partKey, key1) and (partKey, key2). Which 
 means that partKey in both cases is their partition key. Which in the example 
 also is the same value.
 h4. Why I want to use a BATCH-statement that way:
 In traditional databases, to design a one-to-one relationship, I would create 
 one table with two keys, both with a unique constraint:
 {code:sql}
 CREATE TABLE  `myOneToOneTable` (
   `ID` int NOT NULL,
   `KEY_ONE` int NOT NULL,
   `KEY_TWO` int NOT NULL,
 // some other fields
   PRIMARY KEY (`ID`),
   UNIQUE KEY `KEY_ONE`,
   UNIQUE KEY `KEY_TWO`
 );
 {code}
 (simplified example taken from an [one-to-one example for 
 mysql|http://www.mkyong.com/mysql/how-to-define-one-to-one-relationship-in-mysql/])
 As far as I know, unique constraints are not supported in Cassandra, so 
 another way around it would be to maintain the relationshipt between two 
 tables, each sharing the same partition key. For which I would like Cassandra 
 to make sure that when I insert data, either both are inserted at the same 
 time or none (to prevent other writing client to insert a different 
 one-to-one relationship than me). 
 [According to the documentation, this is what BATCH-Statements are used 
 for|http://docs.datastax.com/en/cql/3.3/cql/cql_using/useBatch.html]
 {quote}
 Instead, using batches to synchronize data to tables is a legitimate 
 operation. 
 {quote}
 I expected it to be able to do it, but as seen above, I cannot enforce INSERT 
 IF NOT EXISTS over multiple tables.
 I do understand the background as to *why* there is a limitation coded that 
 way, so that not too many nodes have to take part in processing of the batch. 
 However, if the operations use
 # primary keys in their statements for each table
 # all primary keys contain the same value, thus resulting in the same hash 
 for partioning
 # tables belong to the same keyspace
 the batch 

[jira] [Assigned] (CASSANDRA-9312) Provide a way to retrieve the write time of a CQL row

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne reassigned CASSANDRA-9312:
---

Assignee: Sylvain Lebresne

 Provide a way to retrieve the write time of a CQL row
 -

 Key: CASSANDRA-9312
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9312
 Project: Cassandra
  Issue Type: New Feature
  Components: API
Reporter: Nicolas Favre-Felix
Assignee: Sylvain Lebresne
 Fix For: 2.2.x


 There is currently no way to retrieve the writetime of a CQL row. This is 
 an issue for tables in which all dimensions are part of the primary key.
 Since Cassandra already stores a cell for the CQL row, it would make sense to 
 provide a way to read its timestamp. This feature would be consistent with 
 the concept of a row as an entity containing a number of optional columns, 
 but able to exist on its own.



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


[1/3] cassandra git commit: Fix typo in CREATE TABLE error message

2015-08-16 Thread slebresne
Repository: cassandra
Updated Branches:
  refs/heads/trunk 793bf45fb - c41412a7f


Fix typo in CREATE TABLE error message

patch by sehrope; reviewed by slebresne for CASSANDRA-10087


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

Branch: refs/heads/trunk
Commit: 0f287c46fc87032c82bd53be11a13f2780b35593
Parents: c645b11
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:15:20 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:15:20 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f287c46/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
index b3591a2..7810a8a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
@@ -221,7 +221,7 @@ public class CreateTableStatement extends 
SchemaAlteringStatement
 {
 // Column family name
 if (!columnFamily().matches(\\w+))
-throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character only: [0-9A-Za-z]+), 
columnFamily()));
+throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character or underscore only: 
[a-zA-Z_0-9]+), columnFamily()));
 if (columnFamily().length()  Schema.NAME_LENGTH)
 throw new InvalidRequestException(String.format(Table names 
shouldn't be more than %s characters long (got \%s\), Schema.NAME_LENGTH, 
columnFamily()));
 



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

2015-08-16 Thread slebresne
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/fb28cb7b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb28cb7b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb28cb7b

Branch: refs/heads/cassandra-3.0
Commit: fb28cb7b6843adab276f509dc9bdc96713381261
Parents: da8d48a 0f287c4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:16:55 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:16:55 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb28cb7b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
--



cassandra git commit: Fix typo in CREATE TABLE error message

2015-08-16 Thread slebresne
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.2 c645b1193 - 0f287c46f


Fix typo in CREATE TABLE error message

patch by sehrope; reviewed by slebresne for CASSANDRA-10087


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

Branch: refs/heads/cassandra-2.2
Commit: 0f287c46fc87032c82bd53be11a13f2780b35593
Parents: c645b11
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:15:20 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:15:20 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f287c46/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
index b3591a2..7810a8a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
@@ -221,7 +221,7 @@ public class CreateTableStatement extends 
SchemaAlteringStatement
 {
 // Column family name
 if (!columnFamily().matches(\\w+))
-throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character only: [0-9A-Za-z]+), 
columnFamily()));
+throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character or underscore only: 
[a-zA-Z_0-9]+), columnFamily()));
 if (columnFamily().length()  Schema.NAME_LENGTH)
 throw new InvalidRequestException(String.format(Table names 
shouldn't be more than %s characters long (got \%s\), Schema.NAME_LENGTH, 
columnFamily()));
 



[2/3] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0

2015-08-16 Thread slebresne
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/fb28cb7b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb28cb7b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb28cb7b

Branch: refs/heads/trunk
Commit: fb28cb7b6843adab276f509dc9bdc96713381261
Parents: da8d48a 0f287c4
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:16:55 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:16:55 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb28cb7b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
--



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

2015-08-16 Thread slebresne
Merge branch 'cassandra-3.0' into trunk


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

Branch: refs/heads/trunk
Commit: c41412a7f9883cd4c3211d1b688dafcc57120777
Parents: 793bf45 fb28cb7
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:17:16 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:17:16 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--




[1/2] cassandra git commit: Fix typo in CREATE TABLE error message

2015-08-16 Thread slebresne
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 da8d48a79 - fb28cb7b6


Fix typo in CREATE TABLE error message

patch by sehrope; reviewed by slebresne for CASSANDRA-10087


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

Branch: refs/heads/cassandra-3.0
Commit: 0f287c46fc87032c82bd53be11a13f2780b35593
Parents: c645b11
Author: Sylvain Lebresne sylv...@datastax.com
Authored: Sun Aug 16 12:15:20 2015 +0200
Committer: Sylvain Lebresne sylv...@datastax.com
Committed: Sun Aug 16 12:15:20 2015 +0200

--
 .../org/apache/cassandra/cql3/statements/CreateTableStatement.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f287c46/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
--
diff --git 
a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java 
b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
index b3591a2..7810a8a 100644
--- a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java
@@ -221,7 +221,7 @@ public class CreateTableStatement extends 
SchemaAlteringStatement
 {
 // Column family name
 if (!columnFamily().matches(\\w+))
-throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character only: [0-9A-Za-z]+), 
columnFamily()));
+throw new InvalidRequestException(String.format(\%s\ is not 
a valid table name (must be alphanumeric character or underscore only: 
[a-zA-Z_0-9]+), columnFamily()));
 if (columnFamily().length()  Schema.NAME_LENGTH)
 throw new InvalidRequestException(String.format(Table names 
shouldn't be more than %s characters long (got \%s\), Schema.NAME_LENGTH, 
columnFamily()));
 



[jira] [Comment Edited] (CASSANDRA-10085) Allow BATCH with conditions to span multiple tables with same partition key

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698615#comment-14698615
 ] 

Sylvain Lebresne edited comment on CASSANDRA-10085 at 8/16/15 12:31 PM:


I will simply start by noting that doing this is not trivial considering the 
current implementation since everything Paxos related is currently grouped by 
cfId. And while changing that is not too complex in itself, dealing with 
backward compatibility is (as always) more painful. And of course, doing so 
would also potentially create contention between tables, which would be desired 
in your case but might be detrimental in other cases, so we'd have to debate 
whether that's acceptable (of if we make it an option, which adds complexity to 
the system).

I'll also note that:
# conditionals are currently pretty costly in C* and should be used sparingly.
# your justification for this sounds like you're trying to translate as 
directly as possible what do in SQL DBs into C*. That's rarely the right 
approach.
That said, JIRA is not the right place to discuss modeling options so I could 
maybe encourage you to start by sending a mail on the mailing list asking 
others how they usually deal with the kind of issue you're trying to deal with. 
You might get satisfying answers.

But to manage expectation, given the technical difficulties above and the fact 
that we're not as convinced as you are that this is crucial (if we were, we 
would have designed it to allow it in the first place), I would not expect this 
to be dealt with in the short term.

Which is not to say that this wouldn't be a nice to have all other things 
considered.


was (Author: slebresne):
I will simply start by noting that doing this is not trivial considering the 
current implementation since everything Paxos related is currently grouped by 
cfId. And while changing that is not too complex in itself, dealing with 
backward compatibility is (as always) more painful. And of course, doing so 
would also potentially create contention between tables, which would be desired 
in your case but might be detrimental in other cases, so we'd have to debate 
whether that's acceptable (of if we make it an option, which adds complexity to 
the system).

I'll also note that:
# conditionals are currently pretty costly in C* and should be used sparingly.
# your justification for this sounds like you're trying to translate as 
directly as possible what do in SQL DBs into C*. That's rarely the right 
approach.
That said, JIRA is not the right place to discuss modeling options so I could 
maybe encourage you to start by sending a mail on the mailing list asking 
others how they usually deal with the kind of issue you're trying to deal with. 
You might get satisfying answers.

But to manage expectation, given the technical difficulties above and the fact 
that we're not as convinced as you are that this is crucial (if we were, we 
would have designed it to allow it in the first place), I would expect this to 
be dealt with in the short term.

Which is not to say that this wouldn't be a nice to have all other things 
considered.

 Allow BATCH with conditions to span multiple tables with same partition key
 ---

 Key: CASSANDRA-10085
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10085
 Project: Cassandra
  Issue Type: Improvement
Reporter: Dennis Roppelt
  Labels: batch, conditional-statement, partitioning

 h4. Use case:
 I want to use batch to keep data between tables synchronized with help of 
 conditionals. In particular, I want to have a ONE-to-ONE relationship in my 
 data model. I dont want to have an unintended upsert while trying to maintain 
 a consistent one-to-one relationship (write requests from other clients that 
 try to create a different relationship with one of the keys I inteded to 
 use), which is why I would like the IF NOT EXISTS when inserting data into 
 multiple tables in a batch.
 But when trying to insert data in a batch-block with an IF NOT EXISTS, I get 
 the following response (reproduceable example further below):
 {code}
 cqlsh:testkeyspace 
 BEGIN BATCH 
 INSERT INTO key1_to_key2 (partKey, key1, key2) values (1,2,3) IF NOT EXISTS; 
 INSERT INTO key2_to_key1 (partKey, key1, key2) values (1,2,3) IF NOT EXISTS; 
 APPLY BATCH;
 Bad Request: Batch with conditions cannot span multiple tables{code}
 The tables have a primary key on (partKey, key1) and (partKey, key2). Which 
 means that partKey in both cases is their partition key. Which in the example 
 also is the same value.
 h4. Why I want to use a BATCH-statement that way:
 In traditional databases, to design a one-to-one relationship, I would create 
 one table with two keys, both with a unique constraint:
 

[jira] [Commented] (CASSANDRA-9312) Provide a way to retrieve the write time of a CQL row

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698605#comment-14698605
 ] 

Sylvain Lebresne commented on CASSANDRA-9312:
-

I'll note that my preference regarding syntax for this is simply to start 
allowing the {{writeTime}} and {{ttl}} methods on primary key columns (it will 
thus return the same value for every PK column of the same row).

The alternative would be to have a special syntax that include all the PK 
columns, like:
{{noformat}}
SELECT writeTime(k, t1, t2), ttl(k, t1, t2) WHERE ...;
{{noformat}}
but it doesn't feel really better to me and is more special-casy and slightly 
more complex from an implementation point of view.

 Provide a way to retrieve the write time of a CQL row
 -

 Key: CASSANDRA-9312
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9312
 Project: Cassandra
  Issue Type: New Feature
  Components: API
Reporter: Nicolas Favre-Felix
Assignee: Sylvain Lebresne
 Fix For: 2.2.x


 There is currently no way to retrieve the writetime of a CQL row. This is 
 an issue for tables in which all dimensions are part of the primary key.
 Since Cassandra already stores a cell for the CQL row, it would make sense to 
 provide a way to read its timestamp. This feature would be consistent with 
 the concept of a row as an entity containing a number of optional columns, 
 but able to exist on its own.



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


[jira] [Updated] (CASSANDRA-9312) Provide a way to retrieve the write time of a CQL row

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-9312:

Fix Version/s: 2.2.x

 Provide a way to retrieve the write time of a CQL row
 -

 Key: CASSANDRA-9312
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9312
 Project: Cassandra
  Issue Type: New Feature
  Components: API
Reporter: Nicolas Favre-Felix
Assignee: Sylvain Lebresne
 Fix For: 2.2.x


 There is currently no way to retrieve the writetime of a CQL row. This is 
 an issue for tables in which all dimensions are part of the primary key.
 Since Cassandra already stores a cell for the CQL row, it would make sense to 
 provide a way to read its timestamp. This feature would be consistent with 
 the concept of a row as an entity containing a number of optional columns, 
 but able to exist on its own.



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


[jira] [Commented] (CASSANDRA-9854) Make CompactionController.maybeRefreshOverlaps public

2015-08-16 Thread Jonathan Ellis (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9854?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698677#comment-14698677
 ] 

Jonathan Ellis commented on CASSANDRA-9854:
---

Is this a subset of CASSANDRA-8671 or a separate need?

 Make CompactionController.maybeRefreshOverlaps public
 -

 Key: CASSANDRA-9854
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9854
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Mike Adamson
Assignee: Mike Adamson
 Fix For: 3.0.0 rc1

 Attachments: 9854.txt


 This method is currently package protected and means that 3rd party 
 compaction strategies outside of the compaction package cannot use it.



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


[jira] [Updated] (CASSANDRA-10086) Add a CLEAR cqlsh command to clear the console

2015-08-16 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-10086:
---
Reviewer: Stefania

[~Stefania] to review

 Add a CLEAR cqlsh command to clear the console
 

 Key: CASSANDRA-10086
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10086
 Project: Cassandra
  Issue Type: Improvement
Reporter: Paul O'Fallon
Priority: Trivial
  Labels: cqlsh
 Attachments: 10086.txt


 It would be very helpful to have a CLEAR command to clear the cqlsh 
 console.  I learned (after researching a patch for this) that lowercase 
 CTRL+L will clear the screen, but having a discrete command would make that 
 more obvious.  To match the expectations of Windows users, an alias to CLS 
 would be nice as well.



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


[jira] [Updated] (CASSANDRA-9893) Fix upgrade tests from #9704 that are still failing

2015-08-16 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-9893:
--
Assignee: Blake Eggleston  (was: Benjamin Lerer)

 Fix upgrade tests from #9704 that are still failing
 ---

 Key: CASSANDRA-9893
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9893
 Project: Cassandra
  Issue Type: Bug
Reporter: Sylvain Lebresne
Assignee: Blake Eggleston
 Fix For: 3.0.0 rc1


 The first things to do on this ticket would be to commit Tyler's branch 
 (https://github.com/thobbs/cassandra-dtest/tree/8099-backwards-compat) to the 
 dtests so cassci run them. I've had to do a few minor modifications to have 
 them run locally so someone which access to cassci should do it and make sure 
 it runs properly.
 Once we have that, we should fix any test that isn't passing. I've ran the 
 tests locally and I had 8 failures. for 2 of them, it sounds plausible that 
 they'll get fixed by the patch of CASSANDRA-9775, though that's just a guess. 
  The rest where test that timeouted without a particular error in the log, 
 and running some of them individually, they passed.  So we'll have to see if 
 it's just my machine being overly slow when running them all.



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


[jira] [Updated] (CASSANDRA-9916) batch_mutate failing on trunk

2015-08-16 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-9916:
--
Assignee: Blake Eggleston  (was: Paulo Motta)

 batch_mutate failing on trunk
 -

 Key: CASSANDRA-9916
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9916
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Mike Adamson
Assignee: Blake Eggleston
 Fix For: 3.0.0 rc1


 {{batch_mutate}} is failing on trunk with the following error:
 {noformat}
 java.lang.AssertionError: current = 
 ColumnDefinition{name=b@706172656e745f70617468, 
 type=org.apache.cassandra.db.marshal.BytesType, kind=STATIC, 
 componentIndex=null, indexName=cfs_parent_path, indexType=KEYS}, new = 
 ColumnDefinition{name=b@70617468, 
 type=org.apache.cassandra.db.marshal.BytesType, kind=STATIC, 
 componentIndex=null, indexName=cfs_path, indexType=KEYS}
 at 
 org.apache.cassandra.db.rows.ArrayBackedRow$SortedBuilder.setColumn(ArrayBackedRow.java:617)
 at 
 org.apache.cassandra.db.rows.ArrayBackedRow$SortedBuilder.addCell(ArrayBackedRow.java:630)
 at 
 org.apache.cassandra.db.LegacyLayout$CellGrouper.addCell(LegacyLayout.java:891)
 at 
 org.apache.cassandra.db.LegacyLayout$CellGrouper.addAtom(LegacyLayout.java:843)
 at 
 org.apache.cassandra.db.LegacyLayout.getNextRow(LegacyLayout.java:390)
 at 
 org.apache.cassandra.db.LegacyLayout.toUnfilteredRowIterator(LegacyLayout.java:326)
 at 
 org.apache.cassandra.db.LegacyLayout.toUnfilteredRowIterator(LegacyLayout.java:288)
 at 
 org.apache.cassandra.thrift.CassandraServer.createMutationList(CassandraServer.java:1110)
 at 
 org.apache.cassandra.thrift.CassandraServer.batch_mutate(CassandraServer.java:1249)
 {noformat}
 The following mutations was passed to {{batch_mutate}} to get this error
 {noformat}
 mutationMap = {java.nio.HeapByteBuffer[pos=0 lim=32 cap=32]=
 {inode=[
 Mutation(column_or_supercolumn:ColumnOrSuperColumn(column:Column(name:80 62 
 00 04 70 61 74 68 00, value:2F, timestamp:1438165021749))), 
 Mutation(column_or_supercolumn:ColumnOrSuperColumn(column:Column(name:80 62 
 00 0B 70 61 72 65 6E 74 5F 70 61 74 68 00, value:6E 75 6C 6C, 
 timestamp:1438165021749))), 
 Mutation(column_or_supercolumn:ColumnOrSuperColumn(column:Column(name:80 62 
 00 08 73 65 6E 74 69 6E 65 6C 00, value:78, timestamp:1438165021749))), 
 Mutation(column_or_supercolumn:ColumnOrSuperColumn(column:Column(name:80 62 
 00 04 64 61 74 61 00, value:00 00 00 08 64 61 74 61 73 74 61 78 00 00 00 05 
 75 73 65 72 73 01 FF 00 00 00 00 00 04 00 00 00 01, timestamp:1438165021749)))
 ]}}
 {noformat}



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


[jira] [Updated] (CASSANDRA-9966) batched CAS statements are not serializable

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-9966:

Issue Type: New Feature  (was: Bug)

 batched CAS statements are not serializable
 ---

 Key: CASSANDRA-9966
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9966
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Sam Overton
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.x, 2.2.x


 It is possible to batch CAS statements such that their outcome is different 
 to the outcome were they executed sequentially outside of a batch.
 eg.
 a | b | c
 a | 1 | 1
 BEGIN BATCH
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 APPLY BATCH
 results in 
 a | b | c
 a | 2 | 2
 If these statements were not batched, the outcome would be 
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 a | b | c
 a | 2 | 1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 applied=false (pre-condition b=1 not met)
 Cassandra already checks for incompatible preconditions within a batch (eg 
 one statement with IF c=1 and another statement with IF c=2). It should also 
 check for mutations to columns in one statement that affect the 
 pre-conditions of another statement, or it should evaluate the statement 
 pre-conditions sequentially after applying the mutations of the previous 
 statement to an in-memory model of the partition.
 For backwards compatibility this would have to be a new strict batch mode, 
 eg.
 BEGIN STRICT BATCH



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


[jira] [Updated] (CASSANDRA-9966) batched CAS statements are not serializable

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-9966:

Priority: Major  (was: Critical)

 batched CAS statements are not serializable
 ---

 Key: CASSANDRA-9966
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9966
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Sam Overton
Assignee: Sylvain Lebresne
 Fix For: 3.x, 2.2.x


 It is possible to batch CAS statements such that their outcome is different 
 to the outcome were they executed sequentially outside of a batch.
 eg.
 a | b | c
 a | 1 | 1
 BEGIN BATCH
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 APPLY BATCH
 results in 
 a | b | c
 a | 2 | 2
 If these statements were not batched, the outcome would be 
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 a | b | c
 a | 2 | 1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 applied=false (pre-condition b=1 not met)
 Cassandra already checks for incompatible preconditions within a batch (eg 
 one statement with IF c=1 and another statement with IF c=2). It should also 
 check for mutations to columns in one statement that affect the 
 pre-conditions of another statement, or it should evaluate the statement 
 pre-conditions sequentially after applying the mutations of the previous 
 statement to an in-memory model of the partition.
 For backwards compatibility this would have to be a new strict batch mode, 
 eg.
 BEGIN STRICT BATCH



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


[jira] [Commented] (CASSANDRA-9966) batched CAS statements are not serializable

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698731#comment-14698731
 ] 

Sylvain Lebresne commented on CASSANDRA-9966:
-

I don't think this is a bug in the sense that this is working as designed.

Statements within a batch in CQL are not applied sequentially, they are applied 
all at once (they all get the same timestamp in particular), and in that sense 
it is consistent for CAS one to also work that way (and hence all conditions 
are evaluated on the state the batch is applied to as a whole).

Which is not to say we can't consider as a new feature the ability to have 
statements of a batch applied sequentially. That said, I can see a few points 
worth considering for the addition of such new feature:
* I think we'd have to do 2 things: 1) evaluate the conditions sequentially and 
2) generate increasing timestamps for each statement within the batch (so if 2 
statement update the same column, the result is consistent with a sequential 
application). The latter could work in practice because we guarantee that 2 
conficting CAS operation will have at least a 1ms differences in their 
timestamp, and since timestamp are in micros, we could have up to 1000 
statements within a batch without having a problem, but that still feels a bit 
dodgy in principle (and we'll want to make sure this wouldn't be hard to 
maintain post-CASSANDRA-6246).
* Do we only allow that new form for batches that goes through Paxos? In 
principle, from a user perspective, there would seems to be no reason to have 
such limitation, but the part about bumping the timestamp for each statement 
within the batch feels even more dodgy in the non-Paxos case.

 batched CAS statements are not serializable
 ---

 Key: CASSANDRA-9966
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9966
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Sam Overton
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.x, 2.2.x


 It is possible to batch CAS statements such that their outcome is different 
 to the outcome were they executed sequentially outside of a batch.
 eg.
 a | b | c
 a | 1 | 1
 BEGIN BATCH
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 APPLY BATCH
 results in 
 a | b | c
 a | 2 | 2
 If these statements were not batched, the outcome would be 
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 a | b | c
 a | 2 | 1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 applied=false (pre-condition b=1 not met)
 Cassandra already checks for incompatible preconditions within a batch (eg 
 one statement with IF c=1 and another statement with IF c=2). It should also 
 check for mutations to columns in one statement that affect the 
 pre-conditions of another statement, or it should evaluate the statement 
 pre-conditions sequentially after applying the mutations of the previous 
 statement to an in-memory model of the partition.
 For backwards compatibility this would have to be a new strict batch mode, 
 eg.
 BEGIN STRICT BATCH



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


[jira] [Updated] (CASSANDRA-10046) RangeTombstone validation missing on thrift

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-10046:
-
Reviewer: Sylvain Lebresne  (was: Aleksey Yeschenko)

 RangeTombstone validation missing on thrift
 ---

 Key: CASSANDRA-10046
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10046
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 3.0.0 rc1


 Currently a number of thrift tests fail due to a NPE
 {code}
 test_range_deletion 
 test_batch_mutate_remove_slice_standard
 test_batch_mutate_remove_slice_of_entire_supercolumns
 {code}
 These errors all stem from the fact we aren't properly throwing a validation 
 exception when a deletion with a slice that is not start == finish.  
 We should add better validation to throw a clear exception sooner.



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


[jira] [Updated] (CASSANDRA-9966) Option to apply statements within a batch sequentially

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-9966:

Summary: Option to apply statements within a batch sequentially  (was: 
batched CAS statements are not serializable)

 Option to apply statements within a batch sequentially
 --

 Key: CASSANDRA-9966
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9966
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: Sam Overton
Assignee: Sylvain Lebresne
 Fix For: 3.x, 2.2.x


 It is possible to batch CAS statements such that their outcome is different 
 to the outcome were they executed sequentially outside of a batch.
 eg.
 a | b | c
 a | 1 | 1
 BEGIN BATCH
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 APPLY BATCH
 results in 
 a | b | c
 a | 2 | 2
 If these statements were not batched, the outcome would be 
 UPDATE foo SET b=2 WHERE a='a' iF c=1
 a | b | c
 a | 2 | 1
 UPDATE foo SET c=2 WHERE a='a' IF b=1
 applied=false (pre-condition b=1 not met)
 Cassandra already checks for incompatible preconditions within a batch (eg 
 one statement with IF c=1 and another statement with IF c=2). It should also 
 check for mutations to columns in one statement that affect the 
 pre-conditions of another statement, or it should evaluate the statement 
 pre-conditions sequentially after applying the mutations of the previous 
 statement to an in-memory model of the partition.
 For backwards compatibility this would have to be a new strict batch mode, 
 eg.
 BEGIN STRICT BATCH



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


[jira] [Resolved] (CASSANDRA-8903) Super Columns exception during upgrade from C* 1.2.18 to C* 2.0.11

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne resolved CASSANDRA-8903.
-
Resolution: Cannot Reproduce

As said above, it's very unclear from the code of such exception could happen 
and with no news on reproduction steps in 1+ month (and no additional report of 
this), closing as Cannot Reproduce.

If you have more information to provide on this that would help 
reproducing/tracking this down, feel free to reopen with said information. 

 Super Columns exception during upgrade from C* 1.2.18 to C* 2.0.11
 --

 Key: CASSANDRA-8903
 URL: https://issues.apache.org/jira/browse/CASSANDRA-8903
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Erick Ramirez
Assignee: Sylvain Lebresne

 While in the middle of an upgrade of a 12-node cluster, the following errors 
 were constantly being reported in the logs:
 {noformat}
 ERROR [WRITE-/10.73.73.26] 2015-03-02 22:59:12,523 OutboundTcpConnection.java 
 (line 234) error writing to /xx.xx.xx.xx 
 java.lang.RuntimeException: Cannot convert filter to old super column format. 
 Update all nodes to Cassandra 2.0 first. 
 at 
 org.apache.cassandra.db.SuperColumns.sliceFilterToSC(SuperColumns.java:353) 
 at org.apache.cassandra.db.SuperColumns.filterToSC(SuperColumns.java:258) 
 at 
 org.apache.cassandra.db.RangeSliceCommandSerializer.serializedSize(RangeSliceCommand.java:284)
  
 at 
 org.apache.cassandra.db.RangeSliceCommandSerializer.serializedSize(RangeSliceCommand.java:156)
  
 at org.apache.cassandra.net.MessageOut.serialize(MessageOut.java:116) 
 at 
 org.apache.cassandra.net.OutboundTcpConnection.writeInternal(OutboundTcpConnection.java:251)
  
 at 
 org.apache.cassandra.net.OutboundTcpConnection.writeConnected(OutboundTcpConnection.java:203)
  
 at 
 org.apache.cassandra.net.OutboundTcpConnection.run(OutboundTcpConnection.java:151)
 {noformat}
 Confirmed that code is accessing cluster via Thrift and not CQL API.
 This issue is very similar to CASSANDRA-6966 but may relate to the way that 
 single slice and reversed is being handled.



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


[jira] [Commented] (CASSANDRA-10073) Counter mutation serialization bug

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698744#comment-14698744
 ] 

Sylvain Lebresne commented on CASSANDRA-10073:
--

Pushed branch with the fixes 
[here|https://github.com/pcmanus/cassandra/commits/10073] (I'll update with 
links to CI results once/if the branch is picked up by cassci).

The reason for the exception is that {{CollectionType.validateCellValue}} is 
not calling the proper validation method for it's values (it should call their 
{{validateCellValue}}). This is not a particularly new bug, but the only types 
for which {{validate}} and {{validateCellValue}} differs are collections (but 
we don't support nested collections) and counters (for which, prior to 
CASSANDRA-8099 were never part of collections -- they can be now if counters 
are used in thrift super columns). The first commit fixes that.

Once that was fixed, the test was still failing due to some pretty clear typo 
in {{ColumnSubselection}} serialization code, so a 2nd commit fixes that too.

 Counter mutation serialization bug
 --

 Key: CASSANDRA-10073
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10073
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.0 beta 1


 reproduced in dtest 
 super_counter_test:TestSuperCounterClusterRestart.functional_test_2
 {code}
 - Unexpected error deserializing mutation; saved to 
 /tmp/mutation181379301016027337dat and ignored.  This may be caused by 
 replaying a mutation against a table with the same name but incompatible 
 schema.  Exception follows:  
 org.apache.cassandra.serializers.MarshalException: Expected 8 or 0 byte long 
 (36) \tat 
 org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42)
  ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130)
  ~[main/:na] \tat 
 org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444)
  ~[main/:na] \tat 
 org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125)
  ~[main/:na] \tat 
 org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518)
  ~[main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) 
 [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512)
  [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) 
 [main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513
 {code}



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


[jira] [Updated] (CASSANDRA-10073) Counter mutation serialization bug

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-10073:
-
   Reviewer: Aleksey Yeschenko
Description: 


reproduced in dtest 
super_counter_test:TestSuperCounterClusterRestart.functional_test_2

{code}
- Unexpected error deserializing mutation; saved to 
/tmp/mutation181379301016027337dat and ignored.  This may be caused by 
replaying a mutation against a table with the same name but incompatible 
schema.  Exception follows:  org.apache.cassandra.serializers.MarshalException: 
Expected 8 or 0 byte long (36) \tat 
org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42)
 ~[main/:na] \tat 
org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) 
~[main/:na] \tat 
org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130)
 ~[main/:na] \tat 
org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444)
 ~[main/:na] \tat 
org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) 
~[main/:na] \tat 
org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125)
 ~[main/:na] \tat 
org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518)
 ~[main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) 
[main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) 
[main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513
{code}

  was:



reproduced in dtest 
super_counter_test:TestSuperCounterClusterRestart.functional_test_2

{code}
- Unexpected error deserializing mutation; saved to 
/tmp/mutation181379301016027337dat and ignored.  This may be caused by 
replaying a mutation against a table with the same name but incompatible 
schema.  Exception follows:  org.apache.cassandra.serializers.MarshalException: 
Expected 8 or 0 byte long (36) \tat 
org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42)
 ~[main/:na] \tat 
org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) 
~[main/:na] \tat 
org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130)
 ~[main/:na] \tat 
org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444)
 ~[main/:na] \tat 
org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) 
~[main/:na] \tat 
org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125)
 ~[main/:na] \tat 
org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518)
 ~[main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146)
 [main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) 
[main/:na] \tat 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512) 
[main/:na] \tat 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) 
[main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513
{code}


 Counter mutation serialization bug
 --

 Key: CASSANDRA-10073
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10073
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.0 beta 1


 reproduced in dtest 
 super_counter_test:TestSuperCounterClusterRestart.functional_test_2
 {code}
 - Unexpected error 

[jira] [Assigned] (CASSANDRA-10073) Counter mutation serialization bug

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne reassigned CASSANDRA-10073:


Assignee: Sylvain Lebresne  (was: Aleksey Yeschenko)

 Counter mutation serialization bug
 --

 Key: CASSANDRA-10073
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10073
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.0 beta 1


 reproduced in dtest 
 super_counter_test:TestSuperCounterClusterRestart.functional_test_2
 {code}
 - Unexpected error deserializing mutation; saved to 
 /tmp/mutation181379301016027337dat and ignored.  This may be caused by 
 replaying a mutation against a table with the same name but incompatible 
 schema.  Exception follows:  
 org.apache.cassandra.serializers.MarshalException: Expected 8 or 0 byte long 
 (36) \tat 
 org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42)
  ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130)
  ~[main/:na] \tat 
 org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444)
  ~[main/:na] \tat 
 org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125)
  ~[main/:na] \tat 
 org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518)
  ~[main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) 
 [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512)
  [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) 
 [main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513
 {code}



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


[jira] [Commented] (CASSANDRA-10086) Add a CLEAR cqlsh command to clear the console

2015-08-16 Thread Stefania (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10086?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698916#comment-14698916
 ] 

Stefania commented on CASSANDRA-10086:
--

Thanks for the patch Paul, it's definitely +1. 

Only one trivial nit: {{clearCommand}} should perhaps follow existing 
commands. I know we managed to break the order already, but existing commands 
are mostly ordered so we may want to move clearCommand after exitCommand, or it 
can be done during commit.

I tested it manually on Linux and it works. I could not test it on Windows or 
Mac.

As for automated tests, have a look at _cqlsh_tests/cqlsh_tests.py_ in the 
[distributed tests|https://github.com/riptano/cassandra-dtest]. Normally we 
check a cqlsh command by looking at its output. In this case it is a bit tricky 
though as there is no output and the lack of output doesn't necessarily mean 
the screen was cleared. Still, we could perhaps just add a test to show that 
there is no error, to at least exercise the new code path.

If it is too time consuming to install the distributed tests I can write a test 
for you as it won't take me long.

[~jbellis]: this is only for trunk or previous versions too?

 Add a CLEAR cqlsh command to clear the console
 

 Key: CASSANDRA-10086
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10086
 Project: Cassandra
  Issue Type: Improvement
Reporter: Paul O'Fallon
Priority: Trivial
  Labels: cqlsh
 Attachments: 10086.txt


 It would be very helpful to have a CLEAR command to clear the cqlsh 
 console.  I learned (after researching a patch for this) that lowercase 
 CTRL+L will clear the screen, but having a discrete command would make that 
 more obvious.  To match the expectations of Windows users, an alias to CLS 
 would be nice as well.



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


[jira] [Commented] (CASSANDRA-9460) NullPointerException Creating Digest

2015-08-16 Thread Stefania (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698902#comment-14698902
 ] 

Stefania commented on CASSANDRA-9460:
-

I think this is still happening in 2.1:

http://cassci.datastax.com/job/cassandra-2.1_dtest/223/testReport/consistency_test/TestConsistency/short_read_reversed_test/

{code}
Unexpected error in node1 node log: ['ERROR [ReadRepairStage:2] 2015-08-14 
16:23:58,917 CassandraDaemon.java:223 - Exception in thread 
Thread[ReadRepairStage:2,5,main] java.lang.NullPointerException: null \tat 
org.apache.cassandra.db.ColumnFamily.updateDigest(ColumnFamily.java:390) 
~[main/:na] \tat 
org.apache.cassandra.db.ColumnFamily.digest(ColumnFamily.java:383) ~[main/:na] 
\tat 
org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:90)
 ~[main/:na] \tat 
org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:28)
 ~[main/:na] \tat 
org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:191)
 ~[main/:na] \tat 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
~[na:1.7.0_80] \tat 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
~[na:1.7.0_80] \tat java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]']
{code}

 NullPointerException Creating Digest
 

 Key: CASSANDRA-9460
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9460
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Tyler Hobbs
Assignee: Stefania
 Fix For: 2.1.9, 2.2.0

 Attachments: node2.log


 In the {{consistency_test.TestConsistency.short_read_test}} dtest against 
 cassandra-2.1, the following error occured:
 {noformat}
 ERROR [ReadRepairStage:3] 2015-05-22 16:35:25,034 CassandraDaemon.java:223 - 
 Exception in thread Thread[ReadRepairStage:3,5,main]
 java.lang.NullPointerException: null
 at 
 org.apache.cassandra.db.ColumnFamily.updateDigest(ColumnFamily.java:390) 
 ~[main/:na]
 at org.apache.cassandra.db.ColumnFamily.digest(ColumnFamily.java:383) 
 ~[main/:na]
 at 
 org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:84)
  ~[main/:na]
 at 
 org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:28)
  ~[main/:na]
 at 
 org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:176)
  ~[main/:na]
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  ~[na:1.7.0_80]
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  ~[na:1.7.0_80]
 at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]
 {noformat}
 From a glance at the code in the stacktrace, it looks like there was a null 
 cell in the ColumnFamily that we were creating a digest of.  This error is 
 probably particular to short reads.
 Here's the failing test: 
 http://cassci.datastax.com/job/cassandra-2.1_dtest/lastCompletedBuild/testReport/consistency_test/TestConsistency/short_read_test/.
   I've attached the logs for the node with the error.
 We saw this issue against 2.1, but the problem may also exist with 2.0 and/or 
 2.2.



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


[jira] [Reopened] (CASSANDRA-9460) NullPointerException Creating Digest

2015-08-16 Thread Stefania (JIRA)

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

Stefania reopened CASSANDRA-9460:
-

 NullPointerException Creating Digest
 

 Key: CASSANDRA-9460
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9460
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Tyler Hobbs
Assignee: Stefania
 Fix For: 2.1.9, 2.2.0

 Attachments: node2.log


 In the {{consistency_test.TestConsistency.short_read_test}} dtest against 
 cassandra-2.1, the following error occured:
 {noformat}
 ERROR [ReadRepairStage:3] 2015-05-22 16:35:25,034 CassandraDaemon.java:223 - 
 Exception in thread Thread[ReadRepairStage:3,5,main]
 java.lang.NullPointerException: null
 at 
 org.apache.cassandra.db.ColumnFamily.updateDigest(ColumnFamily.java:390) 
 ~[main/:na]
 at org.apache.cassandra.db.ColumnFamily.digest(ColumnFamily.java:383) 
 ~[main/:na]
 at 
 org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:84)
  ~[main/:na]
 at 
 org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:28)
  ~[main/:na]
 at 
 org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:176)
  ~[main/:na]
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
  ~[na:1.7.0_80]
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
  ~[na:1.7.0_80]
 at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]
 {noformat}
 From a glance at the code in the stacktrace, it looks like there was a null 
 cell in the ColumnFamily that we were creating a digest of.  This error is 
 probably particular to short reads.
 Here's the failing test: 
 http://cassci.datastax.com/job/cassandra-2.1_dtest/lastCompletedBuild/testReport/consistency_test/TestConsistency/short_read_test/.
   I've attached the logs for the node with the error.
 We saw this issue against 2.1, but the problem may also exist with 2.0 and/or 
 2.2.



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


[jira] [Created] (CASSANDRA-10089) NullPointerException in Gossip handleStateNormal

2015-08-16 Thread Stefania (JIRA)
Stefania created CASSANDRA-10089:


 Summary: NullPointerException in Gossip handleStateNormal
 Key: CASSANDRA-10089
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10089
 Project: Cassandra
  Issue Type: Bug
Reporter: Stefania
Assignee: Stefania


Whilst comparing dtests for CASSANDRA-9970 I found [this failing 
dtest|http://cassci.datastax.com/view/Dev/view/blerer/job/blerer-9970-dtest/lastCompletedBuild/testReport/consistency_test/TestConsistency/short_read_test/]
 in 2.2:

{code}
Unexpected error in node1 node log: ['ERROR [GossipStage:1] 2015-08-14 
15:39:57,873 CassandraDaemon.java:183 - Exception in thread 
Thread[GossipStage:1,5,main] java.lang.NullPointerException: null \tat 
org.apache.cassandra.service.StorageService.getApplicationStateValue(StorageService.java:1731)
 ~[main/:na] \tat 
org.apache.cassandra.service.StorageService.getTokensFor(StorageService.java:1804)
 ~[main/:na] \tat 
org.apache.cassandra.service.StorageService.handleStateNormal(StorageService.java:1857)
 ~[main/:na] \tat 
org.apache.cassandra.service.StorageService.onChange(StorageService.java:1629) 
~[main/:na] \tat 
org.apache.cassandra.service.StorageService.onJoin(StorageService.java:2312) 
~[main/:na] \tat 
org.apache.cassandra.gms.Gossiper.handleMajorStateChange(Gossiper.java:1025) 
~[main/:na] \tat 
org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:1106) 
~[main/:na] \tat 
org.apache.cassandra.gms.GossipDigestAck2VerbHandler.doVerb(GossipDigestAck2VerbHandler.java:49)
 ~[main/:na] \tat 
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:66) 
~[main/:na] \tat 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
~[na:1.7.0_80] \tat 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
~[na:1.7.0_80] \tat java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]']
{code}

I wasn't able to find it on unpatched branches  but it is clearly not related 
to CASSANDRA-9970, if anything it could have been a side effect of 
CASSANDRA-9871.



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


[jira] [Resolved] (CASSANDRA-10088) sequential batch operation

2015-08-16 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis resolved CASSANDRA-10088.

Resolution: Invalid

Please take QA to Stack Overflow or the mailing list.

 sequential batch operation
 --

 Key: CASSANDRA-10088
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10088
 Project: Cassandra
  Issue Type: Test
  Components: Config, Core
Reporter: Rohit Kasat

 Is it possible to do sequential batch.
 eg:
  batch delete from table 1, and same time take some id's from table 2
  pass this to delete operion and delete from table 2.
 and so on. 
 if any deletion fails fail everything.
 (Its kind of transactional)



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


[jira] [Created] (CASSANDRA-10088) sequential batch operation

2015-08-16 Thread Rohit Kasat (JIRA)
Rohit Kasat created CASSANDRA-10088:
---

 Summary: sequential batch operation
 Key: CASSANDRA-10088
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10088
 Project: Cassandra
  Issue Type: Test
  Components: Config, Core
Reporter: Rohit Kasat


Is it possible to do sequential batch.
eg:
 batch delete from table 1, and same time take some id's from table 2
 pass this to delete operion and delete from table 2.
and so on. 
if any deletion fails fail everything.

(Its kind of transactional)



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


[jira] [Commented] (CASSANDRA-9906) get_slice and multiget_slice failing on trunk

2015-08-16 Thread Stefania (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698889#comment-14698889
 ] 

Stefania commented on CASSANDRA-9906:
-

The utests are definitely OK and the dtests seem inline with 3.0 so I am +1.

 get_slice and multiget_slice failing on trunk
 -

 Key: CASSANDRA-9906
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9906
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Mike Adamson
Assignee: Benjamin Lerer
Priority: Blocker
 Fix For: 3.0.0 rc1

 Attachments: 9906.txt, dtest-CASSANDRA-9906.txt


 {{get_slice}} and {{multiget_slice}} are failing on trunk with the following 
 error:
 {noformat}
 java.lang.AssertionError: null
   at 
 org.apache.cassandra.db.filter.ClusteringIndexNamesFilter.init(ClusteringIndexNamesFilter.java:53)
  ~[cassandra-all-3.0.0.592.jar:3.0.0.592]
   at 
 org.apache.cassandra.thrift.CassandraServer.toInternalFilter(CassandraServer.java:405)
  ~[cassandra-all-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at 
 org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:547)
  ~[cassandra-all-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at 
 org.apache.cassandra.thrift.CassandraServer.multiget_slice(CassandraServer.java:348)
  ~[cassandra-all-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at 
 org.apache.cassandra.thrift.Cassandra$Processor$multiget_slice.getResult(Cassandra.java:3716)
  ~[cassandra-thrift-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at 
 org.apache.cassandra.thrift.Cassandra$Processor$multiget_slice.getResult(Cassandra.java:3700)
  ~[cassandra-thrift-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39) 
 ~[libthrift-0.9.2.jar:0.9.2]
   at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39) 
 ~[libthrift-0.9.2.jar:0.9.2]
   at 
 org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:204)
  ~[cassandra-all-3.0.0.592.jar:5.0.0-SNAPSHOT]
   at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  ~[na:1.8.0_45]
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  ~[na:1.8.0_45]
   at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_45]
 {noformat}
 The schema used for this was
 {noformat}
 create table test (k int, v int, primary key(k)) with compact storage;
 {noformat}
 and the code used for the call was
 {noformat}
 SlicePredicate predicate = new SlicePredicate();
 predicate.column_names = 
 Collections.singletonList(ByteBufferUtil.bytes(v));
 client.multiget_slice(Collections.singletonList(key), new 
 ColumnParent(test), predicate, ConsistencyLevel.ONE);
 {noformat}
 The error is coming from this line in {{ClusteringIndexNamesFilter}}
 {noformat}
 assert !clusterings.contains(Clustering.STATIC_CLUSTERING);
 {noformat}
 which is failing the assertion because column 'v' is static.
 Apologies for the line mismatches in {{ClusteringIndexNamesFilter}} I had 
 some debug statements in the code to help track down what was happening



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


[jira] [Commented] (CASSANDRA-9970) CQL 3.3 ordering in where clause produces different results when using IN...ORDER BY

2015-08-16 Thread Stefania (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-9970?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698905#comment-14698905
 ] 

Stefania commented on CASSANDRA-9970:
-

+1.

I found a dtest on 2.2 happening only on this branch but it is clearly 
unrelated (Gossip) and therefore I opened CASSANDRA-10089 for it.

 CQL 3.3 ordering in where clause produces different results when using 
 IN...ORDER BY
 --

 Key: CASSANDRA-9970
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9970
 Project: Cassandra
  Issue Type: Bug
  Components: API
Reporter: Marc Zbyszynski
Assignee: Benjamin Lerer
Priority: Minor
 Fix For: 2.2.x

 Attachments: 9970.txt, dtest-CASSANDRA-9970.txt


 This is an issue I found with
 {code}
 [cqlsh 5.0.1 | Cassandra 2.2.0 | CQL spec 3.3.0 | Native protocol v4]
 {code}
 Given this table and data:
 {code:sql}
 cqlsh CREATE TABLE myschema.in_test (
... col_1 int,
... col_2 int,
... col_3 int,
... PRIMARY KEY ((col_1, col_2), col_3)
... );
 cqlsh INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 1);
 cqlsh INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 2);
 cqlsh INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 1, 13);
 cqlsh INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 2, 10);
 cqlsh INSERT INTO myschema.in_test (col_1, col_2, col_3) VALUES(1, 2, 11);
 {code}
 This query behaves as expected (as described in 
 [http://docs.datastax.com/en/cql/3.3/cql/cql_using/useQueryIN.html])
 {code:sql}
 cqlsh select * from myschema.in_test where col_1=1 and col_2 IN (1,2) order 
 by col_3 desc;
 InvalidRequest: code=2200 [Invalid query] message=Cannot page queries with 
 both ORDER BY and a IN restriction on the partition key; you must either 
 remove the ORDER BY or the IN and sort client side, or disable paging for 
 this query
 {code}
 But if you swap the order of the statements in the where clause, the query 
 executes without error and doesn't totally honor the _order by_ clause:
 {code:sql}
 cqlsh select * from myschema.in_test where col_2 IN (1,2) and col_1=1 order 
 by col_3 desc;
  col_1 | col_2 | col_3
 ---+---+---
  1 | 2 |11
  1 | 2 |10
  1 | 1 |13
  1 | 1 | 2
  1 | 1 | 1
 (5 rows)
 {code}
 Apologies in advance if this is working as intended, or I'm duplicating an 
 existing issue. Also please let me know if you need any additional info.



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


[jira] [Commented] (CASSANDRA-10073) Counter mutation serialization bug

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698811#comment-14698811
 ] 

Sylvain Lebresne commented on CASSANDRA-10073:
--

CI results: [utests|http://cassci.datastax.com/job/pcmanus-10073-testall/1/] 
and [dtests|http://cassci.datastax.com/job/pcmanus-10073-dtest/1/].

Compared to the last results on the cassandra-3.0 branch:
* for the unit tests, there is a failure of 
{{org.apache.cassandra.cql3.MaterializedViewLongTest.testConflictResolution}} 
but I can't really imagine how the patch here could in any way influence that 
test so I strongly suspect a flaky test.
* for the dtests, it fixes the test of the description as expected (in fact, 
the run has only 27 failures compared to 33 on the last cassandra-3.0 run, but 
the rest is probably flaky tests for which the run got lucky).


 Counter mutation serialization bug
 --

 Key: CASSANDRA-10073
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10073
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Critical
 Fix For: 3.0 beta 1


 reproduced in dtest 
 super_counter_test:TestSuperCounterClusterRestart.functional_test_2
 {code}
 - Unexpected error deserializing mutation; saved to 
 /tmp/mutation181379301016027337dat and ignored.  This may be caused by 
 replaying a mutation against a table with the same name but incompatible 
 schema.  Exception follows:  
 org.apache.cassandra.serializers.MarshalException: Expected 8 or 0 byte long 
 (36) \tat 
 org.apache.cassandra.serializers.LongSerializer.validate(LongSerializer.java:42)
  ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.AbstractType.validate(AbstractType.java:122) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.marshal.CollectionType.validateCellValue(CollectionType.java:130)
  ~[main/:na] \tat 
 org.apache.cassandra.config.ColumnDefinition.validateCellValue(ColumnDefinition.java:444)
  ~[main/:na] \tat 
 org.apache.cassandra.db.rows.AbstractCell.validate(AbstractCell.java:56) 
 ~[main/:na] \tat 
 org.apache.cassandra.db.rows.ComplexColumnData.validate(ComplexColumnData.java:125)
  ~[main/:na] \tat 
 org.apache.cassandra.db.partitions.PartitionUpdate.validate(PartitionUpdate.java:518)
  ~[main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replayMutation(CommitLogReplayer.java:485)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.replaySyncSection(CommitLogReplayer.java:465)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:371)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:146)
  [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:181) 
 [main/:na] \tat 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:161) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:272) 
 [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:512)
  [main/:na] \tat 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:618) 
 [main/:na] ERROR [main] 2015-08-12 17:36:38,247 CommitLogReplayer.java:513
 {code}



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


[jira] [Assigned] (CASSANDRA-10046) RangeTombstone validation missing on thrift

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne reassigned CASSANDRA-10046:


Assignee: Sylvain Lebresne  (was: T Jake Luciani)

 RangeTombstone validation missing on thrift
 ---

 Key: CASSANDRA-10046
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10046
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 3.0.0 rc1


 Currently a number of thrift tests fail due to a NPE
 {code}
 test_range_deletion 
 test_batch_mutate_remove_slice_standard
 test_batch_mutate_remove_slice_of_entire_supercolumns
 {code}
 These errors all stem from the fact we aren't properly throwing a validation 
 exception when a deletion with a slice that is not start == finish.  
 We should add better validation to throw a clear exception sooner.



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


[jira] [Commented] (CASSANDRA-10046) RangeTombstone validation missing on thrift

2015-08-16 Thread Sylvain Lebresne (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698816#comment-14698816
 ] 

Sylvain Lebresne commented on CASSANDRA-10046:
--

For the record, this is a regression from CASSANDRA-9704.

This is also not a validation issue, as those test should be passing and we do 
want to handle range tombstones whose start differ from their end.

As far as I can tell, the problem is in the 
{{LegacyLayout.LegacyDeletionInfo.from}} method: it basically ends up 
considering all RT as a in-row tombstone, which is definitively incorrect. And 
in fact, that methods takes a {{DeletionInfo}}, so it can't have any in-row 
tombstone by definition. So I think the simplest way to deal with this is to 
have {{CassandraServer}} adds to a {{LegacyDeletionInfo}} object directly 
(instead of a {{DeletionInfo}}) and have it deal with in-row tombstones 
directly. Pushed a branch to do so 
[here|https://github.com/pcmanus/cassandra/commits/10046].

CI results will be eventually avaible for the 
[utests|http://cassci.datastax.com/view/Dev/view/pcmanus/job/pcmanus-10046-testall/]
 and 
[dtests|http://cassci.datastax.com/view/Dev/view/pcmanus/job/pcmanus-10046-dtest/].

Marking [~thobbs] as reviewer since he is the original author of CASSANDRA-9704.


 RangeTombstone validation missing on thrift
 ---

 Key: CASSANDRA-10046
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10046
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: T Jake Luciani
Priority: Minor
 Fix For: 3.0.0 rc1


 Currently a number of thrift tests fail due to a NPE
 {code}
 test_range_deletion 
 test_batch_mutate_remove_slice_standard
 test_batch_mutate_remove_slice_of_entire_supercolumns
 {code}
 These errors all stem from the fact we aren't properly throwing a validation 
 exception when a deletion with a slice that is not start == finish.  
 We should add better validation to throw a clear exception sooner.



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


[jira] [Updated] (CASSANDRA-9130) reduct default dtcs max_sstable_age

2015-08-16 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson updated CASSANDRA-9130:
---
Assignee: Jeff Jirsa  (was: Marcus Eriksson)

 reduct default dtcs max_sstable_age
 ---

 Key: CASSANDRA-9130
 URL: https://issues.apache.org/jira/browse/CASSANDRA-9130
 Project: Cassandra
  Issue Type: Improvement
Reporter: Jonathan Ellis
Assignee: Jeff Jirsa
Priority: Minor
 Fix For: 3.x, 2.1.x, 2.0.x


 Now that CASSANDRA-9056 is fixed it should be safe to reduce the default age 
 and increase performance correspondingly.  [~jshook] suggests that two weeks 
 may be appropriate, or we could make it dynamic based on gcgs (since that's 
 the window past which we should expect repair to not introduce fragmentation 
 anymore).



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


[jira] [Commented] (CASSANDRA-10060) Reuse TemporalRow when updating multiple MaterializedViews

2015-08-16 Thread Carl Yeksigian (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698842#comment-14698842
 ] 

Carl Yeksigian commented on CASSANDRA-10060:


Overall, +1. {{TemporalRow.Type}} isn't really necessary - we always call 
{{setTombstonedExisting}} after we do the tombstone, so the extra state doesn't 
add more information, we could go back to the {{isNew}} flag instead.

 Reuse TemporalRow when updating multiple MaterializedViews
 --

 Key: CASSANDRA-10060
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10060
 Project: Cassandra
  Issue Type: Improvement
Reporter: T Jake Luciani
Assignee: T Jake Luciani
 Fix For: 3.0.0 rc1


 If a table has 5 associated MVs the current logic reads the existing row for 
 the incoming mutation 5 times. 
 If we reuse the data from the first MV update we can cut out any further 
 reads.
 We know the existing data isn't changing because we are holding a lock on the 
 partition.



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


[jira] [Commented] (CASSANDRA-10061) Only use batchlog when paired view replica is remote

2015-08-16 Thread Carl Yeksigian (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-10061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14698843#comment-14698843
 ] 

Carl Yeksigian commented on CASSANDRA-10061:


+1

 Only use batchlog when paired view replica is remote
 

 Key: CASSANDRA-10061
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10061
 Project: Cassandra
  Issue Type: Improvement
Reporter: T Jake Luciani
Assignee: T Jake Luciani
 Fix For: 3.0.0 rc1


 As described in the MV design doc the base and view replicas are paired one 
 to one.
 If the replica selected for the view is the local node itself there is no 
 need to create a local batchlog and we can simply apply the view mutations 
 locally.



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


[jira] [Updated] (CASSANDRA-10046) RangeTombstone validation missing on thrift

2015-08-16 Thread Sylvain Lebresne (JIRA)

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

Sylvain Lebresne updated CASSANDRA-10046:
-
Reviewer: Tyler Hobbs  (was: Sylvain Lebresne)

 RangeTombstone validation missing on thrift
 ---

 Key: CASSANDRA-10046
 URL: https://issues.apache.org/jira/browse/CASSANDRA-10046
 Project: Cassandra
  Issue Type: Bug
Reporter: T Jake Luciani
Assignee: Sylvain Lebresne
Priority: Minor
 Fix For: 3.0.0 rc1


 Currently a number of thrift tests fail due to a NPE
 {code}
 test_range_deletion 
 test_batch_mutate_remove_slice_standard
 test_batch_mutate_remove_slice_of_entire_supercolumns
 {code}
 These errors all stem from the fact we aren't properly throwing a validation 
 exception when a deletion with a slice that is not start == finish.  
 We should add better validation to throw a clear exception sooner.



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