[jira] [Comment Edited] (CASSANDRA-13408) Cqlsh COPY FROM fails to parse varints
[ https://issues.apache.org/jira/browse/CASSANDRA-13408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15956175#comment-15956175 ] Stefania edited comment on CASSANDRA-13408 at 4/5/17 2:00 AM: -- I could only reproduce this with version 3.8 of the python driver, which happened to be installed on my laptop. The bundled version of the python driver, 3.7.0.post0-2481531, as well as the latest version, 3.8.1, are fine. For the records, this is the [commit|https://github.com/datastax/python-driver/commit/d96674#diff-afdba094819b7342624f13e92759f1e3R76] of the driver that introduced this problem, and this is the [commit|https://github.com/datastax/python-driver/commit/3c25965#diff-afdba094819b7342624f13e92759f1e3R83] that fixed it. was (Author: stefania): I could only reproduce this with the version 3.8 of the python driver, which happened to be installed on my laptop. The bundled version of the python driver, 3.7.0.post0-2481531, as well as the latest version, 3.8.1, are fine. For the records, this is the [commit|https://github.com/datastax/python-driver/commit/d96674#diff-afdba094819b7342624f13e92759f1e3R76] of the driver that introduced this problem, and this is the [commit|https://github.com/datastax/python-driver/commit/3c25965#diff-afdba094819b7342624f13e92759f1e3R83] that fixed it. > Cqlsh COPY FROM fails to parse varints > -- > > Key: CASSANDRA-13408 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13408 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > > CQLSH COPY FROM is failing to import varints. At least for 3.11: > {code} > cat test.csv > id,varint > -2147483648,-9223372036854775808 > 2147483647,9223372036854775807 > CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE test ( id int PRIMARY KEY , varint varint ); > COPY test FROM 'test.csv' WITH HEADER = TRUE; > Failed to make batch statement: Received an argument of invalid type for > column "varint". Expected: , Got: > ; (descriptor 'bit_length' requires a 'int' object but received a > 'long') > {code} > Importing without prepared statements, {{WITH HEADER = TRUE AND > PREPAREDSTATEMENTS = False}} works without problems. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (CASSANDRA-13408) Cqlsh COPY FROM fails to parse varints
[ https://issues.apache.org/jira/browse/CASSANDRA-13408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania resolved CASSANDRA-13408. -- Resolution: Not A Problem > Cqlsh COPY FROM fails to parse varints > -- > > Key: CASSANDRA-13408 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13408 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > > CQLSH COPY FROM is failing to import varints. At least for 3.11: > {code} > cat test.csv > id,varint > -2147483648,-9223372036854775808 > 2147483647,9223372036854775807 > CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE test ( id int PRIMARY KEY , varint varint ); > COPY test FROM 'test.csv' WITH HEADER = TRUE; > Failed to make batch statement: Received an argument of invalid type for > column "varint". Expected: , Got: > ; (descriptor 'bit_length' requires a 'int' object but received a > 'long') > {code} > Importing without prepared statements, {{WITH HEADER = TRUE AND > PREPAREDSTATEMENTS = False}} works without problems. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13408) Cqlsh COPY FROM fails to parse varints
[ https://issues.apache.org/jira/browse/CASSANDRA-13408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15956175#comment-15956175 ] Stefania commented on CASSANDRA-13408: -- I could only reproduce this with the version 3.8 of the python driver, which happened to be installed on my laptop. The bundled version of the python driver, 3.7.0.post0-2481531, as well as the latest version, 3.8.1, are fine. For the records, this is the [commit|https://github.com/datastax/python-driver/commit/d96674#diff-afdba094819b7342624f13e92759f1e3R76] of the driver that introduced this problem, and this is the [commit|https://github.com/datastax/python-driver/commit/3c25965#diff-afdba094819b7342624f13e92759f1e3R83] that fixed it. > Cqlsh COPY FROM fails to parse varints > -- > > Key: CASSANDRA-13408 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13408 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > > CQLSH COPY FROM is failing to import varints. At least for 3.11: > {code} > cat test.csv > id,varint > -2147483648,-9223372036854775808 > 2147483647,9223372036854775807 > CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE test ( id int PRIMARY KEY , varint varint ); > COPY test FROM 'test.csv' WITH HEADER = TRUE; > Failed to make batch statement: Received an argument of invalid type for > column "varint". Expected: , Got: > ; (descriptor 'bit_length' requires a 'int' object but received a > 'long') > {code} > Importing without prepared statements, {{WITH HEADER = TRUE AND > PREPAREDSTATEMENTS = False}} works without problems. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13408) Cqlsh COPY FROM fails to parse varints
[ https://issues.apache.org/jira/browse/CASSANDRA-13408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefania updated CASSANDRA-13408: - Description: CQLSH COPY FROM is failing to import varints. At least for 3.11: {code} cat test.csv id,varint -2147483648,-9223372036854775808 2147483647,9223372036854775807 CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; CREATE TABLE test ( id int PRIMARY KEY , varint varint ); COPY test FROM 'test.csv' WITH HEADER = TRUE; Failed to make batch statement: Received an argument of invalid type for column "varint". Expected: , Got: ; (descriptor 'bit_length' requires a 'int' object but received a 'long') {code} Importing without prepared statements, {{WITH HEADER = TRUE AND PREPAREDSTATEMENTS = False}} works without problems. was: CQLSH COPY FROM is failing to import varints. At least for 3.11: {code} cat test.csv id,varint -2147483648,-9223372036854775808 2147483647,9223372036854775807 CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; CREATE TABLE test ( id int PRIMARY KEY , varint varint ); COPY test FROM 'test.csv' WITH HEADER = TRUE; Failed to make batch statement: Received an argument of invalid type for column "varint". Expected: , Got: ; (descriptor 'bit_length' requires a 'int' o bject but received a 'long') {code} Importing without prepared statements, {{WITH HEADER = TRUE AND PREPAREDSTATEMENTS = False}} works without problems. > Cqlsh COPY FROM fails to parse varints > -- > > Key: CASSANDRA-13408 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13408 > Project: Cassandra > Issue Type: Bug > Components: Tools >Reporter: Stefania >Assignee: Stefania > > CQLSH COPY FROM is failing to import varints. At least for 3.11: > {code} > cat test.csv > id,varint > -2147483648,-9223372036854775808 > 2147483647,9223372036854775807 > CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE test ( id int PRIMARY KEY , varint varint ); > COPY test FROM 'test.csv' WITH HEADER = TRUE; > Failed to make batch statement: Received an argument of invalid type for > column "varint". Expected: , Got: > ; (descriptor 'bit_length' requires a 'int' object but received a > 'long') > {code} > Importing without prepared statements, {{WITH HEADER = TRUE AND > PREPAREDSTATEMENTS = False}} works without problems. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
cassandra git commit: Add documentation for ideal consistency level metrics.
Repository: cassandra Updated Branches: refs/heads/trunk bce0aa180 -> 2ba06310d Add documentation for ideal consistency level metrics. Patch by Ariel Weisberg; Reviewed by Jason Brown for CASSANDRA-13289 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2ba06310 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2ba06310 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2ba06310 Branch: refs/heads/trunk Commit: 2ba06310daee2e4a84b1f9d78f8445f2951055b7 Parents: bce0aa1 Author: Ariel Weisberg Authored: Mon Apr 3 18:48:34 2017 -0400 Committer: Ariel Weisberg Committed: Tue Apr 4 19:34:27 2017 -0400 -- doc/source/operating/metrics.rst | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ba06310/doc/source/operating/metrics.rst -- diff --git a/doc/source/operating/metrics.rst b/doc/source/operating/metrics.rst index 6e1b212..dcf82bc 100644 --- a/doc/source/operating/metrics.rst +++ b/doc/source/operating/metrics.rst @@ -138,7 +138,7 @@ Keyspace Metrics Each keyspace in Cassandra has metrics responsible for tracking its state and performance. -These metrics are the same as the ``Table Metrics`` above, only they are aggregated at the Keyspace level. +Most of these metrics are the same as the ``Table Metrics`` above, only they are aggregated at the Keyspace level. The keyspace specific metrics are specified in the table below. Reported name format: @@ -148,6 +148,14 @@ Reported name format: **JMX MBean** ``org.apache.cassandra.metrics:type=Keyspace scope= name=`` + +=== == === +NameType Description +=== == === +WriteFailedIdeaCL CounterNumber of writes that failed to achieve the configured ideal consistency level or 0 if none is configured +IdealCLWriteLatency LatencyCoordinator latency of writes at the configured ideal consistency level. No values are recorded if ideal consistency level is not configured +=== == === + ThreadPool Metrics ^^
[jira] [Commented] (CASSANDRA-13224) testall failure in org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized
[ https://issues.apache.org/jira/browse/CASSANDRA-13224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15956039#comment-15956039 ] Paulo Motta commented on CASSANDRA-13224: - It seems that the flaky tests [PendingRepairManagerTest|http://cassci.datastax.com/view/trunk/job/trunk_testall/lastCompletedBuild/testReport/org.apache.cassandra.db.compaction/PendingRepairManagerTest/history/] (CASSANDRA-13207, CASSANDRA-13248) and [CompactionStrategyManagerPendingRepairTest|http://cassci.datastax.com/view/trunk/job/trunk_testall/lastCompletedBuild/testReport/org.apache.cassandra.db.compaction/CompactionStrategyManagerPendingRepairTest/history/] (this and CASSANDRA-13206) have all a common root cause: {noformat} DEBUG [CompactionExecutor:4] 2017-02-20 15:10:45,045 Removing compaction strategy for pending repair c0921d40-f77e-11e6-9d70-e9c36734696d on ks_1487603444905.tbl {noformat} Which seems to be caused by a race with auto-compactions triggered by flush, so the simple fix is to just disable autocompaction during these tests. I managed to reproduce this with [this multiplexer run|https://cassci.datastax.com/job/pauloricardomg-testall-multiplex/4/] and fixed by disabling autocompaction during tests: [fixed multiplexer run|https://cassci.datastax.com/job/pauloricardomg-testall-multiplex/5/] Besides this, I also aborted transactions created by {{PendingRepairManager.getNextBackgroundTask}} after the assertions since they are causing {{LEAK DETECTED}} errors. I am assuming (and hoping) you haven't started working on this yet so if you haven't done so would you mind reviewing this [~bdeggleston]? Otherwise I'm happy to review your patch if you already have one in place. Thanks! ||trunk|| |[branch|https://github.com/apache/cassandra/compare/trunk...pauloricardomg:trunk-13224]| |[testall|http://cassci.datastax.com/view/Dev/view/paulomotta/job/pauloricardomg-trunk-13224-testall/lastCompletedBuild/testReport/]| > testall failure in > org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized > --- > > Key: CASSANDRA-13224 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13224 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Sean McCarthy >Assignee: Blake Eggleston > Labels: test-failure, testall > Attachments: > TEST-org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.log > > > example failure: > http://cassci.datastax.com/job/trunk_testall/1407/testReport/org.apache.cassandra.db.compaction/CompactionStrategyManagerPendingRepairTest/cleanupCompactionFinalized > {code} > Stacktrace > junit.framework.AssertionFailedError: > at > org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized(CompactionStrategyManagerPendingRepairTest.java:235) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13224) testall failure in org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized
[ https://issues.apache.org/jira/browse/CASSANDRA-13224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Paulo Motta updated CASSANDRA-13224: Status: Patch Available (was: Open) > testall failure in > org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized > --- > > Key: CASSANDRA-13224 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13224 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Sean McCarthy >Assignee: Blake Eggleston > Labels: test-failure, testall > Attachments: > TEST-org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.log > > > example failure: > http://cassci.datastax.com/job/trunk_testall/1407/testReport/org.apache.cassandra.db.compaction/CompactionStrategyManagerPendingRepairTest/cleanupCompactionFinalized > {code} > Stacktrace > junit.framework.AssertionFailedError: > at > org.apache.cassandra.db.compaction.CompactionStrategyManagerPendingRepairTest.cleanupCompactionFinalized(CompactionStrategyManagerPendingRepairTest.java:235) > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13388: --- Resolution: Fixed Fix Version/s: (was: 3.11.x) (was: 4.x) (was: 3.0.x) (was: 2.2.x) 4.0 3.11.0 3.0.13 2.2.10 2.1.18 Status: Resolved (was: Ready to Commit) Committed circle.yml as {{d718d421f9e5850c24517da56a8a603755517d02}} Contributors wishing to use it for testall just need to link their github accounts to circleci. > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.1.18, 2.2.10, 3.0.13, 3.11.0, 4.0 > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[12/15] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0efb392b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0efb392b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0efb392b Branch: refs/heads/cassandra-3.0 Commit: 0efb392bc07f7a2df96a73048e0cbf2ffa73cf1f Parents: 2f1ab4a fbb061b Author: Jeff Jirsa Authored: Tue Apr 4 14:30:13 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[03/15] cassandra git commit: Add circle.yml for easier developer build testing
Add circle.yml for easier developer build testing Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-13388 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d718d421 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d718d421 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d718d421 Branch: refs/heads/trunk Commit: d718d421f9e5850c24517da56a8a603755517d02 Parents: 301f7c5 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:17 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:29:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d718d421/circle.yml -- diff --git a/circle.yml b/circle.yml new file mode 100644 index 000..f0df312 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + java: +version: 'oraclejdk8' + +test: + pre: +- sudo ifconfig lo:1 127.0.0.2 up +- sudo ifconfig lo:2 127.0.0.3 up +- sudo ifconfig lo:3 127.0.0.4 up +- sudo ifconfig lo:4 127.0.0.5 up +- ant build + + override: +- ant test + post: +- mkdir -p $CIRCLE_TEST_REPORTS/junit/ +- cp ./build/test/output/*.xml $CIRCLE_TEST_REPORTS/junit/
[07/15] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbb061be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbb061be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbb061be Branch: refs/heads/cassandra-2.2 Commit: fbb061be6c6e832c13da448bdb7e86e2e1fdba75 Parents: a79cc98 d718d42 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:45 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:01 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[10/15] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0efb392b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0efb392b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0efb392b Branch: refs/heads/trunk Commit: 0efb392bc07f7a2df96a73048e0cbf2ffa73cf1f Parents: 2f1ab4a fbb061b Author: Jeff Jirsa Authored: Tue Apr 4 14:30:13 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[04/15] cassandra git commit: Add circle.yml for easier developer build testing
Add circle.yml for easier developer build testing Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-13388 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d718d421 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d718d421 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d718d421 Branch: refs/heads/cassandra-3.0 Commit: d718d421f9e5850c24517da56a8a603755517d02 Parents: 301f7c5 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:17 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:29:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d718d421/circle.yml -- diff --git a/circle.yml b/circle.yml new file mode 100644 index 000..f0df312 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + java: +version: 'oraclejdk8' + +test: + pre: +- sudo ifconfig lo:1 127.0.0.2 up +- sudo ifconfig lo:2 127.0.0.3 up +- sudo ifconfig lo:3 127.0.0.4 up +- sudo ifconfig lo:4 127.0.0.5 up +- ant build + + override: +- ant test + post: +- mkdir -p $CIRCLE_TEST_REPORTS/junit/ +- cp ./build/test/output/*.xml $CIRCLE_TEST_REPORTS/junit/
[05/15] cassandra git commit: Add circle.yml for easier developer build testing
Add circle.yml for easier developer build testing Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-13388 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d718d421 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d718d421 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d718d421 Branch: refs/heads/cassandra-3.11 Commit: d718d421f9e5850c24517da56a8a603755517d02 Parents: 301f7c5 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:17 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:29:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d718d421/circle.yml -- diff --git a/circle.yml b/circle.yml new file mode 100644 index 000..f0df312 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + java: +version: 'oraclejdk8' + +test: + pre: +- sudo ifconfig lo:1 127.0.0.2 up +- sudo ifconfig lo:2 127.0.0.3 up +- sudo ifconfig lo:3 127.0.0.4 up +- sudo ifconfig lo:4 127.0.0.5 up +- ant build + + override: +- ant test + post: +- mkdir -p $CIRCLE_TEST_REPORTS/junit/ +- cp ./build/test/output/*.xml $CIRCLE_TEST_REPORTS/junit/
[14/15] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1a3466e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a3466e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a3466e4 Branch: refs/heads/trunk Commit: 1a3466e439618fe8004734fcd3a2b3aef42725c9 Parents: be96c28 0efb392 Author: Jeff Jirsa Authored: Tue Apr 4 14:30:29 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:32 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[06/15] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbb061be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbb061be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbb061be Branch: refs/heads/trunk Commit: fbb061be6c6e832c13da448bdb7e86e2e1fdba75 Parents: a79cc98 d718d42 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:45 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:01 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[11/15] cassandra git commit: Merge branch 'cassandra-2.2' into cassandra-3.0
Merge branch 'cassandra-2.2' into cassandra-3.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0efb392b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0efb392b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0efb392b Branch: refs/heads/cassandra-3.11 Commit: 0efb392bc07f7a2df96a73048e0cbf2ffa73cf1f Parents: 2f1ab4a fbb061b Author: Jeff Jirsa Authored: Tue Apr 4 14:30:13 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[13/15] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1a3466e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1a3466e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1a3466e4 Branch: refs/heads/cassandra-3.11 Commit: 1a3466e439618fe8004734fcd3a2b3aef42725c9 Parents: be96c28 0efb392 Author: Jeff Jirsa Authored: Tue Apr 4 14:30:29 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:32 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[02/15] cassandra git commit: Add circle.yml for easier developer build testing
Add circle.yml for easier developer build testing Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-13388 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d718d421 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d718d421 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d718d421 Branch: refs/heads/cassandra-2.2 Commit: d718d421f9e5850c24517da56a8a603755517d02 Parents: 301f7c5 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:17 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:29:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d718d421/circle.yml -- diff --git a/circle.yml b/circle.yml new file mode 100644 index 000..f0df312 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + java: +version: 'oraclejdk8' + +test: + pre: +- sudo ifconfig lo:1 127.0.0.2 up +- sudo ifconfig lo:2 127.0.0.3 up +- sudo ifconfig lo:3 127.0.0.4 up +- sudo ifconfig lo:4 127.0.0.5 up +- ant build + + override: +- ant test + post: +- mkdir -p $CIRCLE_TEST_REPORTS/junit/ +- cp ./build/test/output/*.xml $CIRCLE_TEST_REPORTS/junit/
[09/15] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbb061be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbb061be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbb061be Branch: refs/heads/cassandra-3.11 Commit: fbb061be6c6e832c13da448bdb7e86e2e1fdba75 Parents: a79cc98 d718d42 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:45 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:01 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[08/15] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fbb061be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fbb061be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fbb061be Branch: refs/heads/cassandra-3.0 Commit: fbb061be6c6e832c13da448bdb7e86e2e1fdba75 Parents: a79cc98 d718d42 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:45 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:01 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[01/15] cassandra git commit: Add circle.yml for easier developer build testing
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 301f7c5b7 -> d718d421f refs/heads/cassandra-2.2 a79cc9840 -> fbb061be6 refs/heads/cassandra-3.0 2f1ab4a42 -> 0efb392bc refs/heads/cassandra-3.11 be96c2840 -> 1a3466e43 refs/heads/trunk 5d8b5cce4 -> bce0aa180 Add circle.yml for easier developer build testing Patch by Jeff Jirsa; Reviewed by Jason Brown for CASSANDRA-13388 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d718d421 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d718d421 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d718d421 Branch: refs/heads/cassandra-2.1 Commit: d718d421f9e5850c24517da56a8a603755517d02 Parents: 301f7c5 Author: Jeff Jirsa Authored: Tue Apr 4 14:29:17 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:29:17 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d718d421/circle.yml -- diff --git a/circle.yml b/circle.yml new file mode 100644 index 000..f0df312 --- /dev/null +++ b/circle.yml @@ -0,0 +1,17 @@ +machine: + java: +version: 'oraclejdk8' + +test: + pre: +- sudo ifconfig lo:1 127.0.0.2 up +- sudo ifconfig lo:2 127.0.0.3 up +- sudo ifconfig lo:3 127.0.0.4 up +- sudo ifconfig lo:4 127.0.0.5 up +- ant build + + override: +- ant test + post: +- mkdir -p $CIRCLE_TEST_REPORTS/junit/ +- cp ./build/test/output/*.xml $CIRCLE_TEST_REPORTS/junit/
[15/15] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bce0aa18 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bce0aa18 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bce0aa18 Branch: refs/heads/trunk Commit: bce0aa180f3ce2d5d30105a2975115f16ad89cc2 Parents: 5d8b5cc 1a3466e Author: Jeff Jirsa Authored: Tue Apr 4 14:30:43 2017 -0700 Committer: Jeff Jirsa Committed: Tue Apr 4 14:30:46 2017 -0700 -- circle.yml | 17 + 1 file changed, 17 insertions(+) --
[jira] [Commented] (CASSANDRA-13151) Unicode unittest fail
[ https://issues.apache.org/jira/browse/CASSANDRA-13151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955822#comment-15955822 ] Jay Zhuang commented on CASSANDRA-13151: Thanks Alex for the fix. Verified the change locally and it works fine. +1 A few minor comments, or further improvement questions: 1. How about change {{Charset.forName("UTF-8")}} to {{StandardCharsets.UTF_8}}? at least to consistency with [StopWordFactory.java|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/index/sasi/analyzer/filter/StopWordFactory.java#L79]. 2. There're other {{InputStreamReader}} without set the coding, will they also be problems? 3. Maybe add an unittest to set the Locale and test this? 4. Nit: remove unused import {{java.util.Locale}} > Unicode unittest fail > - > > Key: CASSANDRA-13151 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13151 > Project: Cassandra > Issue Type: Bug >Reporter: Jay Zhuang >Assignee: Alex Petrov > > Following unittests are failed in 3.11 and trunk(4.0) branch > {noformat} > SASIIndexTest.testUnicodeSupport > StandardAnalyzerTest.testTokenizationJaJp1 > StandardAnalyzerTest.testTokenizationJaJp2 > StandardAnalyzerTest.testTokenizationRuRu1 > StandardAnalyzerTest.testTokenizationZnTw1 > {noformat} > It works fine on my local mac, but not linux server. I guess it's related to > Unicode setting. Does anyone have any idea on that? (could it be related to > CASSANDRA-11077, CASSANDRA-11431?) > Here are the failure details > {noformat} > $ ant testsome -Dtest.name=org.apache.cassandra.index.sasi.SASIIndexTest > -Dtest.methods=testUnicodeSupport > ... > [junit] Testcase: > testUnicodeSupport(org.apache.cassandra.index.sasi.SASIIndexTest): > FAILED > [junit] [] > [junit] junit.framework.AssertionFailedError: [] > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1159) > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1122) > {noformat} > {noformat} > $ ant test -Dtest.name=StandardAnalyzerTest > ... > [junit] Testcase: > testTokenizationJaJp1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<210> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<210> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp1(StandardAnalyzerTest.java:85) > [junit] > [junit] > [junit] Testcase: > testTokenizationJaJp2(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<57> but was:<9> > [junit] junit.framework.AssertionFailedError: expected:<57> but was:<9> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp2(StandardAnalyzerTest.java:104) > [junit] > [junit] > [junit] Testcase: > testTokenizationRuRu1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<456> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<456> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationRuRu1(StandardAnalyzerTest.java:120) > [junit] > [junit] > [junit] Testcase: > testTokenizationZnTw1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<963> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<963> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationZnTw1(StandardAnalyzerTest.java:136) > [junit] > [junit] > [junit] Test > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest FAILED > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Brown updated CASSANDRA-13388: Status: Ready to Commit (was: Awaiting Feedback) > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-12728) Handling partially written hint files
[ https://issues.apache.org/jira/browse/CASSANDRA-12728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955588#comment-15955588 ] Jeff Jirsa edited comment on CASSANDRA-12728 at 4/4/17 8:34 PM: Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. || Branch || Testall || Dtest|| | [3.0|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.0-12728] | [testall on circle|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-3.0-12728] | | | [3.11|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.11-12728] |[testall on circle|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-3.11-12728] | | | [trunk|https://github.com/jeffjirsa/cassandra/commits/cassandra-12728] | [testall on circle|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-12728] | | (CI links coming soon) was (Author: jjirsa): Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. || Branch || Testall || Dtest|| | [3.0|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.0-12728] | | | | [3.11|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.11-12728] | | | | [trunk|https://github.com/jeffjirsa/cassandra/commits/cassandra-12728] | | | (CI links coming soon) > Handling partially written hint files > - > > Key: CASSANDRA-12728 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12728 > Project: Cassandra > Issue Type: Bug >Reporter: Sharvanath Pathak >Assignee: Garvit Juniwal > Labels: lhf > Attachments: CASSANDRA-12728.patch > > > {noformat} > ERROR [HintsDispatcher:1] 2016-09-28 17:44:43,397 > HintsDispatchExecutor.java:225 - Failed to dispatch hints file > d5d7257c-9f81-49b2-8633-6f9bda6e3dea-1474892654160-1.hints: file is corrupted > ({}) > org.apache.cassandra.io.FSReadError: java.io.EOFException > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:282) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:252) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHints(HintsDispatcher.java:156) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHintsAndAwait(HintsDispatcher.java:137) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:119) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:91) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:259) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199) > [apache-cassandra-3.0.6.jar:3.0.6] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_77] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_77] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] > Caused by: java.io.EOFException: null > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:68) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:60) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hint
[jira] [Comment Edited] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955708#comment-15955708 ] Jeff Jirsa edited comment on CASSANDRA-13388 at 4/4/17 8:18 PM: I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/76 (all green) {quote} Your build ran 2359 tests in junit with 0 failures Slowest test: org.apache.cassandra.utils.IntegerIntervalsTest testSetAddMultiThread (took 51.57 seconds). {quote} - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} This is completely free, and works on github push without. Any objections to getting {{circle.yml}} into the repo? was (Author: jjirsa): I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/76 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} This is completely free, and works on github push without. Any objections to getting {{circle.yml}} into the repo? > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955708#comment-15955708 ] Jeff Jirsa edited comment on CASSANDRA-13388 at 4/4/17 8:18 PM: I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/76 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} This is completely free, and works on github push without. Any objections to getting {{circle.yml}} into the repo? was (Author: jjirsa): I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} This is completely free, and works on github push without. Any objections to getting {{circle.yml}} into the repo? > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955721#comment-15955721 ] Nate McCall commented on CASSANDRA-13388: - Super cool! Thanks, [~jjirsa]! Glad to have another free option. > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Brown updated CASSANDRA-13388: Reviewer: Jason Brown > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955719#comment-15955719 ] Jason Brown commented on CASSANDRA-13388: - I'm +1 on committing the circle build file, and I'll leave it to your discretion on the travis file. > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955708#comment-15955708 ] Jeff Jirsa edited comment on CASSANDRA-13388 at 4/4/17 7:56 PM: I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} This is completely free, and works on github push without. Any objections to getting {{circle.yml}} into the repo? was (Author: jjirsa): I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13404) Hostname verification for client-to-node encryption
[ https://issues.apache.org/jira/browse/CASSANDRA-13404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955710#comment-15955710 ] Jason Brown commented on CASSANDRA-13404: - To back up and add a bit more context (for myself, if anything), where do you want to add the additional hostname verification? Can you explain the specific behavior you're looking to add? The attached patch adds hostname verification on the server-side, where we listen for client connections. Adding hostname verification to the server-side of a TLS connection doesn't make much sense without requiring client auth, correct? Further, this would require the database server to know *all* of the possible peers that would want to connect to it, before the process starts. Please let me know if I'm misunderstanding something here. Also, I've spoken with the netty developers, and they said netty currently does not support (in either netty 4.0 or 4.1) the ability to perform hostname verification on the server side (either openssl or jdk ssl). Thus, I'm not sure how you verified your patch behaves correctly. > Hostname verification for client-to-node encryption > --- > > Key: CASSANDRA-13404 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13404 > Project: Cassandra > Issue Type: New Feature >Reporter: Jan Karlsson >Assignee: Jan Karlsson > Fix For: 4.x > > Attachments: 13404-trunk.txt > > > Similarily to CASSANDRA-9220, Cassandra should support hostname verification > for client-node connections. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955708#comment-15955708 ] Jeff Jirsa commented on CASSANDRA-13388: I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75: {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13388) Add hosted CI config files (such as Circle and TravisCI) for easier developer testing
[ https://issues.apache.org/jira/browse/CASSANDRA-13388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955708#comment-15955708 ] Jeff Jirsa edited comment on CASSANDRA-13388 at 4/4/17 7:55 PM: I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75 {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} was (Author: jjirsa): I've been using the {{circle.yml}} recently - for example CASSANDRA-13410 - A successful CI run looks like this: https://circleci.com/gh/jeffjirsa/cassandra/77 (all green) - A failed CI run looks like https://circleci.com/gh/jeffjirsa/cassandra/75: {quote} Your build ran 2980 tests with 1 failure testDroppedMessages - org.apache.cassandra.net.MessagingServiceTest {quote} > Add hosted CI config files (such as Circle and TravisCI) for easier developer > testing > - > > Key: CASSANDRA-13388 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13388 > Project: Cassandra > Issue Type: Improvement > Components: Testing >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa > Fix For: 2.2.x, 3.0.x, 3.11.x, 4.x > > Attachments: circle.yml, travis.yml > > > We currently require unit tests and dtests to accept a patch, but it's not > easy for most contributors to actually execute these tests in a way that's > visible for the reviewer / other JIRA users. > We should push some standard config files into the various branches to > facilitate easier testing. > I propose we start with TravisCI and CircleCI, because: > - Travis has limited free support for developers working on OSS projects, and > is already an accepted vendor at the ASF (apparently the ASF pays for 30 > concurrent tests already), and > - CircleCI is also free for developers working on OSS projects, and has > slightly more flexibility than Travis in terms of the number of free workers > and durations. > Both are enabled by pushing a single YAML file into each branch to configure > jobs, and require each individual developer who WANTS to run tests to link > their github account to the vendor. Developers who don't want to use this > functionality can simply ignore it - they're effectively no-ops for anyone > who's not already using those services. > Are there any others we should consider including? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13410) nodetool upgradesstables/scrub/compact ignores system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-13410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955684#comment-15955684 ] Jeff Jirsa commented on CASSANDRA-13410: Reviewer: ignore the circle.yml commit, it's only there to enable me to run unit tests. The single line patch applies to all 3 versions cleanly. > nodetool upgradesstables/scrub/compact ignores system tables > > > Key: CASSANDRA-13410 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13410 > Project: Cassandra > Issue Type: Bug >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa >Priority: Minor > Fix For: 3.0.x, 3.11.x, 4.x > > > CASSANDRA-11627 changed the behavior of nodetool commands that work across > all keyspaces. Sometimes it's OK (not compacting system.peers when you call > compact probably isn't going to anger anyone), but sometimes it's not > (disableautocompaction, flush, upgradesstables, etc). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13410) nodetool upgradesstables/scrub/compact ignores system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-13410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeff Jirsa updated CASSANDRA-13410: --- Status: Patch Available (was: Open) > nodetool upgradesstables/scrub/compact ignores system tables > > > Key: CASSANDRA-13410 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13410 > Project: Cassandra > Issue Type: Bug >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa >Priority: Minor > Fix For: 3.0.x, 3.11.x, 4.x > > > CASSANDRA-11627 changed the behavior of nodetool commands that work across > all keyspaces. Sometimes it's OK (not compacting system.peers when you call > compact probably isn't going to anger anyone), but sometimes it's not > (disableautocompaction, flush, upgradesstables, etc). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13410) nodetool upgradesstables/scrub/compact ignores system tables
[ https://issues.apache.org/jira/browse/CASSANDRA-13410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955674#comment-15955674 ] Jeff Jirsa commented on CASSANDRA-13410: || branch || utests || dtests || | [3.0|https://github.com/jeffjirsa/cassandra/tree/cassandra-3.0-13410] | [testall|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-3.0-13410] | [dtest|http://cassci.datastax.com/job/jeffjirsa-cassandra-3.0-13410-dtest/] | | [3.11|https://github.com/jeffjirsa/cassandra/tree/cassandra-3.11-13410] | [testall|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-3.11-13410] | [dtest|http://cassci.datastax.com/job/jeffjirsa-cassandra-3.11-13410-dtest/] | | [trunk|https://github.com/jeffjirsa/cassandra/tree/cassandra-13410] | [testall|https://circleci.com/gh/jeffjirsa/cassandra/tree/cassandra-13410] | [dtest|http://cassci.datastax.com/job/jeffjirsa-cassandra-13410-dtest/] | > nodetool upgradesstables/scrub/compact ignores system tables > > > Key: CASSANDRA-13410 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13410 > Project: Cassandra > Issue Type: Bug >Reporter: Jeff Jirsa >Assignee: Jeff Jirsa >Priority: Minor > Fix For: 3.0.x, 3.11.x, 4.x > > > CASSANDRA-11627 changed the behavior of nodetool commands that work across > all keyspaces. Sometimes it's OK (not compacting system.peers when you call > compact probably isn't going to anger anyone), but sometimes it's not > (disableautocompaction, flush, upgradesstables, etc). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13289) Make it possible to monitor an ideal consistency level separate from actual consistency level
[ https://issues.apache.org/jira/browse/CASSANDRA-13289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955660#comment-15955660 ] Jason Brown edited comment on CASSANDRA-13289 at 4/4/17 7:28 PM: - [~aweisberg] +1 to the updated docs was (Author: jasobrown): [~aweisberg] +1 > Make it possible to monitor an ideal consistency level separate from actual > consistency level > - > > Key: CASSANDRA-13289 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13289 > Project: Cassandra > Issue Type: New Feature > Components: Core >Reporter: Ariel Weisberg >Assignee: Ariel Weisberg > Fix For: 4.0 > > > As an operator there are several issues related to multi-datacenter > replication and consistency you may want to have more information on from > your production database. > For instance. If your application writes at LOCAL_QUORUM how often are those > writes failing to achieve EACH_QUORUM at other data centers. If you failed > your application over to one of those data centers roughly how inconsistent > might it be given the number of writes that didn't propagate since the last > incremental repair? > You might also want to know roughly what the latency of writes would be if > you switched to a different consistency level. For instance you are writing > at LOCAL_QUORUM and want to know what would happen if you switched to > EACH_QUORUM. > The proposed change is to allow an ideal_consistency_level to be specified in > cassandra.yaml as well as get/set via JMX. If no ideal consistency level is > specified no additional tracking is done. > if an ideal consistency level is specified then the > {{AbstractWriteResponesHandler}} will contain a delegate WriteResponseHandler > that tracks whether the ideal consistency level is met before a write times > out. It also tracks the latency for achieving the ideal CL of successful > writes. > These two metrics would be reported on a per keyspace basis. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13289) Make it possible to monitor an ideal consistency level separate from actual consistency level
[ https://issues.apache.org/jira/browse/CASSANDRA-13289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955660#comment-15955660 ] Jason Brown commented on CASSANDRA-13289: - [~aweisberg] +1 > Make it possible to monitor an ideal consistency level separate from actual > consistency level > - > > Key: CASSANDRA-13289 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13289 > Project: Cassandra > Issue Type: New Feature > Components: Core >Reporter: Ariel Weisberg >Assignee: Ariel Weisberg > Fix For: 4.0 > > > As an operator there are several issues related to multi-datacenter > replication and consistency you may want to have more information on from > your production database. > For instance. If your application writes at LOCAL_QUORUM how often are those > writes failing to achieve EACH_QUORUM at other data centers. If you failed > your application over to one of those data centers roughly how inconsistent > might it be given the number of writes that didn't propagate since the last > incremental repair? > You might also want to know roughly what the latency of writes would be if > you switched to a different consistency level. For instance you are writing > at LOCAL_QUORUM and want to know what would happen if you switched to > EACH_QUORUM. > The proposed change is to allow an ideal_consistency_level to be specified in > cassandra.yaml as well as get/set via JMX. If no ideal consistency level is > specified no additional tracking is done. > if an ideal consistency level is specified then the > {{AbstractWriteResponesHandler}} will contain a delegate WriteResponseHandler > that tracks whether the ideal consistency level is met before a write times > out. It also tracks the latency for achieving the ideal CL of successful > writes. > These two metrics would be reported on a per keyspace basis. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-12728) Handling partially written hint files
[ https://issues.apache.org/jira/browse/CASSANDRA-12728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955605#comment-15955605 ] Garvit Juniwal commented on CASSANDRA-12728: [~jjirsa] Thanks a lot. Just yesterday I was looking into getting my cassandra repo back and make/test the suggested changes but inertia kept me back. I am also not familiar with the commit process. Your help is really appreciated. > Handling partially written hint files > - > > Key: CASSANDRA-12728 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12728 > Project: Cassandra > Issue Type: Bug >Reporter: Sharvanath Pathak >Assignee: Garvit Juniwal > Labels: lhf > Attachments: CASSANDRA-12728.patch > > > {noformat} > ERROR [HintsDispatcher:1] 2016-09-28 17:44:43,397 > HintsDispatchExecutor.java:225 - Failed to dispatch hints file > d5d7257c-9f81-49b2-8633-6f9bda6e3dea-1474892654160-1.hints: file is corrupted > ({}) > org.apache.cassandra.io.FSReadError: java.io.EOFException > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:282) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:252) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHints(HintsDispatcher.java:156) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHintsAndAwait(HintsDispatcher.java:137) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:119) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:91) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:259) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199) > [apache-cassandra-3.0.6.jar:3.0.6] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_77] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_77] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] > Caused by: java.io.EOFException: null > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:68) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:60) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.ChecksummedDataInput.readFully(ChecksummedDataInput.java:126) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:402) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.readBuffer(HintsReader.java:310) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNextInternal(HintsReader.java:301) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:278) > ~[apache-cassandra-3.0.6.jar:3.0.6] > ... 15 common frames omitted > {noformat} > We've found out that the hint file was truncated because there was a hard > reboot around the time of last write to the file. I think we basically need > to handle partially written hint files. Also, the CRC file does not exist in > this case (probably because it crashed while writing the hints file). May be > ignoring and cleaning up such partially written hint files can be a way to > fix this? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-12728) Handling partially written hint files
[ https://issues.apache.org/jira/browse/CASSANDRA-12728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955588#comment-15955588 ] Jeff Jirsa edited comment on CASSANDRA-12728 at 4/4/17 6:39 PM: Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. || Branch || Testall || Dtest|| | [3.0|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.0-12728] | | | | [3.11|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.11-12728] | | | | [trunk|https://github.com/jeffjirsa/cassandra/commits/cassandra-12728] | | | was (Author: jjirsa): Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. Will provide CI links upon completion. > Handling partially written hint files > - > > Key: CASSANDRA-12728 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12728 > Project: Cassandra > Issue Type: Bug >Reporter: Sharvanath Pathak >Assignee: Garvit Juniwal > Labels: lhf > Attachments: CASSANDRA-12728.patch > > > {noformat} > ERROR [HintsDispatcher:1] 2016-09-28 17:44:43,397 > HintsDispatchExecutor.java:225 - Failed to dispatch hints file > d5d7257c-9f81-49b2-8633-6f9bda6e3dea-1474892654160-1.hints: file is corrupted > ({}) > org.apache.cassandra.io.FSReadError: java.io.EOFException > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:282) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:252) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHints(HintsDispatcher.java:156) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHintsAndAwait(HintsDispatcher.java:137) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:119) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:91) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:259) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199) > [apache-cassandra-3.0.6.jar:3.0.6] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_77] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_77] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] > Caused by: java.io.EOFException: null > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:68) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:60) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.ChecksummedDataInput.readFully(ChecksummedDataInput.java:126) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:402) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.readBuffer(HintsReader.java:310) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNextInternal(HintsReader.java:301) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache
[jira] [Comment Edited] (CASSANDRA-12728) Handling partially written hint files
[ https://issues.apache.org/jira/browse/CASSANDRA-12728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955588#comment-15955588 ] Jeff Jirsa edited comment on CASSANDRA-12728 at 4/4/17 6:40 PM: Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. || Branch || Testall || Dtest|| | [3.0|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.0-12728] | | | | [3.11|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.11-12728] | | | | [trunk|https://github.com/jeffjirsa/cassandra/commits/cassandra-12728] | | | (CI links coming soon) was (Author: jjirsa): Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. || Branch || Testall || Dtest|| | [3.0|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.0-12728] | | | | [3.11|https://github.com/jeffjirsa/cassandra/commits/cassandra-3.11-12728] | | | | [trunk|https://github.com/jeffjirsa/cassandra/commits/cassandra-12728] | | | > Handling partially written hint files > - > > Key: CASSANDRA-12728 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12728 > Project: Cassandra > Issue Type: Bug >Reporter: Sharvanath Pathak >Assignee: Garvit Juniwal > Labels: lhf > Attachments: CASSANDRA-12728.patch > > > {noformat} > ERROR [HintsDispatcher:1] 2016-09-28 17:44:43,397 > HintsDispatchExecutor.java:225 - Failed to dispatch hints file > d5d7257c-9f81-49b2-8633-6f9bda6e3dea-1474892654160-1.hints: file is corrupted > ({}) > org.apache.cassandra.io.FSReadError: java.io.EOFException > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:282) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:252) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHints(HintsDispatcher.java:156) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHintsAndAwait(HintsDispatcher.java:137) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:119) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:91) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:259) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199) > [apache-cassandra-3.0.6.jar:3.0.6] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_77] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_77] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] > Caused by: java.io.EOFException: null > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:68) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:60) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.ChecksummedDataInput.readFully(ChecksummedDataInput.java:126) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:402) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$Buffers
[jira] [Commented] (CASSANDRA-12728) Handling partially written hint files
[ https://issues.apache.org/jira/browse/CASSANDRA-12728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955588#comment-15955588 ] Jeff Jirsa commented on CASSANDRA-12728: Given the delay on reviewing the patch (uploaded in October), I've gone ahead and made the tweaks suggested by Aleksey (at least the code changes, I'll add the NEWS entry on final commit) and kicked off CI. I'll keep the assignee and author on the commit as {{Garvit Juniwal}} to recognize his work/contribution. Will provide CI links upon completion. > Handling partially written hint files > - > > Key: CASSANDRA-12728 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12728 > Project: Cassandra > Issue Type: Bug >Reporter: Sharvanath Pathak >Assignee: Garvit Juniwal > Labels: lhf > Attachments: CASSANDRA-12728.patch > > > {noformat} > ERROR [HintsDispatcher:1] 2016-09-28 17:44:43,397 > HintsDispatchExecutor.java:225 - Failed to dispatch hints file > d5d7257c-9f81-49b2-8633-6f9bda6e3dea-1474892654160-1.hints: file is corrupted > ({}) > org.apache.cassandra.io.FSReadError: java.io.EOFException > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:282) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:252) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.AbstractIterator.hasNext(AbstractIterator.java:47) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHints(HintsDispatcher.java:156) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.sendHintsAndAwait(HintsDispatcher.java:137) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:119) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatcher.dispatch(HintsDispatcher.java:91) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.deliver(HintsDispatchExecutor.java:259) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:242) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.dispatch(HintsDispatchExecutor.java:220) > [apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsDispatchExecutor$DispatchHintsTask.run(HintsDispatchExecutor.java:199) > [apache-cassandra-3.0.6.jar:3.0.6] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_77] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > [na:1.8.0_77] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_77] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77] > Caused by: java.io.EOFException: null > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:68) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.io.util.RebufferingInputStream.readFully(RebufferingInputStream.java:60) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.ChecksummedDataInput.readFully(ChecksummedDataInput.java:126) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:402) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.readBuffer(HintsReader.java:310) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNextInternal(HintsReader.java:301) > ~[apache-cassandra-3.0.6.jar:3.0.6] > at > org.apache.cassandra.hints.HintsReader$BuffersIterator.computeNext(HintsReader.java:278) > ~[apache-cassandra-3.0.6.jar:3.0.6] > ... 15 common frames omitted > {noformat} > We've found out that the hint file was truncated because there was a hard > reboot around the time of last write to the file. I think we basically need > to handle partially written hint files. Also, the CRC file does not exist in > this case (probably because it crashed while writing the hints file). May be > ignoring and cleaning up such partially written hint files can be a way to > fix this? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13398) Skip mutating repairedAt of already repaired sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955525#comment-15955525 ] Paulo Motta commented on CASSANDRA-13398: - Given this is already somewhat addressed on trunk by skipping anticompaction altogether on full repair and there aren't real implications of this lack of consistency between {{repairedAt}} among replicas when full repair is run on versions before that, I will close this for now. Thanks all for the feedback! > Skip mutating repairedAt of already repaired sstables > - > > Key: CASSANDRA-13398 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13398 > Project: Cassandra > Issue Type: Bug >Reporter: Paulo Motta >Assignee: Paulo Motta >Priority: Minor > > CASSANDRA-13153 skips anticompaction on sstables already repaired, but we are > not skipping mutating repairedAt when the sstable is fully contained in the > repaired range. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13398) Skip mutating repairedAt of already repaired sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13398?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Paulo Motta updated CASSANDRA-13398: Resolution: Won't Fix Status: Resolved (was: Patch Available) > Skip mutating repairedAt of already repaired sstables > - > > Key: CASSANDRA-13398 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13398 > Project: Cassandra > Issue Type: Bug >Reporter: Paulo Motta >Assignee: Paulo Motta >Priority: Minor > > CASSANDRA-13153 skips anticompaction on sstables already repaired, but we are > not skipping mutating repairedAt when the sstable is fully contained in the > repaired range. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (CASSANDRA-13410) nodetool upgradesstables/scrub/compact ignores system tables
Jeff Jirsa created CASSANDRA-13410: -- Summary: nodetool upgradesstables/scrub/compact ignores system tables Key: CASSANDRA-13410 URL: https://issues.apache.org/jira/browse/CASSANDRA-13410 Project: Cassandra Issue Type: Bug Reporter: Jeff Jirsa Assignee: Jeff Jirsa Priority: Minor Fix For: 3.0.x, 3.11.x, 4.x CASSANDRA-11627 changed the behavior of nodetool commands that work across all keyspaces. Sometimes it's OK (not compacting system.peers when you call compact probably isn't going to anger anyone), but sometimes it's not (disableautocompaction, flush, upgradesstables, etc). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
cassandra git commit: Fix bad merge
Repository: cassandra Updated Branches: refs/heads/trunk 522ddba27 -> 5d8b5cce4 Fix bad merge Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5d8b5cce Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5d8b5cce Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5d8b5cce Branch: refs/heads/trunk Commit: 5d8b5cce497fc602f4bb55086aa5096fd51fe38b Parents: 522ddba Author: T Jake Luciani Authored: Tue Apr 4 12:56:57 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:56:57 2017 -0400 -- src/java/org/apache/cassandra/db/view/ViewBuilder.java | 9 - 1 file changed, 4 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5d8b5cce/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index af86392..fcb1e98 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -101,14 +101,13 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { -logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); -logger.trace("Running view builder for {}.{}", baseCfs.metadata.keyspace, view.name); +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.keyspace, view.name); UUID localHostId = SystemKeyspace.getLocalHostId(); String ksname = baseCfs.metadata.keyspace, viewName = view.name; if (SystemKeyspace.isViewBuilt(ksname, viewName)) { -logger.debug("View already marked built for {}.{}", baseCfs.metadata.ksName, view.name); +logger.debug("View already marked built for {}.{}", baseCfs.metadata.keyspace, view.name); if (!SystemKeyspace.isViewStatusReplicated(ksname, viewName)) updateDistributed(ksname, viewName, localHostId); return; @@ -120,7 +119,7 @@ public class ViewBuilder extends CompactionInfo.Holder Function> function; if (buildStatus == null) { -logger.debug("Starting new view build. flushing base table {}.{}", baseCfs.metadata.ksName, baseCfs.name); +logger.debug("Starting new view build. flushing base table {}.{}", baseCfs.metadata.keyspace, baseCfs.name); lastToken = null; //We don't track the generation number anymore since if a rebuild is stopped and @@ -132,7 +131,7 @@ public class ViewBuilder extends CompactionInfo.Holder else { lastToken = buildStatus.right; -logger.debug("Resuming view build from token {}. flushing base table {}.{}", lastToken, baseCfs.metadata.ksName, baseCfs.name); +logger.debug("Resuming view build from token {}. flushing base table {}.{}", lastToken, baseCfs.metadata.keyspace, baseCfs.name); } baseCfs.forceBlockingFlush();
[jira] [Updated] (CASSANDRA-13405) ViewBuilder can miss data due to sstable generation filter
[ https://issues.apache.org/jira/browse/CASSANDRA-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani updated CASSANDRA-13405: --- Resolution: Fixed Fix Version/s: 3.11.0 Status: Resolved (was: Patch Available) Committed {{2f1ab4a4248ac24c890e195cd5714ca54510c19a}} > ViewBuilder can miss data due to sstable generation filter > -- > > Key: CASSANDRA-13405 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13405 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: T Jake Luciani >Assignee: T Jake Luciani > Labels: materializedviews > Fix For: 3.0.13, 3.11.0 > > > The view builder for one MV is restarted when other MVs are added on the same > keyspace. There is an issue if compactions are running between these > restarts that can cause the view builder to skip data, since the builder > tracks the max sstable generation to filter by when it starts back up. > I don't see a need for this generation tracking across restarts, it only > needs to be tracked during a builders life (to avoid adding in newly > compacted data). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[4/8] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/449400be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/449400be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/449400be Branch: refs/heads/cassandra-3.11 Commit: 449400be30a591a69499f2f81dedefdbe0e14785 Parents: e8053dd 2f1ab4a Author: T Jake Luciani Authored: Tue Apr 4 12:46:12 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:46:12 2017 -0400 -- --
[1/8] cassandra git commit: Avoid filtering sstables based on generation when ViewBuilder restarts
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 828ca7cc9 -> 2f1ab4a42 refs/heads/cassandra-3.11 e8053dd8b -> be96c2840 refs/heads/trunk 633babf0f -> 522ddba27 Avoid filtering sstables based on generation when ViewBuilder restarts Patch by tjake; reviewed by Paulo Motta for CASSANDRA-13405 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2f1ab4a4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f1ab4a4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f1ab4a4 Branch: refs/heads/cassandra-3.0 Commit: 2f1ab4a4248ac24c890e195cd5714ca54510c19a Parents: 828ca7c Author: T Jake Luciani Authored: Mon Apr 3 13:56:04 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:45:52 2017 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 57 ++- .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 97 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c258203..d9a97ad 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/View.java -- diff --git a/src/java/org/apache/cassandra/db/view/View.java b/src/java/org/apache/cassandra/db/view/View.java index 845a6ab..e471349 100644 --- a/src/java/org/apache/cassandra/db/view/View.java +++ b/src/java/org/apache/cassandra/db/view/View.java @@ -208,7 +208,11 @@ public class View public ReadQuery getReadQuery() { if (query == null) +{ query = getSelectStatement().getQuery(QueryOptions.forInternalCalls(Collections.emptyList()), FBUtilities.nowInSeconds()); +logger.trace("View query: {}", rawSelect); +} + return query; } @@ -216,6 +220,7 @@ public class View { if (this.builder != null) { +logger.debug("Stopping current view builder due to schema change"); this.builder.stop(); this.builder = null; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index 37c0e7b..94314fd 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nullable; @@ -74,8 +75,12 @@ public class ViewBuilder extends CompactionInfo.Holder { AtomicLong noBase = new AtomicLong(Long.MAX_VALUE); ReadQuery selectQuery = view.getReadQuery(); + if (!selectQuery.selectsKey(key)) +{ +logger.trace("Skipping {}, view query filters", key); return; +} int nowInSec = FBUtilities.nowInSeconds(); SinglePartitionReadCommand command = view.getSelectStatement().internalReadForView(key, nowInSec); @@ -97,49 +102,41 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); String ksname = baseCfs.metadata.ksName, viewName = view.name; if (SystemKeyspace.isViewBuilt(ksname, viewName)) +{ +logger.debug("View already marked built for {}.{}", baseCfs.metadata.ksName, view.name); return; - +} Iterable> ranges = StorageService.instance.getLocalRanges(baseCfs.metadata.ksName); + final Pair buildStatus = SystemKeyspace.getViewBuildStatus(ksname, viewName); Token lastToken; Function> function; if (buildStatus == null) { -baseCfs
[2/8] cassandra git commit: Avoid filtering sstables based on generation when ViewBuilder restarts
Avoid filtering sstables based on generation when ViewBuilder restarts Patch by tjake; reviewed by Paulo Motta for CASSANDRA-13405 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2f1ab4a4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f1ab4a4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f1ab4a4 Branch: refs/heads/cassandra-3.11 Commit: 2f1ab4a4248ac24c890e195cd5714ca54510c19a Parents: 828ca7c Author: T Jake Luciani Authored: Mon Apr 3 13:56:04 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:45:52 2017 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 57 ++- .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 97 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c258203..d9a97ad 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/View.java -- diff --git a/src/java/org/apache/cassandra/db/view/View.java b/src/java/org/apache/cassandra/db/view/View.java index 845a6ab..e471349 100644 --- a/src/java/org/apache/cassandra/db/view/View.java +++ b/src/java/org/apache/cassandra/db/view/View.java @@ -208,7 +208,11 @@ public class View public ReadQuery getReadQuery() { if (query == null) +{ query = getSelectStatement().getQuery(QueryOptions.forInternalCalls(Collections.emptyList()), FBUtilities.nowInSeconds()); +logger.trace("View query: {}", rawSelect); +} + return query; } @@ -216,6 +220,7 @@ public class View { if (this.builder != null) { +logger.debug("Stopping current view builder due to schema change"); this.builder.stop(); this.builder = null; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index 37c0e7b..94314fd 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nullable; @@ -74,8 +75,12 @@ public class ViewBuilder extends CompactionInfo.Holder { AtomicLong noBase = new AtomicLong(Long.MAX_VALUE); ReadQuery selectQuery = view.getReadQuery(); + if (!selectQuery.selectsKey(key)) +{ +logger.trace("Skipping {}, view query filters", key); return; +} int nowInSec = FBUtilities.nowInSeconds(); SinglePartitionReadCommand command = view.getSelectStatement().internalReadForView(key, nowInSec); @@ -97,49 +102,41 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); String ksname = baseCfs.metadata.ksName, viewName = view.name; if (SystemKeyspace.isViewBuilt(ksname, viewName)) +{ +logger.debug("View already marked built for {}.{}", baseCfs.metadata.ksName, view.name); return; - +} Iterable> ranges = StorageService.instance.getLocalRanges(baseCfs.metadata.ksName); + final Pair buildStatus = SystemKeyspace.getViewBuildStatus(ksname, viewName); Token lastToken; Function> function; if (buildStatus == null) { -baseCfs.forceBlockingFlush(); -function = org.apache.cassandra.db.lifecycle.View.selectFunction(SSTableSet.CANONICAL); -int generation = Integer.MIN_VALUE; - -
[8/8] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/522ddba2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/522ddba2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/522ddba2 Branch: refs/heads/trunk Commit: 522ddba275926761bf2870b67664cf318401f158 Parents: 633babf be96c28 Author: T Jake Luciani Authored: Tue Apr 4 12:48:01 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:48:01 2017 -0400 -- CHANGES.txt | 5 +- src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 51 + .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 95 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/522ddba2/CHANGES.txt -- diff --cc CHANGES.txt index 3147eb9,1ca8733..ffe958d --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -70,7 -19,11 +70,10 @@@ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) * Address message coalescing regression (CASSANDRA-12676) Merged from 3.0: + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) - * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) * Legacy caching options can prevent 3.0 upgrade (CASSANDRA-13384) * Use the Kernel32 library to retrieve the PID on Windows and fix startup checks (CASSANDRA-1) http://git-wip-us.apache.org/repos/asf/cassandra/blob/522ddba2/src/java/org/apache/cassandra/db/view/View.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/522ddba2/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --cc src/java/org/apache/cassandra/db/view/ViewBuilder.java index 6250ae7,8e647ea..af86392 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@@ -96,9 -101,10 +101,10 @@@ public class ViewBuilder extends Compac public void run() { + logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); -logger.trace("Running view builder for {}.{}", baseCfs.metadata.ksName, view.name); +logger.trace("Running view builder for {}.{}", baseCfs.metadata.keyspace, view.name); UUID localHostId = SystemKeyspace.getLocalHostId(); -String ksname = baseCfs.metadata.ksName, viewName = view.name; +String ksname = baseCfs.metadata.keyspace, viewName = view.name; if (SystemKeyspace.isViewBuilt(ksname, viewName)) { @@@ -222,7 -225,8 +224,8 @@@ if (lastToken == null || range.contains(lastToken)) rangesLeft = 0; } + -return new CompactionInfo(baseCfs.metadata, OperationType.VIEW_BUILD, rangesLeft, rangesTotal, "ranges", compactionId); +return new CompactionInfo(baseCfs.metadata(), OperationType.VIEW_BUILD, rangesLeft, rangesTotal, "ranges", compactionId); } public void stop() http://git-wip-us.apache.org/repos/asf/cassandra/blob/522ddba2/test/unit/org/apache/cassandra/cql3/ViewTest.java --
[3/8] cassandra git commit: Avoid filtering sstables based on generation when ViewBuilder restarts
Avoid filtering sstables based on generation when ViewBuilder restarts Patch by tjake; reviewed by Paulo Motta for CASSANDRA-13405 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2f1ab4a4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2f1ab4a4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2f1ab4a4 Branch: refs/heads/trunk Commit: 2f1ab4a4248ac24c890e195cd5714ca54510c19a Parents: 828ca7c Author: T Jake Luciani Authored: Mon Apr 3 13:56:04 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:45:52 2017 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 57 ++- .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 97 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c258203..d9a97ad 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/View.java -- diff --git a/src/java/org/apache/cassandra/db/view/View.java b/src/java/org/apache/cassandra/db/view/View.java index 845a6ab..e471349 100644 --- a/src/java/org/apache/cassandra/db/view/View.java +++ b/src/java/org/apache/cassandra/db/view/View.java @@ -208,7 +208,11 @@ public class View public ReadQuery getReadQuery() { if (query == null) +{ query = getSelectStatement().getQuery(QueryOptions.forInternalCalls(Collections.emptyList()), FBUtilities.nowInSeconds()); +logger.trace("View query: {}", rawSelect); +} + return query; } @@ -216,6 +220,7 @@ public class View { if (this.builder != null) { +logger.debug("Stopping current view builder due to schema change"); this.builder.stop(); this.builder = null; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/2f1ab4a4/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index 37c0e7b..94314fd 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nullable; @@ -74,8 +75,12 @@ public class ViewBuilder extends CompactionInfo.Holder { AtomicLong noBase = new AtomicLong(Long.MAX_VALUE); ReadQuery selectQuery = view.getReadQuery(); + if (!selectQuery.selectsKey(key)) +{ +logger.trace("Skipping {}, view query filters", key); return; +} int nowInSec = FBUtilities.nowInSeconds(); SinglePartitionReadCommand command = view.getSelectStatement().internalReadForView(key, nowInSec); @@ -97,49 +102,41 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); String ksname = baseCfs.metadata.ksName, viewName = view.name; if (SystemKeyspace.isViewBuilt(ksname, viewName)) +{ +logger.debug("View already marked built for {}.{}", baseCfs.metadata.ksName, view.name); return; - +} Iterable> ranges = StorageService.instance.getLocalRanges(baseCfs.metadata.ksName); + final Pair buildStatus = SystemKeyspace.getViewBuildStatus(ksname, viewName); Token lastToken; Function> function; if (buildStatus == null) { -baseCfs.forceBlockingFlush(); -function = org.apache.cassandra.db.lifecycle.View.selectFunction(SSTableSet.CANONICAL); -int generation = Integer.MIN_VALUE; - -try
[7/8] cassandra git commit: Avoid filtering sstables based on generation when ViewBuilder restarts
Avoid filtering sstables based on generation when ViewBuilder restarts Patch by tjake; reviewed by Paulo Motta for CASSANDRA-13405 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be96c284 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be96c284 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be96c284 Branch: refs/heads/cassandra-3.11 Commit: be96c2840b0a6b269e22bde246b84e8ef4aeef69 Parents: 449400b Author: T Jake Luciani Authored: Mon Apr 3 13:56:04 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:46:42 2017 -0400 -- CHANGES.txt | 4 +- src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 52 + .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 95 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e63e266..1ca8733 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,7 @@ 3.11.0 * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) * cdc column addition strikes again (CASSANDRA-13382) - * Fix static column indexes (CASSANDRA-13277) + * Fix static column indexes (CASSANDRA-13277) * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) @@ -19,6 +19,8 @@ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) * Address message coalescing regression (CASSANDRA-12676) Merged from 3.0: + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/src/java/org/apache/cassandra/db/view/View.java -- diff --git a/src/java/org/apache/cassandra/db/view/View.java b/src/java/org/apache/cassandra/db/view/View.java index 0b8de9e..e4c6e02 100644 --- a/src/java/org/apache/cassandra/db/view/View.java +++ b/src/java/org/apache/cassandra/db/view/View.java @@ -197,7 +197,11 @@ public class View public ReadQuery getReadQuery() { if (query == null) +{ query = getSelectStatement().getQuery(QueryOptions.forInternalCalls(Collections.emptyList()), FBUtilities.nowInSeconds()); +logger.trace("View query: {}", rawSelect); +} + return query; } @@ -205,6 +209,7 @@ public class View { if (this.builder != null) { +logger.debug("Stopping current view builder due to schema change"); this.builder.stop(); this.builder = null; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index 9550e1e..8e647ea 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nullable; @@ -72,8 +73,12 @@ public class ViewBuilder extends CompactionInfo.Holder private void buildKey(DecoratedKey key) { ReadQuery selectQuery = view.getReadQuery(); + if (!selectQuery.selectsKey(key)) +{ +logger.trace("Skipping {}, view query filters", key); return; +} int nowInSec = FBUtilities.nowInSeconds(); SinglePartitionReadCommand command = view.getSelectStatement().internalReadForView(key, nowInSec); @@ -96,55 +101,46 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); logger.trace("Running view builder for {}.{}", baseCfs.me
[6/8] cassandra git commit: Avoid filtering sstables based on generation when ViewBuilder restarts
Avoid filtering sstables based on generation when ViewBuilder restarts Patch by tjake; reviewed by Paulo Motta for CASSANDRA-13405 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/be96c284 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/be96c284 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/be96c284 Branch: refs/heads/trunk Commit: be96c2840b0a6b269e22bde246b84e8ef4aeef69 Parents: 449400b Author: T Jake Luciani Authored: Mon Apr 3 13:56:04 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:46:42 2017 -0400 -- CHANGES.txt | 4 +- src/java/org/apache/cassandra/db/view/View.java | 5 ++ .../apache/cassandra/db/view/ViewBuilder.java | 52 + .../org/apache/cassandra/cql3/ViewTest.java | 59 4 files changed, 95 insertions(+), 25 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index e63e266..1ca8733 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,7 @@ 3.11.0 * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) * cdc column addition strikes again (CASSANDRA-13382) - * Fix static column indexes (CASSANDRA-13277) + * Fix static column indexes (CASSANDRA-13277) * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) @@ -19,6 +19,8 @@ * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) * Address message coalescing regression (CASSANDRA-12676) Merged from 3.0: + * Fix view builder bug that can filter out data on restart (CASSANDRA-13405) + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/src/java/org/apache/cassandra/db/view/View.java -- diff --git a/src/java/org/apache/cassandra/db/view/View.java b/src/java/org/apache/cassandra/db/view/View.java index 0b8de9e..e4c6e02 100644 --- a/src/java/org/apache/cassandra/db/view/View.java +++ b/src/java/org/apache/cassandra/db/view/View.java @@ -197,7 +197,11 @@ public class View public ReadQuery getReadQuery() { if (query == null) +{ query = getSelectStatement().getQuery(QueryOptions.forInternalCalls(Collections.emptyList()), FBUtilities.nowInSeconds()); +logger.trace("View query: {}", rawSelect); +} + return query; } @@ -205,6 +209,7 @@ public class View { if (this.builder != null) { +logger.debug("Stopping current view builder due to schema change"); this.builder.stop(); this.builder = null; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/be96c284/src/java/org/apache/cassandra/db/view/ViewBuilder.java -- diff --git a/src/java/org/apache/cassandra/db/view/ViewBuilder.java b/src/java/org/apache/cassandra/db/view/ViewBuilder.java index 9550e1e..8e647ea 100644 --- a/src/java/org/apache/cassandra/db/view/ViewBuilder.java +++ b/src/java/org/apache/cassandra/db/view/ViewBuilder.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.UUID; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import javax.annotation.Nullable; @@ -72,8 +73,12 @@ public class ViewBuilder extends CompactionInfo.Holder private void buildKey(DecoratedKey key) { ReadQuery selectQuery = view.getReadQuery(); + if (!selectQuery.selectsKey(key)) +{ +logger.trace("Skipping {}, view query filters", key); return; +} int nowInSec = FBUtilities.nowInSeconds(); SinglePartitionReadCommand command = view.getSelectStatement().internalReadForView(key, nowInSec); @@ -96,55 +101,46 @@ public class ViewBuilder extends CompactionInfo.Holder public void run() { +logger.debug("Starting view builder for {}.{}", baseCfs.metadata.ksName, view.name); logger.trace("Running view builder for {}.{}", baseCfs.metadata.ks
[5/8] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/449400be Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/449400be Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/449400be Branch: refs/heads/trunk Commit: 449400be30a591a69499f2f81dedefdbe0e14785 Parents: e8053dd 2f1ab4a Author: T Jake Luciani Authored: Tue Apr 4 12:46:12 2017 -0400 Committer: T Jake Luciani Committed: Tue Apr 4 12:46:12 2017 -0400 -- --
[jira] [Commented] (CASSANDRA-13398) Skip mutating repairedAt of already repaired sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955402#comment-15955402 ] Blake Eggleston commented on CASSANDRA-13398: - I haven't thought through the implications of modifying the repairedAt value of sstables, but you're pretty much guaranteed to never get a repaired sstable in anticompaction in trunk. For that reason, I'd say this shouldn't be applied to trunk. In fact, there's a bunch of vestigial stuff from the 'old' anticompaction context that isn't really used anymore and should probably be removed. I'll factor it out and open a jira when I have some time. > Skip mutating repairedAt of already repaired sstables > - > > Key: CASSANDRA-13398 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13398 > Project: Cassandra > Issue Type: Bug >Reporter: Paulo Motta >Assignee: Paulo Motta >Priority: Minor > > CASSANDRA-13153 skips anticompaction on sstables already repaired, but we are > not skipping mutating repairedAt when the sstable is fully contained in the > repaired range. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13409) Materialized Views: View cells are resurrected
[ https://issues.apache.org/jira/browse/CASSANDRA-13409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Duarte Nunes updated CASSANDRA-13409: - Summary: Materialized Views: View cells are resurrected (was: Materialized Views: View cells is resurrected) > Materialized Views: View cells are resurrected > -- > > Key: CASSANDRA-13409 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13409 > Project: Cassandra > Issue Type: Bug >Reporter: Duarte Nunes > > Consider the following commands, ran against trunk@0f054fee5c: > {code:xml} > echo "create keyspace ks WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1};" | bin/cqlsh > echo "create table ks.base (p int primary key, v1 int, v2 int) with > gc_grace_seconds = 1;" | bin/cqlsh > echo "create materialized view ks.my_view as select * from ks.base where p is > not null and v1 is not null primary key (v1, p);" | bin/cqlsh > echo "insert into ks.base (p, v1, v2) values (3, 1, 3) using timestamp 1;" | > bin/cqlsh > bin/nodetool flush ks my_view base > echo "delete from ks.base using timestamp 2 where p = 3;" | bin/cqlsh > bin/nodetool flush ks my_view base > echo "insert into ks.base (p, v1) values (3, 1) using timestamp 3;" | > bin/cqlsh > bin/nodetool flush ks my_view base > echo "select * from ks.my_view;" | bin/cqlsh > v1 | p | v2 > +---+ > 1 | 3 | 3 > (1 rows) > echo "select * from ks.base;" | bin/cqlsh > p | v1 | v2 > ---++-- > 3 | 1 | null > (1 rows) > {code} > As you can see, this incorrectly brings back cell v2=3. > There is one definitive problem and a potential one: > * Merging rows must be commutative. If a shadowable tombstone is applied > after a row tombstone, it will replace that tombstone; if a row marker > shadows the shadowable tombstone before the row containing the original data > is applied, then any dead cells in said data will be resurrected; > * Shadowable tombstones shouldn't compact away previous row tombstones or > even deleted cells; if the relevant tombstones have been GCed from the base > table, then a base table update won't carry them anymore (alongside a newer > row marker). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (CASSANDRA-13409) Materialized Views: View cells is resurrected
Duarte Nunes created CASSANDRA-13409: Summary: Materialized Views: View cells is resurrected Key: CASSANDRA-13409 URL: https://issues.apache.org/jira/browse/CASSANDRA-13409 Project: Cassandra Issue Type: Bug Reporter: Duarte Nunes Consider the following commands, ran against trunk@0f054fee5c: {code:xml} echo "create keyspace ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};" | bin/cqlsh echo "create table ks.base (p int primary key, v1 int, v2 int) with gc_grace_seconds = 1;" | bin/cqlsh echo "create materialized view ks.my_view as select * from ks.base where p is not null and v1 is not null primary key (v1, p);" | bin/cqlsh echo "insert into ks.base (p, v1, v2) values (3, 1, 3) using timestamp 1;" | bin/cqlsh bin/nodetool flush ks my_view base echo "delete from ks.base using timestamp 2 where p = 3;" | bin/cqlsh bin/nodetool flush ks my_view base echo "insert into ks.base (p, v1) values (3, 1) using timestamp 3;" | bin/cqlsh bin/nodetool flush ks my_view base echo "select * from ks.my_view;" | bin/cqlsh v1 | p | v2 +---+ 1 | 3 | 3 (1 rows) echo "select * from ks.base;" | bin/cqlsh p | v1 | v2 ---++-- 3 | 1 | null (1 rows) {code} As you can see, this incorrectly brings back cell v2=3. There is one definitive problem and a potential one: * Merging rows must be commutative. If a shadowable tombstone is applied after a row tombstone, it will replace that tombstone; if a row marker shadows the shadowable tombstone before the row containing the original data is applied, then any dead cells in said data will be resurrected; * Shadowable tombstones shouldn't compact away previous row tombstones or even deleted cells; if the relevant tombstones have been GCed from the base table, then a base table update won't carry them anymore (alongside a newer row marker). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13403) nodetool repair breaks SASI index
[ https://issues.apache.org/jira/browse/CASSANDRA-13403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955216#comment-15955216 ] Igor Novgorodov commented on CASSANDRA-13403: - Bingo! I've been able to reproduce this in the 5-node cluster. In 3-node test environment i wasn't able to do it in any way i tried. After i've added 2 more nodes to fully reflect production cluster environment - the index immediately broke after repair. Now i'll try to start with a closest-to-default config as possible to determine what's the cause... > nodetool repair breaks SASI index > - > > Key: CASSANDRA-13403 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13403 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: 3.10 >Reporter: Igor Novgorodov > > I've got table: > {code} > CREATE TABLE cservice.bulks_recipients ( > recipient text, > bulk_id uuid, > datetime_final timestamp, > datetime_sent timestamp, > request_id uuid, > status int, > PRIMARY KEY (recipient, bulk_id) > ) WITH CLUSTERING ORDER BY (bulk_id ASC) > AND bloom_filter_fp_chance = 0.01 > AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'} > AND comment = '' > AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'} > AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'} > AND crc_check_chance = 1.0 > AND dclocal_read_repair_chance = 0.1 > AND default_time_to_live = 0 > AND gc_grace_seconds = 864000 > AND max_index_interval = 2048 > AND memtable_flush_period_in_ms = 0 > AND min_index_interval = 128 > AND read_repair_chance = 0.0 > AND speculative_retry = '99PERCENTILE'; > CREATE CUSTOM INDEX bulk_recipients_bulk_id ON cservice.bulks_recipients > (bulk_id) USING 'org.apache.cassandra.index.sasi.SASIIndex'; > {code} > There are 11 rows in it: > {code} > > select * from bulks_recipients; > ... > (11 rows) > {code} > Let's query by index (all rows have the same *bulk_id*): > {code} > > select * from bulks_recipients where bulk_id = > > baa94815-e276-4ca4-adda-5b9734e6c4a5; > > > ... > (11 rows) > {code} > Ok, everything is fine. > Now i'm doing *nodetool repair --partitioner-range --job-threads 4 --full* on > each node in cluster sequentially. > After it finished: > {code} > > select * from bulks_recipients where bulk_id = > > baa94815-e276-4ca4-adda-5b9734e6c4a5; > ... > (2 rows) > {code} > Only two rows. > While the rows are actually there: > {code} > > select * from bulks_recipients; > ... > (11 rows) > {code} > If i issue an incremental repair on a random node, i can get like 7 rows > after index query. > Dropping index and recreating it fixes the issue. Is it a bug or am i doing > the repair the wrong way? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13339) java.nio.BufferOverflowException: null
[ https://issues.apache.org/jira/browse/CASSANDRA-13339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955197#comment-15955197 ] Jonas Borgström commented on CASSANDRA-13339: - I'm seeing this as well but I have no solid way to reproduce this except that it seems to happen a lot more frequent while "nodetool repair --full" is running. We're running a couple of selects and inserts per seconds using large-ish batches. But no counters or materialized views. > java.nio.BufferOverflowException: null > -- > > Key: CASSANDRA-13339 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13339 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Chris Richards > > I'm seeing the following exception running Cassandra 3.9 (with Netty updated > to 4.1.8.Final) running on a 2 node cluster. It would have been processing > around 50 queries/second at the time (mixture of > inserts/updates/selects/deletes) : there's a collection of tables (some with > counters some without) and a single materialized view. > ERROR [MutationStage-4] 2017-03-15 22:50:33,052 StorageProxy.java:1353 - > Failed to apply mutation locally : {} > java.nio.BufferOverflowException: null > at > org.apache.cassandra.io.util.DataOutputBufferFixed.doFlush(DataOutputBufferFixed.java:52) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.write(BufferedDataOutputStreamPlus.java:132) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.writeUnsignedVInt(BufferedDataOutputStreamPlus.java:262) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.rows.EncodingStats$Serializer.serialize(EncodingStats.java:233) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.SerializationHeader$Serializer.serializeForMessaging(SerializationHeader.java:380) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:122) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:89) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.partitions.PartitionUpdate$PartitionUpdateSerializer.serialize(PartitionUpdate.java:790) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.Mutation$MutationSerializer.serialize(Mutation.java:393) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.commitlog.CommitLog.add(CommitLog.java:279) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:493) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.Keyspace.apply(Keyspace.java:396) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.Mutation.applyFuture(Mutation.java:215) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:227) > ~[apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.db.Mutation.apply(Mutation.java:241) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.service.StorageProxy$8.runMayThrow(StorageProxy.java:1347) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.service.StorageProxy$LocalMutationRunnable.run(StorageProxy.java:2539) > [apache-cassandra-3.9.jar:3.9] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_121] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) > [apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) > [apache-cassandra-3.9.jar:3.9] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) > [apache-cassandra-3.9.jar:3.9] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] > and then again shortly afterwards > ERROR [MutationStage-3] 2017-03-15 23:27:36,198 StorageProxy.java:1353 - > Failed to apply mutation locally : {} > java.nio.BufferOverflowException: null > at > org.apache.cassandra.io.util.DataOutputBufferFixed.doFlush(DataOutputBufferFixed.java:52) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.write(BufferedDataOutputStreamPlus.java:132) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.io.util.BufferedDataOutputStreamPlus.writeUnsignedVInt(BufferedDataOutputStreamPlus.java:262) > ~[apache-cassandra-3.9.jar:3.9] > at > org.apache.cassandra.db.rows.Encodi
[jira] [Commented] (CASSANDRA-12929) Fix version check to enable streaming keep-alive
[ https://issues.apache.org/jira/browse/CASSANDRA-12929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955195#comment-15955195 ] Joel Knighton commented on CASSANDRA-12929: --- Thanks! It happens. > Fix version check to enable streaming keep-alive > > > Key: CASSANDRA-12929 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12929 > Project: Cassandra > Issue Type: Bug >Reporter: Michael Shuler >Assignee: Paulo Motta > Labels: dtest, test-failure > Fix For: 4.0 > > > example failure: > http://cassci.datastax.com/job/trunk_novnode_dtest/494/testReport/bootstrap_test/TestBootstrap/simple_bootstrap_test_small_keepalive_period > {noformat} > Error Message > Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']] > >> begin captured logging << > dtest: DEBUG: cluster ccm directory: /tmp/dtest-YmnyEI > dtest: DEBUG: Done setting configuration options: > { 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': 'true'} > cassandra.cluster: INFO: New Cassandra host > discovered > - >> end captured logging << - > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File "/home/automaton/cassandra-dtest/tools/decorators.py", line 46, in > wrapped > f(obj) > File "/home/automaton/cassandra-dtest/bootstrap_test.py", line 163, in > simple_bootstrap_test_small_keepalive_period > assert_bootstrap_state(self, node2, 'COMPLETED') > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 297, in > assert_bootstrap_state > assert_one(session, "SELECT bootstrapped FROM system.local WHERE > key='local'", [expected_bootstrap_state]) > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 130, in > assert_one > assert list_res == [expected], "Expected {} from {}, but got > {}".format([expected], query, list_res) > "Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']]\n >> begin > captured logging << \ndtest: DEBUG: cluster ccm > directory: /tmp/dtest-YmnyEI\ndtest: DEBUG: Done setting configuration > options:\n{ 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': > 'true'}\ncassandra.cluster: INFO: New Cassandra host datacenter1> discovered\n- >> end captured logging << > -" > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13151) Unicode unittest fail
[ https://issues.apache.org/jira/browse/CASSANDRA-13151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955183#comment-15955183 ] Alex Petrov edited comment on CASSANDRA-13151 at 4/4/17 2:23 PM: - Input reader charset wasn't being set correctly. Steps to reproduce: {code} LC_ALL=ru_RU ant test -Dtest.name=StandardAnalyzerTest {code} And a trivial patch: |[trunk|https://github.com/apache/cassandra/compare/trunk...ifesdjeen:13151-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-testall/]|[dtest|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-dtest/]| was (Author: ifesdjeen): Steps to reproduce: {code} LC_ALL=ru_RU ant test -Dtest.name=StandardAnalyzerTest {code} And a trivial patch: |[trunk|https://github.com/apache/cassandra/compare/trunk...ifesdjeen:13151-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-testall/]|[dtest|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-dtest/]| > Unicode unittest fail > - > > Key: CASSANDRA-13151 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13151 > Project: Cassandra > Issue Type: Bug >Reporter: Jay Zhuang >Assignee: Alex Petrov > > Following unittests are failed in 3.11 and trunk(4.0) branch > {noformat} > SASIIndexTest.testUnicodeSupport > StandardAnalyzerTest.testTokenizationJaJp1 > StandardAnalyzerTest.testTokenizationJaJp2 > StandardAnalyzerTest.testTokenizationRuRu1 > StandardAnalyzerTest.testTokenizationZnTw1 > {noformat} > It works fine on my local mac, but not linux server. I guess it's related to > Unicode setting. Does anyone have any idea on that? (could it be related to > CASSANDRA-11077, CASSANDRA-11431?) > Here are the failure details > {noformat} > $ ant testsome -Dtest.name=org.apache.cassandra.index.sasi.SASIIndexTest > -Dtest.methods=testUnicodeSupport > ... > [junit] Testcase: > testUnicodeSupport(org.apache.cassandra.index.sasi.SASIIndexTest): > FAILED > [junit] [] > [junit] junit.framework.AssertionFailedError: [] > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1159) > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1122) > {noformat} > {noformat} > $ ant test -Dtest.name=StandardAnalyzerTest > ... > [junit] Testcase: > testTokenizationJaJp1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<210> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<210> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp1(StandardAnalyzerTest.java:85) > [junit] > [junit] > [junit] Testcase: > testTokenizationJaJp2(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<57> but was:<9> > [junit] junit.framework.AssertionFailedError: expected:<57> but was:<9> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp2(StandardAnalyzerTest.java:104) > [junit] > [junit] > [junit] Testcase: > testTokenizationRuRu1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<456> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<456> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationRuRu1(StandardAnalyzerTest.java:120) > [junit] > [junit] > [junit] Testcase: > testTokenizationZnTw1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<963> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<963> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationZnTw1(StandardAnalyzerTest.java:136) > [junit] > [junit] > [junit] Test > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest FAILED > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13151) Unicode unittest fail
[ https://issues.apache.org/jira/browse/CASSANDRA-13151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Alex Petrov updated CASSANDRA-13151: Status: Patch Available (was: Open) > Unicode unittest fail > - > > Key: CASSANDRA-13151 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13151 > Project: Cassandra > Issue Type: Bug >Reporter: Jay Zhuang >Assignee: Alex Petrov > > Following unittests are failed in 3.11 and trunk(4.0) branch > {noformat} > SASIIndexTest.testUnicodeSupport > StandardAnalyzerTest.testTokenizationJaJp1 > StandardAnalyzerTest.testTokenizationJaJp2 > StandardAnalyzerTest.testTokenizationRuRu1 > StandardAnalyzerTest.testTokenizationZnTw1 > {noformat} > It works fine on my local mac, but not linux server. I guess it's related to > Unicode setting. Does anyone have any idea on that? (could it be related to > CASSANDRA-11077, CASSANDRA-11431?) > Here are the failure details > {noformat} > $ ant testsome -Dtest.name=org.apache.cassandra.index.sasi.SASIIndexTest > -Dtest.methods=testUnicodeSupport > ... > [junit] Testcase: > testUnicodeSupport(org.apache.cassandra.index.sasi.SASIIndexTest): > FAILED > [junit] [] > [junit] junit.framework.AssertionFailedError: [] > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1159) > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1122) > {noformat} > {noformat} > $ ant test -Dtest.name=StandardAnalyzerTest > ... > [junit] Testcase: > testTokenizationJaJp1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<210> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<210> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp1(StandardAnalyzerTest.java:85) > [junit] > [junit] > [junit] Testcase: > testTokenizationJaJp2(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<57> but was:<9> > [junit] junit.framework.AssertionFailedError: expected:<57> but was:<9> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp2(StandardAnalyzerTest.java:104) > [junit] > [junit] > [junit] Testcase: > testTokenizationRuRu1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<456> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<456> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationRuRu1(StandardAnalyzerTest.java:120) > [junit] > [junit] > [junit] Testcase: > testTokenizationZnTw1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<963> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<963> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationZnTw1(StandardAnalyzerTest.java:136) > [junit] > [junit] > [junit] Test > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest FAILED > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13151) Unicode unittest fail
[ https://issues.apache.org/jira/browse/CASSANDRA-13151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955183#comment-15955183 ] Alex Petrov commented on CASSANDRA-13151: - Steps to reproduce: {code} LC_ALL=ru_RU ant test -Dtest.name=StandardAnalyzerTest {code} And a trivial patch: |[trunk|https://github.com/apache/cassandra/compare/trunk...ifesdjeen:13151-trunk]|[testall|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-testall/]|[dtest|http://cassci.datastax.com/view/Dev/view/ifesdjeen/job/ifesdjeen-13151-trunk-dtest/]| > Unicode unittest fail > - > > Key: CASSANDRA-13151 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13151 > Project: Cassandra > Issue Type: Bug >Reporter: Jay Zhuang >Assignee: Alex Petrov > > Following unittests are failed in 3.11 and trunk(4.0) branch > {noformat} > SASIIndexTest.testUnicodeSupport > StandardAnalyzerTest.testTokenizationJaJp1 > StandardAnalyzerTest.testTokenizationJaJp2 > StandardAnalyzerTest.testTokenizationRuRu1 > StandardAnalyzerTest.testTokenizationZnTw1 > {noformat} > It works fine on my local mac, but not linux server. I guess it's related to > Unicode setting. Does anyone have any idea on that? (could it be related to > CASSANDRA-11077, CASSANDRA-11431?) > Here are the failure details > {noformat} > $ ant testsome -Dtest.name=org.apache.cassandra.index.sasi.SASIIndexTest > -Dtest.methods=testUnicodeSupport > ... > [junit] Testcase: > testUnicodeSupport(org.apache.cassandra.index.sasi.SASIIndexTest): > FAILED > [junit] [] > [junit] junit.framework.AssertionFailedError: [] > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1159) > [junit] at > org.apache.cassandra.index.sasi.SASIIndexTest.testUnicodeSupport(SASIIndexTest.java:1122) > {noformat} > {noformat} > $ ant test -Dtest.name=StandardAnalyzerTest > ... > [junit] Testcase: > testTokenizationJaJp1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<210> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<210> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp1(StandardAnalyzerTest.java:85) > [junit] > [junit] > [junit] Testcase: > testTokenizationJaJp2(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<57> but was:<9> > [junit] junit.framework.AssertionFailedError: expected:<57> but was:<9> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationJaJp2(StandardAnalyzerTest.java:104) > [junit] > [junit] > [junit] Testcase: > testTokenizationRuRu1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<456> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<456> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationRuRu1(StandardAnalyzerTest.java:120) > [junit] > [junit] > [junit] Testcase: > testTokenizationZnTw1(org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest): > FAILED > [junit] expected:<963> but was:<0> > [junit] junit.framework.AssertionFailedError: expected:<963> but was:<0> > [junit] at > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest.testTokenizationZnTw1(StandardAnalyzerTest.java:136) > [junit] > [junit] > [junit] Test > org.apache.cassandra.index.sasi.analyzer.StandardAnalyzerTest FAILED > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-12929) Fix version check to enable streaming keep-alive
[ https://issues.apache.org/jira/browse/CASSANDRA-12929?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955174#comment-15955174 ] Paulo Motta commented on CASSANDRA-12929: - doh, my bad too for not double checking test results and submitting testall (since it was so trivial). I remember we had the exact same problem back in CASSANDRA-11841. :( Fix and tests look good (triple checked). Committed fix as to trunk as {{633babf0f02fac56cad7bff03a4ff415feb38f39}}. Thanks! > Fix version check to enable streaming keep-alive > > > Key: CASSANDRA-12929 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12929 > Project: Cassandra > Issue Type: Bug >Reporter: Michael Shuler >Assignee: Paulo Motta > Labels: dtest, test-failure > Fix For: 4.0 > > > example failure: > http://cassci.datastax.com/job/trunk_novnode_dtest/494/testReport/bootstrap_test/TestBootstrap/simple_bootstrap_test_small_keepalive_period > {noformat} > Error Message > Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']] > >> begin captured logging << > dtest: DEBUG: cluster ccm directory: /tmp/dtest-YmnyEI > dtest: DEBUG: Done setting configuration options: > { 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': 'true'} > cassandra.cluster: INFO: New Cassandra host > discovered > - >> end captured logging << - > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File "/home/automaton/cassandra-dtest/tools/decorators.py", line 46, in > wrapped > f(obj) > File "/home/automaton/cassandra-dtest/bootstrap_test.py", line 163, in > simple_bootstrap_test_small_keepalive_period > assert_bootstrap_state(self, node2, 'COMPLETED') > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 297, in > assert_bootstrap_state > assert_one(session, "SELECT bootstrapped FROM system.local WHERE > key='local'", [expected_bootstrap_state]) > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 130, in > assert_one > assert list_res == [expected], "Expected {} from {}, but got > {}".format([expected], query, list_res) > "Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']]\n >> begin > captured logging << \ndtest: DEBUG: cluster ccm > directory: /tmp/dtest-YmnyEI\ndtest: DEBUG: Done setting configuration > options:\n{ 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': > 'true'}\ncassandra.cluster: INFO: New Cassandra host datacenter1> discovered\n- >> end captured logging << > -" > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Resolved] (CASSANDRA-12929) Fix version check to enable streaming keep-alive
[ https://issues.apache.org/jira/browse/CASSANDRA-12929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Paulo Motta resolved CASSANDRA-12929. - Resolution: Fixed > Fix version check to enable streaming keep-alive > > > Key: CASSANDRA-12929 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12929 > Project: Cassandra > Issue Type: Bug >Reporter: Michael Shuler >Assignee: Paulo Motta > Labels: dtest, test-failure > Fix For: 4.0 > > > example failure: > http://cassci.datastax.com/job/trunk_novnode_dtest/494/testReport/bootstrap_test/TestBootstrap/simple_bootstrap_test_small_keepalive_period > {noformat} > Error Message > Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']] > >> begin captured logging << > dtest: DEBUG: cluster ccm directory: /tmp/dtest-YmnyEI > dtest: DEBUG: Done setting configuration options: > { 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': 'true'} > cassandra.cluster: INFO: New Cassandra host > discovered > - >> end captured logging << - > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File "/home/automaton/cassandra-dtest/tools/decorators.py", line 46, in > wrapped > f(obj) > File "/home/automaton/cassandra-dtest/bootstrap_test.py", line 163, in > simple_bootstrap_test_small_keepalive_period > assert_bootstrap_state(self, node2, 'COMPLETED') > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 297, in > assert_bootstrap_state > assert_one(session, "SELECT bootstrapped FROM system.local WHERE > key='local'", [expected_bootstrap_state]) > File "/home/automaton/cassandra-dtest/tools/assertions.py", line 130, in > assert_one > assert list_res == [expected], "Expected {} from {}, but got > {}".format([expected], query, list_res) > "Expected [['COMPLETED']] from SELECT bootstrapped FROM system.local WHERE > key='local', but got [[u'IN_PROGRESS']]\n >> begin > captured logging << \ndtest: DEBUG: cluster ccm > directory: /tmp/dtest-YmnyEI\ndtest: DEBUG: Done setting configuration > options:\n{ 'num_tokens': None, 'phi_convict_threshold': 5, 'start_rpc': > 'true'}\ncassandra.cluster: INFO: New Cassandra host datacenter1> discovered\n- >> end captured logging << > -" > {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
cassandra git commit: Fix NPE after CASSANDRA-12929
Repository: cassandra Updated Branches: refs/heads/trunk 56ea68ef7 -> 633babf0f Fix NPE after CASSANDRA-12929 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/633babf0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/633babf0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/633babf0 Branch: refs/heads/trunk Commit: 633babf0f02fac56cad7bff03a4ff415feb38f39 Parents: 56ea68e Author: Yuki Morishita Authored: Tue Apr 4 16:56:14 2017 +0900 Committer: Paulo Motta Committed: Tue Apr 4 11:07:33 2017 -0300 -- src/java/org/apache/cassandra/streaming/StreamSession.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/633babf0/src/java/org/apache/cassandra/streaming/StreamSession.java -- diff --git a/src/java/org/apache/cassandra/streaming/StreamSession.java b/src/java/org/apache/cassandra/streaming/StreamSession.java index 4f9d273..bfae0bf 100644 --- a/src/java/org/apache/cassandra/streaming/StreamSession.java +++ b/src/java/org/apache/cassandra/streaming/StreamSession.java @@ -241,7 +241,7 @@ public class StreamSession implements IEndpointStateChangeSubscriber private boolean isKeepAliveSupported() { CassandraVersion peerVersion = Gossiper.instance.getReleaseVersion(peer); -return peerVersion.compareTo(STREAM_KEEP_ALIVE_VERSION) >= 0; +return peerVersion != null && peerVersion.compareTo(STREAM_KEEP_ALIVE_VERSION) >= 0; } /**
[jira] [Comment Edited] (CASSANDRA-13304) Add checksumming to the native protocol
[ https://issues.apache.org/jira/browse/CASSANDRA-13304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955168#comment-15955168 ] Alexandre Dutra edited comment on CASSANDRA-13304 at 4/4/17 2:06 PM: - bq. Do you think a ProtocolException is appropriate here, or do we need to define a new error response? In terms of semantics, yes, I think that {{ProtocolError}} is quite appropriate – at least more than {{ServerError}} (which is what is being currently sent). Unfortunately I don't think changing the error code would improve user experience as long as checksum is mandatory, because regardless of which exception you would throw, you would end up sending back a _checksummed_ error message, and the driver would fail to decode the error code anyway, and would eventually throw a {{DriverInternalException}} no matter what the error code actually is. (I played with it already, and that's what happens.) bq. I've pushed a commit with some renaming and a slight reorg of the packages, let me know what you think. lgtm thanks :) was (Author: adutra): bq. Do you think a ProtocolException is appropriate here, or do we need to define a new error response? In terms of semantics, yes, I think that {{ProtocolError}} is quite appropriate – at least more than {{ServerError}} (which is what is being currently sent). Unfortunately I don't think changing the error code would improve user experience as long as checksum is mandatory, because regardless of which exception you would throw, you would end up sending back a _checksummed_ error message, and the driver would fail to decode the error code anyway, and would eventually throw a {{DriverInternalException}} no matter what the error code actually is. (I played with it already, and that's what happens.) Anyways, if you go for {{ProtocolError}} you will also have to wrap it in a {{WrappedException}} in order to preserve the stream id. bq. I've pushed a commit with some renaming and a slight reorg of the packages, let me know what you think. lgtm thanks :) > Add checksumming to the native protocol > --- > > Key: CASSANDRA-13304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13304 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Michael Kjellman >Assignee: Michael Kjellman > Labels: client-impacting > Attachments: 13304_v1.diff > > > The native binary transport implementation doesn't include checksums. This > makes it highly susceptible to silently inserting corrupted data either due > to hardware issues causing bit flips on the sender/client side, C*/receiver > side, or network in between. > Attaching an implementation that makes checksum'ing mandatory (assuming both > client and server know about a protocol version that supports checksums) -- > and also adds checksumming to clients that request compression. > The serialized format looks something like this: > {noformat} > * 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 > * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Number of Compressed Chunks | Compressed Length (e1)/ > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * / Compressed Length cont. (e1) |Uncompressed Length (e1) / > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length cont. (e1)| CRC32 Checksum of Lengths (e1)| > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Checksum of Lengths cont. (e1)|Compressed Bytes (e1)+// > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | CRC32 Checksum (e1) || > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |Compressed Length (e2) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length (e2)| > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |CRC32 Checksum of Lengths (e2) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Compressed Bytes (e2) +// > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | CRC32 Checksum (e2) || > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |Compressed Length (en) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length (e
[jira] [Commented] (CASSANDRA-13304) Add checksumming to the native protocol
[ https://issues.apache.org/jira/browse/CASSANDRA-13304?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955168#comment-15955168 ] Alexandre Dutra commented on CASSANDRA-13304: - bq. Do you think a ProtocolException is appropriate here, or do we need to define a new error response? In terms of semantics, yes, I think that {{ProtocolError}} is quite appropriate – at least more than {{ServerError}} (which is what is being currently sent). Unfortunately I don't think changing the error code would improve user experience as long as checksum is mandatory, because regardless of which exception you would throw, you would end up sending back a _checksummed_ error message, and the driver would fail to decode the error code anyway, and would eventually throw a {{DriverInternalException}} no matter what the error code actually is. (I played with it already, and that's what happens.) Anyways, if you go for {{ProtocolError}} you will also have to wrap it in a {{WrappedException}} in order to preserve the stream id. bq. I've pushed a commit with some renaming and a slight reorg of the packages, let me know what you think. lgtm thanks :) > Add checksumming to the native protocol > --- > > Key: CASSANDRA-13304 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13304 > Project: Cassandra > Issue Type: Improvement > Components: Core >Reporter: Michael Kjellman >Assignee: Michael Kjellman > Labels: client-impacting > Attachments: 13304_v1.diff > > > The native binary transport implementation doesn't include checksums. This > makes it highly susceptible to silently inserting corrupted data either due > to hardware issues causing bit flips on the sender/client side, C*/receiver > side, or network in between. > Attaching an implementation that makes checksum'ing mandatory (assuming both > client and server know about a protocol version that supports checksums) -- > and also adds checksumming to clients that request compression. > The serialized format looks something like this: > {noformat} > * 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 > * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Number of Compressed Chunks | Compressed Length (e1)/ > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * / Compressed Length cont. (e1) |Uncompressed Length (e1) / > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length cont. (e1)| CRC32 Checksum of Lengths (e1)| > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Checksum of Lengths cont. (e1)|Compressed Bytes (e1)+// > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | CRC32 Checksum (e1) || > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |Compressed Length (e2) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length (e2)| > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |CRC32 Checksum of Lengths (e2) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Compressed Bytes (e2) +// > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | CRC32 Checksum (e2) || > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |Compressed Length (en) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Uncompressed Length (en)| > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * |CRC32 Checksum of Lengths (en) | > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | Compressed Bytes (en) +// > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > * | CRC32 Checksum (en) || > * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ > {noformat} > The first pass here adds checksums only to the actual contents of the frame > body itself (and doesn't actually checksum lengths and headers). While it > would be great to fully add checksuming across the entire protocol, the > proposed implementation will ensure we at least catch corrupted data and > likely protect ourselves pretty well anyways. > I didn't go to the tr
[jira] [Commented] (CASSANDRA-13405) ViewBuilder can miss data due to sstable generation filter
[ https://issues.apache.org/jira/browse/CASSANDRA-13405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955161#comment-15955161 ] T Jake Luciani commented on CASSANDRA-13405: Nits addressed running CI again > ViewBuilder can miss data due to sstable generation filter > -- > > Key: CASSANDRA-13405 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13405 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: T Jake Luciani >Assignee: T Jake Luciani > Labels: materializedviews > Fix For: 3.0.13 > > > The view builder for one MV is restarted when other MVs are added on the same > keyspace. There is an issue if compactions are running between these > restarts that can cause the view builder to skip data, since the builder > tracks the max sstable generation to filter by when it starts back up. > I don't see a need for this generation tracking across restarts, it only > needs to be tracked during a builders life (to avoid adding in newly > compacted data). -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13400) java.lang.ArithmeticException: / by zero when index is created on table with clustering columns only
[ https://issues.apache.org/jira/browse/CASSANDRA-13400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13400: --- Component/s: Local Write-Read Paths > java.lang.ArithmeticException: / by zero when index is created on table with > clustering columns only > > > Key: CASSANDRA-13400 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13400 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Andrés de la Peña >Assignee: Andrés de la Peña > Labels: 2i, secondary_index > Fix For: 3.0.13 > > > If we create an index over the clustering key of a table without regular > columns: > {code} > CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE k.t (pk text, ck text, PRIMARY KEY (pk, ck)); > INSERT INTO k.t (pk, ck) VALUES ( 'pk','ck'); > CREATE INDEX idx ON k.t(ck); > {code} > Then the following error index creation erros is logged: > {code} > INFO 10:19:34 Submitting index build of idx for data in > BigTableReader(path='/Users/adelapena/datastax/cassandra/data/data/k/t-ed3d6f90185611e7949f55d18a2e5858/mc-1-big-Data.db') > ERROR 10:19:34 Exception in thread Thread[SecondaryIndexManagement:2,5,main] > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:402) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.buildBlocking(CassandraIndex.java:723) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.lambda$getBuildIndexTask$5(CassandraIndex.java:693) > ~[main/:na] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_112] > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79) > [main/:na] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_112] > Caused by: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > ~[na:1.8.0_112] > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:398) > ~[main/:na] > ... 7 common frames omitted > Caused by: java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.index.SecondaryIndexManager.calculateIndexingPageSize(SecondaryIndexManager.java:629) > ~[main/:na] > at > org.apache.cassandra.index.SecondaryIndexBuilder.build(SecondaryIndexBuilder.java:62) > ~[main/:na] > at > org.apache.cassandra.db.compaction.CompactionManager$11.run(CompactionManager.java:1347) > ~[main/:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > ... 5 common frames omitted > {code} > Any further queries using the index will fail: > {code} > SELECT * FROM k.t where ck = 'ck'; > ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] > message="Operation failed - received 0 responses and 1 failures" > info={'failures': 1, 'received_responses': 0, 'required_responses': 1, > 'consistency': 'ONE'} > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13400) java.lang.ArithmeticException: / by zero when index is created on table with clustering columns only
[ https://issues.apache.org/jira/browse/CASSANDRA-13400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13400: --- Resolution: Fixed Fix Version/s: (was: 3.0.x) 3.0.13 Status: Resolved (was: Patch Available) Committed into 3.0 at 828ca7cc925de90c3883e935c66f7beec6fa9113 and merged into 3.11 and trunk > java.lang.ArithmeticException: / by zero when index is created on table with > clustering columns only > > > Key: CASSANDRA-13400 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13400 > Project: Cassandra > Issue Type: Bug >Reporter: Andrés de la Peña >Assignee: Andrés de la Peña > Labels: 2i, secondary_index > Fix For: 3.0.13 > > > If we create an index over the clustering key of a table without regular > columns: > {code} > CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE k.t (pk text, ck text, PRIMARY KEY (pk, ck)); > INSERT INTO k.t (pk, ck) VALUES ( 'pk','ck'); > CREATE INDEX idx ON k.t(ck); > {code} > Then the following error index creation erros is logged: > {code} > INFO 10:19:34 Submitting index build of idx for data in > BigTableReader(path='/Users/adelapena/datastax/cassandra/data/data/k/t-ed3d6f90185611e7949f55d18a2e5858/mc-1-big-Data.db') > ERROR 10:19:34 Exception in thread Thread[SecondaryIndexManagement:2,5,main] > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:402) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.buildBlocking(CassandraIndex.java:723) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.lambda$getBuildIndexTask$5(CassandraIndex.java:693) > ~[main/:na] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_112] > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79) > [main/:na] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_112] > Caused by: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > ~[na:1.8.0_112] > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:398) > ~[main/:na] > ... 7 common frames omitted > Caused by: java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.index.SecondaryIndexManager.calculateIndexingPageSize(SecondaryIndexManager.java:629) > ~[main/:na] > at > org.apache.cassandra.index.SecondaryIndexBuilder.build(SecondaryIndexBuilder.java:62) > ~[main/:na] > at > org.apache.cassandra.db.compaction.CompactionManager$11.run(CompactionManager.java:1347) > ~[main/:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > ... 5 common frames omitted > {code} > Any further queries using the index will fail: > {code} > SELECT * FROM k.t where ck = 'ck'; > ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] > message="Operation failed - received 0 responses and 1 failures" > info={'failures': 1, 'received_responses': 0, 'required_responses': 1, > 'consistency': 'ONE'} > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[5/6] cassandra git commit: Merge branch cassandra-3.0 into cassandra-3.11
Merge branch cassandra-3.0 into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e8053dd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e8053dd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e8053dd8 Branch: refs/heads/cassandra-3.11 Commit: e8053dd8b003839e23ca8953f42d8a660899d69e Parents: 6b87e49 828ca7c Author: Benjamin Lerer Authored: Tue Apr 4 14:28:51 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:28:51 2017 +0200 -- .../index/internal/CassandraIndexTest.java | 29 1 file changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e8053dd8/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java -- diff --cc test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java index 59d6860,6c309ac..bfe3c32 --- a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java +++ b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java @@@ -358,32 -358,34 +359,60 @@@ public class CassandraIndexTest extend } @Test +public void indexOnStaticColumn() throws Throwable +{ +Object[] row1 = row("k0", "c0", "s0"); +Object[] row2 = row("k0", "c1", "s0"); +Object[] row3 = row("k1", "c0", "s1"); +Object[] row4 = row("k1", "c1", "s1"); + +createTable("CREATE TABLE %s (k text, c text, s text static, PRIMARY KEY (k, c));"); +createIndex("CREATE INDEX sc_index on %s(s)"); + +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row1); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row2); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row3); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row4); + +assertRows(execute("SELECT * FROM %s WHERE s = ?", "s0"), row1, row2); +assertRows(execute("SELECT * FROM %s WHERE s = ?", "s1"), row3, row4); + +assertRows(execute("SELECT * FROM %s WHERE s = ? AND token(k) >= token(?)", "s0", "k0"), row1, row2); +assertRows(execute("SELECT * FROM %s WHERE s = ? AND token(k) >= token(?)", "s1", "k1"), row3, row4); + +assertEmpty(execute("SELECT * FROM %s WHERE s = ? AND token(k) < token(?)", "s0", "k0")); +assertEmpty(execute("SELECT * FROM %s WHERE s = ? AND token(k) < token(?)", "s1", "k1")); +} + +@Test + public void indexOnClusteringColumnWithoutRegularColumns() throws Throwable + { + Object[] row1 = row("k0", "c0"); + Object[] row2 = row("k0", "c1"); + Object[] row3 = row("k1", "c0"); + Object[] row4 = row("k1", "c1"); + String tableName = createTable("CREATE TABLE %s (k text, c text, PRIMARY KEY(k, c))"); + createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row1); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row2); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row3); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row4); + + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); + assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + + dropIndex("DROP INDEX %s.no_regulars_idx"); + createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + assertTrue(waitForIndex(keyspace(), tableName, "no_regulars_idx")); + + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); + assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + } + + @Test public void createIndexesOnMultipleMapDimensions() throws Throwable { Object[] row1 = row(0, 0, ImmutableMap.of("a", 10, "b", 20, "c", 30));
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/56ea68ef Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/56ea68ef Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/56ea68ef Branch: refs/heads/trunk Commit: 56ea68ef7240982f71b73238c7b1b0c9c3ba28ed Parents: 0f054fe e8053dd Author: Benjamin Lerer Authored: Tue Apr 4 14:30:25 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:30:25 2017 +0200 -- .../index/internal/CassandraIndexTest.java | 29 1 file changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/56ea68ef/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java --
[2/6] cassandra git commit: Fix 2i page size calculation when there are no regular columns
Fix 2i page size calculation when there are no regular columns patch by Andrés de la Peña; reviewed by Benjamin Lerer for CASSANDRA-13400 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/828ca7cc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/828ca7cc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/828ca7cc Branch: refs/heads/cassandra-3.11 Commit: 828ca7cc925de90c3883e935c66f7beec6fa9113 Parents: 462b9cf Author: Andrés de la Peña Authored: Tue Apr 4 14:23:19 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:23:19 2017 +0200 -- CHANGES.txt | 1 + .../cassandra/index/SecondaryIndexManager.java | 2 +- .../index/internal/CassandraIndexTest.java | 29 3 files changed, 31 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4126b07..c258203 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/src/java/org/apache/cassandra/index/SecondaryIndexManager.java -- diff --git a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java index d39b607..dd6dde4 100644 --- a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java +++ b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java @@ -623,7 +623,7 @@ public class SecondaryIndexManager implements IndexRegistry return DEFAULT_PAGE_SIZE; int columnsPerRow = baseCfs.metadata.partitionColumns().regulars.size(); -if (meanCellsPerPartition <= 0) +if (columnsPerRow <= 0) return DEFAULT_PAGE_SIZE; int meanRowsPerPartition = meanCellsPerPartition / columnsPerRow; http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java -- diff --git a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java index 937512d..6c309ac 100644 --- a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java +++ b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java @@ -47,6 +47,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; /** @@ -357,6 +358,34 @@ public class CassandraIndexTest extends CQLTester } @Test +public void indexOnClusteringColumnWithoutRegularColumns() throws Throwable +{ +Object[] row1 = row("k0", "c0"); +Object[] row2 = row("k0", "c1"); +Object[] row3 = row("k1", "c0"); +Object[] row4 = row("k1", "c1"); +String tableName = createTable("CREATE TABLE %s (k text, c text, PRIMARY KEY(k, c))"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row1); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row2); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row3); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row4); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + +dropIndex("DROP INDEX %s.no_regulars_idx"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); +assertTrue(waitForIndex(keyspace(), tableName, "no_regulars_idx")); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); +} + +@Test public void createIndexesOnMultipleMapDimensions() throws Throwable { Object[]
[4/6] cassandra git commit: Merge branch cassandra-3.0 into cassandra-3.11
Merge branch cassandra-3.0 into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e8053dd8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e8053dd8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e8053dd8 Branch: refs/heads/trunk Commit: e8053dd8b003839e23ca8953f42d8a660899d69e Parents: 6b87e49 828ca7c Author: Benjamin Lerer Authored: Tue Apr 4 14:28:51 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:28:51 2017 +0200 -- .../index/internal/CassandraIndexTest.java | 29 1 file changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e8053dd8/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java -- diff --cc test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java index 59d6860,6c309ac..bfe3c32 --- a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java +++ b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java @@@ -358,32 -358,34 +359,60 @@@ public class CassandraIndexTest extend } @Test +public void indexOnStaticColumn() throws Throwable +{ +Object[] row1 = row("k0", "c0", "s0"); +Object[] row2 = row("k0", "c1", "s0"); +Object[] row3 = row("k1", "c0", "s1"); +Object[] row4 = row("k1", "c1", "s1"); + +createTable("CREATE TABLE %s (k text, c text, s text static, PRIMARY KEY (k, c));"); +createIndex("CREATE INDEX sc_index on %s(s)"); + +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row1); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row2); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row3); +execute("INSERT INTO %s (k, c, s) VALUES (?, ?, ?)", row4); + +assertRows(execute("SELECT * FROM %s WHERE s = ?", "s0"), row1, row2); +assertRows(execute("SELECT * FROM %s WHERE s = ?", "s1"), row3, row4); + +assertRows(execute("SELECT * FROM %s WHERE s = ? AND token(k) >= token(?)", "s0", "k0"), row1, row2); +assertRows(execute("SELECT * FROM %s WHERE s = ? AND token(k) >= token(?)", "s1", "k1"), row3, row4); + +assertEmpty(execute("SELECT * FROM %s WHERE s = ? AND token(k) < token(?)", "s0", "k0")); +assertEmpty(execute("SELECT * FROM %s WHERE s = ? AND token(k) < token(?)", "s1", "k1")); +} + +@Test + public void indexOnClusteringColumnWithoutRegularColumns() throws Throwable + { + Object[] row1 = row("k0", "c0"); + Object[] row2 = row("k0", "c1"); + Object[] row3 = row("k1", "c0"); + Object[] row4 = row("k1", "c1"); + String tableName = createTable("CREATE TABLE %s (k text, c text, PRIMARY KEY(k, c))"); + createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row1); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row2); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row3); + execute("INSERT INTO %s (k, c) VALUES (?, ?)", row4); + + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); + assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + + dropIndex("DROP INDEX %s.no_regulars_idx"); + createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + assertTrue(waitForIndex(keyspace(), tableName, "no_regulars_idx")); + + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); + assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); + assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + } + + @Test public void createIndexesOnMultipleMapDimensions() throws Throwable { Object[] row1 = row(0, 0, ImmutableMap.of("a", 10, "b", 20, "c", 30));
[3/6] cassandra git commit: Fix 2i page size calculation when there are no regular columns
Fix 2i page size calculation when there are no regular columns patch by Andrés de la Peña; reviewed by Benjamin Lerer for CASSANDRA-13400 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/828ca7cc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/828ca7cc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/828ca7cc Branch: refs/heads/trunk Commit: 828ca7cc925de90c3883e935c66f7beec6fa9113 Parents: 462b9cf Author: Andrés de la Peña Authored: Tue Apr 4 14:23:19 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:23:19 2017 +0200 -- CHANGES.txt | 1 + .../cassandra/index/SecondaryIndexManager.java | 2 +- .../index/internal/CassandraIndexTest.java | 29 3 files changed, 31 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4126b07..c258203 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/src/java/org/apache/cassandra/index/SecondaryIndexManager.java -- diff --git a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java index d39b607..dd6dde4 100644 --- a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java +++ b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java @@ -623,7 +623,7 @@ public class SecondaryIndexManager implements IndexRegistry return DEFAULT_PAGE_SIZE; int columnsPerRow = baseCfs.metadata.partitionColumns().regulars.size(); -if (meanCellsPerPartition <= 0) +if (columnsPerRow <= 0) return DEFAULT_PAGE_SIZE; int meanRowsPerPartition = meanCellsPerPartition / columnsPerRow; http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java -- diff --git a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java index 937512d..6c309ac 100644 --- a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java +++ b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java @@ -47,6 +47,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; /** @@ -357,6 +358,34 @@ public class CassandraIndexTest extends CQLTester } @Test +public void indexOnClusteringColumnWithoutRegularColumns() throws Throwable +{ +Object[] row1 = row("k0", "c0"); +Object[] row2 = row("k0", "c1"); +Object[] row3 = row("k1", "c0"); +Object[] row4 = row("k1", "c1"); +String tableName = createTable("CREATE TABLE %s (k text, c text, PRIMARY KEY(k, c))"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row1); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row2); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row3); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row4); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + +dropIndex("DROP INDEX %s.no_regulars_idx"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); +assertTrue(waitForIndex(keyspace(), tableName, "no_regulars_idx")); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); +} + +@Test public void createIndexesOnMultipleMapDimensions() throws Throwable { Object[] row1 = r
[1/6] cassandra git commit: Fix 2i page size calculation when there are no regular columns
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 462b9cf63 -> 828ca7cc9 refs/heads/cassandra-3.11 6b87e49c3 -> e8053dd8b refs/heads/trunk 0f054fee5 -> 56ea68ef7 Fix 2i page size calculation when there are no regular columns patch by Andrés de la Peña; reviewed by Benjamin Lerer for CASSANDRA-13400 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/828ca7cc Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/828ca7cc Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/828ca7cc Branch: refs/heads/cassandra-3.0 Commit: 828ca7cc925de90c3883e935c66f7beec6fa9113 Parents: 462b9cf Author: Andrés de la Peña Authored: Tue Apr 4 14:23:19 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 14:23:19 2017 +0200 -- CHANGES.txt | 1 + .../cassandra/index/SecondaryIndexManager.java | 2 +- .../index/internal/CassandraIndexTest.java | 29 3 files changed, 31 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4126b07..c258203 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix 2i page size calculation when there are no regular columns (CASSANDRA-13400) * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/src/java/org/apache/cassandra/index/SecondaryIndexManager.java -- diff --git a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java index d39b607..dd6dde4 100644 --- a/src/java/org/apache/cassandra/index/SecondaryIndexManager.java +++ b/src/java/org/apache/cassandra/index/SecondaryIndexManager.java @@ -623,7 +623,7 @@ public class SecondaryIndexManager implements IndexRegistry return DEFAULT_PAGE_SIZE; int columnsPerRow = baseCfs.metadata.partitionColumns().regulars.size(); -if (meanCellsPerPartition <= 0) +if (columnsPerRow <= 0) return DEFAULT_PAGE_SIZE; int meanRowsPerPartition = meanCellsPerPartition / columnsPerRow; http://git-wip-us.apache.org/repos/asf/cassandra/blob/828ca7cc/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java -- diff --git a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java index 937512d..6c309ac 100644 --- a/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java +++ b/test/unit/org/apache/cassandra/index/internal/CassandraIndexTest.java @@ -47,6 +47,7 @@ import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; /** @@ -357,6 +358,34 @@ public class CassandraIndexTest extends CQLTester } @Test +public void indexOnClusteringColumnWithoutRegularColumns() throws Throwable +{ +Object[] row1 = row("k0", "c0"); +Object[] row2 = row("k0", "c1"); +Object[] row3 = row("k1", "c0"); +Object[] row4 = row("k1", "c1"); +String tableName = createTable("CREATE TABLE %s (k text, c text, PRIMARY KEY(k, c))"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); + +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row1); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row2); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row3); +execute("INSERT INTO %s (k, c) VALUES (?, ?)", row4); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +assertEmpty(execute("SELECT * FROM %s WHERE c = ?", "c3")); + +dropIndex("DROP INDEX %s.no_regulars_idx"); +createIndex("CREATE INDEX no_regulars_idx ON %s(c)"); +assertTrue(waitForIndex(keyspace(), tableName, "no_regulars_idx")); + +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c0"), row1, row3); +assertRowsIgnoringOrder(execute("SELECT * FROM %s WHERE c = ?", "c1"), row2, row4); +
[jira] [Commented] (CASSANDRA-13396) Cassandra 3.10: ClassCastException in ThreadAwareSecurityManager
[ https://issues.apache.org/jira/browse/CASSANDRA-13396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955071#comment-15955071 ] Anton Passiouk commented on CASSANDRA-13396: Happy to see that everybody seem to converge to a reasonable solution ;-) > Cassandra 3.10: ClassCastException in ThreadAwareSecurityManager > > > Key: CASSANDRA-13396 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13396 > Project: Cassandra > Issue Type: Bug >Reporter: Edward Capriolo >Priority: Minor > > https://www.mail-archive.com/user@cassandra.apache.org/msg51603.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13400) java.lang.ArithmeticException: / by zero when index is created on table with clustering columns only
[ https://issues.apache.org/jira/browse/CASSANDRA-13400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955067#comment-15955067 ] Benjamin Lerer commented on CASSANDRA-13400: +1 Thanks for the patch. > java.lang.ArithmeticException: / by zero when index is created on table with > clustering columns only > > > Key: CASSANDRA-13400 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13400 > Project: Cassandra > Issue Type: Bug >Reporter: Andrés de la Peña >Assignee: Andrés de la Peña > Labels: 2i, secondary_index > Fix For: 3.0.x > > > If we create an index over the clustering key of a table without regular > columns: > {code} > CREATE KEYSPACE k WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': 1}; > CREATE TABLE k.t (pk text, ck text, PRIMARY KEY (pk, ck)); > INSERT INTO k.t (pk, ck) VALUES ( 'pk','ck'); > CREATE INDEX idx ON k.t(ck); > {code} > Then the following error index creation erros is logged: > {code} > INFO 10:19:34 Submitting index build of idx for data in > BigTableReader(path='/Users/adelapena/datastax/cassandra/data/data/k/t-ed3d6f90185611e7949f55d18a2e5858/mc-1-big-Data.db') > ERROR 10:19:34 Exception in thread Thread[SecondaryIndexManagement:2,5,main] > java.lang.RuntimeException: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:402) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.buildBlocking(CassandraIndex.java:723) > ~[main/:na] > at > org.apache.cassandra.index.internal.CassandraIndex.lambda$getBuildIndexTask$5(CassandraIndex.java:693) > ~[main/:na] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_112] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > [na:1.8.0_112] > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79) > [main/:na] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_112] > Caused by: java.util.concurrent.ExecutionException: > java.lang.ArithmeticException: / by zero > at java.util.concurrent.FutureTask.report(FutureTask.java:122) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.get(FutureTask.java:192) > ~[na:1.8.0_112] > at > org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:398) > ~[main/:na] > ... 7 common frames omitted > Caused by: java.lang.ArithmeticException: / by zero > at > org.apache.cassandra.index.SecondaryIndexManager.calculateIndexingPageSize(SecondaryIndexManager.java:629) > ~[main/:na] > at > org.apache.cassandra.index.SecondaryIndexBuilder.build(SecondaryIndexBuilder.java:62) > ~[main/:na] > at > org.apache.cassandra.db.compaction.CompactionManager$11.run(CompactionManager.java:1347) > ~[main/:na] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_112] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_112] > ... 5 common frames omitted > {code} > Any further queries using the index will fail: > {code} > SELECT * FROM k.t where ck = 'ck'; > ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] > message="Operation failed - received 0 responses and 1 failures" > info={'failures': 1, 'received_responses': 0, 'required_responses': 1, > 'consistency': 'ONE'} > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Comment Edited] (CASSANDRA-13250) dtest failure in cqlsh_tests.cqlsh_tests.TestCqlsh.test_describe
[ https://issues.apache.org/jira/browse/CASSANDRA-13250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955055#comment-15955055 ] Andrés de la Peña edited comment on CASSANDRA-13250 at 4/4/17 12:14 PM: Closing as duplicate of [CASSANDRA-10520|https://issues.apache.org/jira/browse/CASSANDRA-10520]. was (Author: adelapena): Closing as duplicate of [CASSANDRA-11299|https://issues.apache.org/jira/browse/CASSANDRA-11299]. > dtest failure in cqlsh_tests.cqlsh_tests.TestCqlsh.test_describe > > > Key: CASSANDRA-13250 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13250 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Sean McCarthy >Assignee: Andrés de la Peña > Labels: dtest, test-failure > Attachments: node1_debug.log, node1_gc.log, node1.log > > > example failure: > http://cassci.datastax.com/job/trunk_offheap_dtest/430/testReport/cqlsh_tests.cqlsh_tests/TestCqlsh/test_describe > {code} > Error Message > Lists differ: ["CREATE KEYSPACE test WITH re... != ["CREATE KEYSPACE test > WITH re... > First differing element 11: > "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}" > "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}" > ["CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true;", >'CREATE TABLE test.test (', >'id int,', >'col int,', >'val text,', >'PRIMARY KEY (id, col)', >') WITH CLUSTERING ORDER BY (col ASC)', >'AND bloom_filter_fp_chance = 0.01', >"AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}", >"AND comment = ''", >"AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'}", > - "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}", > + "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}", > ? > + >'AND crc_check_chance = 1.0', >'AND dclocal_read_repair_chance = 0.1', >'AND default_time_to_live = 0', >'AND gc_grace_seconds = 864000', >'AND max_index_interval = 2048', >'AND memtable_flush_period_in_ms = 0', >'AND min_index_interval = 128', >'AND read_repair_chance = 0.0', >"AND speculative_retry = '99PERCENTILE';", >'CREATE INDEX test_val_idx ON test.test (val);', >'CREATE INDEX test_col_idx ON test.test (col);', >'CREATE TABLE test.users (', >'userid text PRIMARY KEY,', >'age int,', >'firstname text,', >'lastname text', >') WITH bloom_filter_fp_chance = 0.01', >"AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}", >"AND comment = ''", >"AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'}", > - "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}", > + "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}", > ? > + >'AND crc_check_chance = 1.0', >'AND dclocal_read_repair_chance = 0.1', >'AND default_time_to_live = 0', >'AND gc_grace_seconds = 864000', >'AND max_index_interval = 2048', >'AND memtable_flush_period_in_ms = 0', >'AND min_index_interval = 128', >'AND read_repair_chance = 0.0', >"AND speculative_retry = '99PERCENTILE';", >'CREATE INDEX myindex ON test.users (age);'] > {code}{code} > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 702, in test_describe > self.execute(cql="DESCRIBE KEYSPACE test", > expected_output=self.get_keyspace_output()) > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 1042, in execute > self.check_response(output, expected_output) > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 1049, in check_response > self.assertEqual(expected_lines, lines) > File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual >
[jira] [Resolved] (CASSANDRA-13250) dtest failure in cqlsh_tests.cqlsh_tests.TestCqlsh.test_describe
[ https://issues.apache.org/jira/browse/CASSANDRA-13250?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrés de la Peña resolved CASSANDRA-13250. --- Resolution: Duplicate Closing as duplicate of [CASSANDRA-11299|https://issues.apache.org/jira/browse/CASSANDRA-11299]. > dtest failure in cqlsh_tests.cqlsh_tests.TestCqlsh.test_describe > > > Key: CASSANDRA-13250 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13250 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Sean McCarthy >Assignee: Andrés de la Peña > Labels: dtest, test-failure > Attachments: node1_debug.log, node1_gc.log, node1.log > > > example failure: > http://cassci.datastax.com/job/trunk_offheap_dtest/430/testReport/cqlsh_tests.cqlsh_tests/TestCqlsh/test_describe > {code} > Error Message > Lists differ: ["CREATE KEYSPACE test WITH re... != ["CREATE KEYSPACE test > WITH re... > First differing element 11: > "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}" > "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}" > ["CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', > 'replication_factor': '1'} AND durable_writes = true;", >'CREATE TABLE test.test (', >'id int,', >'col int,', >'val text,', >'PRIMARY KEY (id, col)', >') WITH CLUSTERING ORDER BY (col ASC)', >'AND bloom_filter_fp_chance = 0.01', >"AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}", >"AND comment = ''", >"AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'}", > - "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}", > + "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}", > ? > + >'AND crc_check_chance = 1.0', >'AND dclocal_read_repair_chance = 0.1', >'AND default_time_to_live = 0', >'AND gc_grace_seconds = 864000', >'AND max_index_interval = 2048', >'AND memtable_flush_period_in_ms = 0', >'AND min_index_interval = 128', >'AND read_repair_chance = 0.0', >"AND speculative_retry = '99PERCENTILE';", >'CREATE INDEX test_val_idx ON test.test (val);', >'CREATE INDEX test_col_idx ON test.test (col);', >'CREATE TABLE test.users (', >'userid text PRIMARY KEY,', >'age int,', >'firstname text,', >'lastname text', >') WITH bloom_filter_fp_chance = 0.01', >"AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}", >"AND comment = ''", >"AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'}", > - "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'}", > + "AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor', 'min_compress_ratio': > '1.1'}", > ? > + >'AND crc_check_chance = 1.0', >'AND dclocal_read_repair_chance = 0.1', >'AND default_time_to_live = 0', >'AND gc_grace_seconds = 864000', >'AND max_index_interval = 2048', >'AND memtable_flush_period_in_ms = 0', >'AND min_index_interval = 128', >'AND read_repair_chance = 0.0', >"AND speculative_retry = '99PERCENTILE';", >'CREATE INDEX myindex ON test.users (age);'] > {code}{code} > Stacktrace > File "/usr/lib/python2.7/unittest/case.py", line 329, in run > testMethod() > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 702, in test_describe > self.execute(cql="DESCRIBE KEYSPACE test", > expected_output=self.get_keyspace_output()) > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 1042, in execute > self.check_response(output, expected_output) > File "/home/automaton/cassandra-dtest/cqlsh_tests/cqlsh_tests.py", line > 1049, in check_response > self.assertEqual(expected_lines, lines) > File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual > assertion_func(first, second, msg=msg) > File "/usr/lib/python2.7/unittest/case.py", line 742, in assertListEqual > self.assertSequenceEqual(list1, list2, msg, seq_type=list) > File "/usr/lib/py
[jira] [Commented] (CASSANDRA-13404) Hostname verification for client-to-node encryption
[ https://issues.apache.org/jira/browse/CASSANDRA-13404?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955039#comment-15955039 ] Jason Brown commented on CASSANDRA-13404: - I'll review this one, and will keep CASSANDRA-10735 in mind as I do. > Hostname verification for client-to-node encryption > --- > > Key: CASSANDRA-13404 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13404 > Project: Cassandra > Issue Type: New Feature >Reporter: Jan Karlsson >Assignee: Jan Karlsson > Fix For: 4.x > > Attachments: 13404-trunk.txt > > > Similarily to CASSANDRA-9220, Cassandra should support hostname verification > for client-node connections. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13404) Hostname verification for client-to-node encryption
[ https://issues.apache.org/jira/browse/CASSANDRA-13404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Brown updated CASSANDRA-13404: Reviewer: Jason Brown > Hostname verification for client-to-node encryption > --- > > Key: CASSANDRA-13404 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13404 > Project: Cassandra > Issue Type: New Feature >Reporter: Jan Karlsson >Assignee: Jan Karlsson > Fix For: 4.x > > Attachments: 13404-trunk.txt > > > Similarily to CASSANDRA-9220, Cassandra should support hostname verification > for client-node connections. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-11299) AssertionError when quering by secondary index
[ https://issues.apache.org/jira/browse/CASSANDRA-11299?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955035#comment-15955035 ] Andrés de la Peña commented on CASSANDRA-11299: --- Could you please provide the original sstables, before upgrading? You can send them to the email on my JIRA profile. > AssertionError when quering by secondary index > -- > > Key: CASSANDRA-11299 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11299 > Project: Cassandra > Issue Type: Bug > Environment: Cassandra 3.3 >Reporter: Michał Matłoka >Assignee: Andrés de la Peña > > Hi, > Recently we have upgraded from Cassandra 2.2.4 to 3.3. I have issues with one > table. When I try to query using any secondary index I get e.g. in cqlsh > {code} > Traceback (most recent call last): > File "/usr/bin/cqlsh.py", line 1249, in perform_simple_statement > result = future.result() > File > "/usr/share/cassandra/lib/cassandra-driver-internal-only-3.0.0-6af642d.zip/cassandra-driver-3.0.0-6af642d/cassandra/cluster.py", > line 3122, in result > raise self._final_exception > ReadFailure: code=1300 [Replica(s) failed to execute read] message="Operation > failed - received 0 responses and 1 failures" info={'failures': 1, > 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'} > {code} > Node logs shows then: > {code} > [[AWARN [SharedPool-Worker-2] 2016-03-03 00:47:01,679 > AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread > Thread[SharedPool-Worker-2,5,main]: {} > java.lang.AssertionError: null > at > org.apache.cassandra.index.internal.composites.CompositesSearcher$1Transform.findEntry(CompositesSearcher.java:225) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.index.internal.composites.CompositesSearcher$1Transform.applyToRow(CompositesSearcher.java:215) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:116) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:133) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:89) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.rows.UnfilteredRowIteratorSerializer.serialize(UnfilteredRowIteratorSerializer.java:79) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.partitions.UnfilteredPartitionIterators$Serializer.serialize(UnfilteredPartitionIterators.java:294) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.ReadResponse$LocalDataResponse.build(ReadResponse.java:134) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:127) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.ReadResponse$LocalDataResponse.(ReadResponse.java:123) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.ReadResponse.createDataResponse(ReadResponse.java:65) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.db.ReadCommand.createResponse(ReadCommand.java:292) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1789) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2457) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_66] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:164) > ~[apache-cassandra-3.3.0.jar:3.3.0] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:136) > [apache-cassandra-3.3.0.jar:3.3.0] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) > [apache-cassandra-3.3.0.jar:3.3.0] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66] > {code} > SStables are upgraded, I have tried repair and scrub. I have tried to rebuild > indexes, and even remove them and re-add them.It occurs on every cluster node. > Additionally I had seen in this table case where PRIMARY KEY was > duplicated!!! (there were two rows with same primary key, by seeing what > columns were set I can say one was older, and second was from newer query > which sets only a subset of columns) -- This message was se
[jira] [Comment Edited] (CASSANDRA-13346) Failed unregistering mbean during drop keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-13346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955004#comment-15955004 ] Andrew Efimov edited comment on CASSANDRA-13346 at 4/4/17 11:11 AM: {{TableMetrics.release}} does not release metric with name {{ViewReadTime}} because it is not created, but release method tries to remove this metric with NPE: {noformat} C* 3.10 org.apache.cassandra.metrics.TableMetrics: 669 // We do not want to capture view mutation specific metrics for a view // They only makes sense to capture on the base table if (cfs.metadata.isView()) { viewLockAcquireTime = null; viewReadTime = null; } else { viewLockAcquireTime = createTableTimer("ViewLockAcquireTime", cfs.keyspace.metric.viewLockAcquireTime); viewReadTime = createTableTimer("ViewReadTime", cfs.keyspace.metric.viewReadTime); } {noformat} was (Author: andrew efimov): {{TableMetrics.release}} does not release metric with name {{ViewReadTime}} because it is not created, but release method tries to remove this metric with NPE: {noformat} org.apache.cassandra.metrics.TableMetrics: 669 // We do not want to capture view mutation specific metrics for a view // They only makes sense to capture on the base table if (cfs.metadata.isView()) { viewLockAcquireTime = null; viewReadTime = null; } else { viewLockAcquireTime = createTableTimer("ViewLockAcquireTime", cfs.keyspace.metric.viewLockAcquireTime); viewReadTime = createTableTimer("ViewReadTime", cfs.keyspace.metric.viewReadTime); } {noformat} > Failed unregistering mbean during drop keyspace > --- > > Key: CASSANDRA-13346 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13346 > Project: Cassandra > Issue Type: Bug > Components: Materialized Views > Environment: Cassandra 3.9 >Reporter: Gábor Auth >Priority: Minor > Labels: lhf > > All node throw exceptions about materialized views during drop keyspace: > {code} > WARN [MigrationStage:1] 2017-03-16 16:54:25,016 ColumnFamilyStore.java:535 - > Failed unregistering mbean: > org.apache.cassandra.db:type=Tables,keyspace=test20160810,table=unit_by_account > java.lang.NullPointerException: null > at > java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1106) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap$KeySetView.remove(ConcurrentHashMap.java:4569) > ~[na:1.8.0_121] > at > org.apache.cassandra.metrics.TableMetrics.release(TableMetrics.java:712) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.unregisterMBean(ColumnFamilyStore.java:570) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:527) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:517) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.unloadCf(Keyspace.java:365) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.dropCf(Keyspace.java:358) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.config.Schema.dropView(Schema.java:744) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.lambda$mergeSchema$373(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_121] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1256) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:51) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_121] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor$Wor
[jira] [Commented] (CASSANDRA-13346) Failed unregistering mbean during drop keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-13346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955004#comment-15955004 ] Andrew Efimov commented on CASSANDRA-13346: --- {{TableMetrics.release}} does not release metric with name {{ViewReadTime}} because it is not created, but release method tries to remove this metric with NPE: {noformat} org.apache.cassandra.metrics.TableMetrics: 669 // We do not want to capture view mutation specific metrics for a view // They only makes sense to capture on the base table if (cfs.metadata.isView()) { viewLockAcquireTime = null; viewReadTime = null; } else { viewLockAcquireTime = createTableTimer("ViewLockAcquireTime", cfs.keyspace.metric.viewLockAcquireTime); viewReadTime = createTableTimer("ViewReadTime", cfs.keyspace.metric.viewReadTime); } {noformat} > Failed unregistering mbean during drop keyspace > --- > > Key: CASSANDRA-13346 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13346 > Project: Cassandra > Issue Type: Bug > Components: Materialized Views > Environment: Cassandra 3.9 >Reporter: Gábor Auth >Priority: Minor > Labels: lhf > > All node throw exceptions about materialized views during drop keyspace: > {code} > WARN [MigrationStage:1] 2017-03-16 16:54:25,016 ColumnFamilyStore.java:535 - > Failed unregistering mbean: > org.apache.cassandra.db:type=Tables,keyspace=test20160810,table=unit_by_account > java.lang.NullPointerException: null > at > java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1106) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap$KeySetView.remove(ConcurrentHashMap.java:4569) > ~[na:1.8.0_121] > at > org.apache.cassandra.metrics.TableMetrics.release(TableMetrics.java:712) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.unregisterMBean(ColumnFamilyStore.java:570) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:527) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:517) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.unloadCf(Keyspace.java:365) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.dropCf(Keyspace.java:358) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.config.Schema.dropView(Schema.java:744) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.lambda$mergeSchema$373(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_121] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1256) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:51) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_121] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ~[na:1.8.0_121] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121] > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13403) nodetool repair breaks SASI index
[ https://issues.apache.org/jira/browse/CASSANDRA-13403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954981#comment-15954981 ] Igor Novgorodov commented on CASSANDRA-13403: - I've built the current 3.11 branch from Git and upgraded nodes to it, now it got even worse :) After nodetool repair --full i'm getting zero rows from query until i rebuild the index. Query with tracing: https://pastebin.com/4GZ8DKNN > nodetool repair breaks SASI index > - > > Key: CASSANDRA-13403 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13403 > Project: Cassandra > Issue Type: Bug > Components: sasi > Environment: 3.10 >Reporter: Igor Novgorodov > > I've got table: > {code} > CREATE TABLE cservice.bulks_recipients ( > recipient text, > bulk_id uuid, > datetime_final timestamp, > datetime_sent timestamp, > request_id uuid, > status int, > PRIMARY KEY (recipient, bulk_id) > ) WITH CLUSTERING ORDER BY (bulk_id ASC) > AND bloom_filter_fp_chance = 0.01 > AND caching = {'keys': 'ALL', 'rows_per_partition': 'ALL'} > AND comment = '' > AND compaction = {'class': > 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', > 'max_threshold': '32', 'min_threshold': '4'} > AND compression = {'chunk_length_in_kb': '64', 'class': > 'org.apache.cassandra.io.compress.LZ4Compressor'} > AND crc_check_chance = 1.0 > AND dclocal_read_repair_chance = 0.1 > AND default_time_to_live = 0 > AND gc_grace_seconds = 864000 > AND max_index_interval = 2048 > AND memtable_flush_period_in_ms = 0 > AND min_index_interval = 128 > AND read_repair_chance = 0.0 > AND speculative_retry = '99PERCENTILE'; > CREATE CUSTOM INDEX bulk_recipients_bulk_id ON cservice.bulks_recipients > (bulk_id) USING 'org.apache.cassandra.index.sasi.SASIIndex'; > {code} > There are 11 rows in it: > {code} > > select * from bulks_recipients; > ... > (11 rows) > {code} > Let's query by index (all rows have the same *bulk_id*): > {code} > > select * from bulks_recipients where bulk_id = > > baa94815-e276-4ca4-adda-5b9734e6c4a5; > > > ... > (11 rows) > {code} > Ok, everything is fine. > Now i'm doing *nodetool repair --partitioner-range --job-threads 4 --full* on > each node in cluster sequentially. > After it finished: > {code} > > select * from bulks_recipients where bulk_id = > > baa94815-e276-4ca4-adda-5b9734e6c4a5; > ... > (2 rows) > {code} > Only two rows. > While the rows are actually there: > {code} > > select * from bulks_recipients; > ... > (11 rows) > {code} > If i issue an incremental repair on a random node, i can get like 7 rows > after index query. > Dropping index and recreating it fixes the issue. Is it a bug or am i doing > the repair the wrong way? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13346) Failed unregistering mbean during drop keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-13346?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954980#comment-15954980 ] Andrew Efimov commented on CASSANDRA-13346: --- I guess that the problem may be in the difference of metrics types for Materialized view and Table: {{at org.apache.cassandra.metrics.TableMetrics.release(TableMetrics.java:713)}} {{TableMetrics}} does not find the metrics for view, can only be used for Table. > Failed unregistering mbean during drop keyspace > --- > > Key: CASSANDRA-13346 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13346 > Project: Cassandra > Issue Type: Bug > Components: Materialized Views > Environment: Cassandra 3.9 >Reporter: Gábor Auth >Priority: Minor > Labels: lhf > > All node throw exceptions about materialized views during drop keyspace: > {code} > WARN [MigrationStage:1] 2017-03-16 16:54:25,016 ColumnFamilyStore.java:535 - > Failed unregistering mbean: > org.apache.cassandra.db:type=Tables,keyspace=test20160810,table=unit_by_account > java.lang.NullPointerException: null > at > java.util.concurrent.ConcurrentHashMap.replaceNode(ConcurrentHashMap.java:1106) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:1097) > ~[na:1.8.0_121] > at > java.util.concurrent.ConcurrentHashMap$KeySetView.remove(ConcurrentHashMap.java:4569) > ~[na:1.8.0_121] > at > org.apache.cassandra.metrics.TableMetrics.release(TableMetrics.java:712) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.unregisterMBean(ColumnFamilyStore.java:570) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:527) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.ColumnFamilyStore.invalidate(ColumnFamilyStore.java:517) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.unloadCf(Keyspace.java:365) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.db.Keyspace.dropCf(Keyspace.java:358) > [apache-cassandra-3.9.0.jar:3.9.0] > at org.apache.cassandra.config.Schema.dropView(Schema.java:744) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.lambda$mergeSchema$373(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_121] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchema(SchemaKeyspace.java:1287) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.schema.SchemaKeyspace.mergeSchemaAndAnnounceVersion(SchemaKeyspace.java:1256) > [apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:51) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > ~[apache-cassandra-3.9.0.jar:3.9.0] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > ~[na:1.8.0_121] > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > ~[na:1.8.0_121] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > ~[na:1.8.0_121] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121] > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13147) Secondary index query on partition key columns might not return all the rows.
[ https://issues.apache.org/jira/browse/CASSANDRA-13147?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrés de la Peña updated CASSANDRA-13147: -- Fix Version/s: 4.x 3.11.x 3.0.x 2.2.x 2.1.x Status: Patch Available (was: In Progress) > Secondary index query on partition key columns might not return all the rows. > - > > Key: CASSANDRA-13147 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13147 > Project: Cassandra > Issue Type: Bug >Reporter: Benjamin Lerer >Assignee: Andrés de la Peña > Fix For: 2.1.x, 2.2.x, 3.0.x, 3.11.x, 4.x > > > A secondary index query on a partition key column will, apparently, not > return the empty partitions with static data. > The following unit test can be used to reproduce the problem. > {code} > public void testIndexOnPartitionKeyWithStaticColumnAndNoRows() throws > Throwable > { > createTable("CREATE TABLE %s (pk1 int, pk2 int, c int, s int static, > v int, PRIMARY KEY((pk1, pk2), c))"); > createIndex("CREATE INDEX ON %s (pk2)"); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 1, 1, 1, 9, 1); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 1, 1, 2, 9, 2); > execute("INSERT INTO %s (pk1, pk2, s) VALUES (?, ?, ?)", 2, 1, 9); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 3, 1, 1, 9, 1); > assertRows(execute("SELECT * FROM %s WHERE pk2 = ?", 1), >row(1, 1, 1, 9, 1), >row(1, 1, 2, 9, 2), >row(2, 1, null, 9, null), <-- is not returned >row(3, 1, 1, 9, 1)); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13147) Secondary index query on partition key columns might not return all the rows.
[ https://issues.apache.org/jira/browse/CASSANDRA-13147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954974#comment-15954974 ] Andrés de la Peña commented on CASSANDRA-13147: --- And there are the patch versions for all the involved branches: ||[2.1|https://github.com/apache/cassandra/compare/cassandra-2.1...adelapena:13147-2.1]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-2.1-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-2.1-dtest/]| ||[2.2|https://github.com/apache/cassandra/compare/cassandra-2.2...adelapena:13147-2.2]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-2.2-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-2.2-dtest/]| ||[3.0|https://github.com/apache/cassandra/compare/cassandra-3.0...adelapena:13147-3.0]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-3.0-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-3.0-dtest/]| ||[3.11|https://github.com/apache/cassandra/compare/cassandra-3.11...adelapena:13147-3.11]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-3.11-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-3.11-dtest/]| ||[trunk|https://github.com/apache/cassandra/compare/trunk...adelapena:13147-trunk]|[utests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-trunk-testall/]|[dtests|http://cassci.datastax.com/view/Dev/view/adelapena/job/adelapena-13147-trunk-dtest/]| > Secondary index query on partition key columns might not return all the rows. > - > > Key: CASSANDRA-13147 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13147 > Project: Cassandra > Issue Type: Bug >Reporter: Benjamin Lerer >Assignee: Andrés de la Peña > > A secondary index query on a partition key column will, apparently, not > return the empty partitions with static data. > The following unit test can be used to reproduce the problem. > {code} > public void testIndexOnPartitionKeyWithStaticColumnAndNoRows() throws > Throwable > { > createTable("CREATE TABLE %s (pk1 int, pk2 int, c int, s int static, > v int, PRIMARY KEY((pk1, pk2), c))"); > createIndex("CREATE INDEX ON %s (pk2)"); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 1, 1, 1, 9, 1); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 1, 1, 2, 9, 2); > execute("INSERT INTO %s (pk1, pk2, s) VALUES (?, ?, ?)", 2, 1, 9); > execute("INSERT INTO %s (pk1, pk2, c, s, v) VALUES (?, ?, ?, ?, ?)", > 3, 1, 1, 9, 1); > assertRows(execute("SELECT * FROM %s WHERE pk2 = ?", 1), >row(1, 1, 1, 9, 1), >row(1, 1, 2, 9, 2), >row(2, 1, null, 9, null), <-- is not returned >row(3, 1, 1, 9, 1)); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (CASSANDRA-13396) Cassandra 3.10: ClassCastException in ThreadAwareSecurityManager
[ https://issues.apache.org/jira/browse/CASSANDRA-13396?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15954972#comment-15954972 ] Robert Stupp commented on CASSANDRA-13396: -- [~jjirsa], can live with that - i.e. logging an explicit warning using a new {{StartupCheck}} that also mentions that UDFs/UDAs might be broken, if a logger that's not logback is used. > Cassandra 3.10: ClassCastException in ThreadAwareSecurityManager > > > Key: CASSANDRA-13396 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13396 > Project: Cassandra > Issue Type: Bug >Reporter: Edward Capriolo >Priority: Minor > > https://www.mail-archive.com/user@cassandra.apache.org/msg51603.html -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13395) Expired rows without regular column data can crash upgradesstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13395: --- Component/s: Local Write-Read Paths > Expired rows without regular column data can crash upgradesstables > -- > > Key: CASSANDRA-13395 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13395 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Benjamin Lerer >Assignee: Benjamin Lerer > Fix For: 3.0.13, 3.11.0 > > > In {{2.x}} if an expired row is compacted its row marker will be converted > into a {{DeletedCell}}. In {{3.0}}, when the row is read by {{LegacyLayout}} > it will be converted in a row without {{PrimaryKeyLivenessInfo}}. If the row > does not contains any data for the regular columns, or if the table simply > has no regular columns it will then be considered as {{empty}}. Which will > crash {{upgradesstables}} with the following error: > {code} > java.lang.AssertionError > at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:207) > at > org.apache.cassandra.db.transform.BaseRows.applyOne(BaseRows.java:116) > at org.apache.cassandra.db.transform.BaseRows.add(BaseRows.java:107) > at > org.apache.cassandra.db.transform.UnfilteredRows.add(UnfilteredRows.java:41) > at > org.apache.cassandra.db.transform.Transformation.add(Transformation.java:156) > at > org.apache.cassandra.db.transform.Transformation.apply(Transformation.java:122) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:147) > at > org.apache.cassandra.io.sstable.SSTableRewriter.append(SSTableRewriter.java:125) > at > org.apache.cassandra.db.compaction.writers.DefaultCompactionWriter.realAppend(DefaultCompactionWriter.java:57) > at > org.apache.cassandra.db.compaction.writers.CompactionAwareWriter.append(CompactionAwareWriter.java:109) > at > org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:195) > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > at > org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:89) > at > org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:61) > at > org.apache.cassandra.db.compaction.CompactionManager$5.execute(CompactionManager.java:416) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:308) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$0(NamedThreadFactory.java:79) > at java.lang.Thread.run(Thread.java:745) > {code} > This problem is cause -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13395) Expired rows without regular column data can crash upgradesstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13395: --- Resolution: Fixed Status: Resolved (was: Patch Available) Committed into 3.0 at 462b9cf63bf986671f8a080ef1802f0c27e7c772 and merged into 3.X. > Expired rows without regular column data can crash upgradesstables > -- > > Key: CASSANDRA-13395 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13395 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Benjamin Lerer >Assignee: Benjamin Lerer > > In {{2.x}} if an expired row is compacted its row marker will be converted > into a {{DeletedCell}}. In {{3.0}}, when the row is read by {{LegacyLayout}} > it will be converted in a row without {{PrimaryKeyLivenessInfo}}. If the row > does not contains any data for the regular columns, or if the table simply > has no regular columns it will then be considered as {{empty}}. Which will > crash {{upgradesstables}} with the following error: > {code} > java.lang.AssertionError > at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:207) > at > org.apache.cassandra.db.transform.BaseRows.applyOne(BaseRows.java:116) > at org.apache.cassandra.db.transform.BaseRows.add(BaseRows.java:107) > at > org.apache.cassandra.db.transform.UnfilteredRows.add(UnfilteredRows.java:41) > at > org.apache.cassandra.db.transform.Transformation.add(Transformation.java:156) > at > org.apache.cassandra.db.transform.Transformation.apply(Transformation.java:122) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:147) > at > org.apache.cassandra.io.sstable.SSTableRewriter.append(SSTableRewriter.java:125) > at > org.apache.cassandra.db.compaction.writers.DefaultCompactionWriter.realAppend(DefaultCompactionWriter.java:57) > at > org.apache.cassandra.db.compaction.writers.CompactionAwareWriter.append(CompactionAwareWriter.java:109) > at > org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:195) > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > at > org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:89) > at > org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:61) > at > org.apache.cassandra.db.compaction.CompactionManager$5.execute(CompactionManager.java:416) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:308) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$0(NamedThreadFactory.java:79) > at java.lang.Thread.run(Thread.java:745) > {code} > This problem is cause -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Updated] (CASSANDRA-13395) Expired rows without regular column data can crash upgradesstables
[ https://issues.apache.org/jira/browse/CASSANDRA-13395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13395: --- Fix Version/s: 3.11.0 3.0.13 > Expired rows without regular column data can crash upgradesstables > -- > > Key: CASSANDRA-13395 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13395 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Benjamin Lerer >Assignee: Benjamin Lerer > Fix For: 3.0.13, 3.11.0 > > > In {{2.x}} if an expired row is compacted its row marker will be converted > into a {{DeletedCell}}. In {{3.0}}, when the row is read by {{LegacyLayout}} > it will be converted in a row without {{PrimaryKeyLivenessInfo}}. If the row > does not contains any data for the regular columns, or if the table simply > has no regular columns it will then be considered as {{empty}}. Which will > crash {{upgradesstables}} with the following error: > {code} > java.lang.AssertionError > at org.apache.cassandra.db.rows.Rows.collectStats(Rows.java:70) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter$StatsCollector.applyToRow(BigTableWriter.java:207) > at > org.apache.cassandra.db.transform.BaseRows.applyOne(BaseRows.java:116) > at org.apache.cassandra.db.transform.BaseRows.add(BaseRows.java:107) > at > org.apache.cassandra.db.transform.UnfilteredRows.add(UnfilteredRows.java:41) > at > org.apache.cassandra.db.transform.Transformation.add(Transformation.java:156) > at > org.apache.cassandra.db.transform.Transformation.apply(Transformation.java:122) > at > org.apache.cassandra.io.sstable.format.big.BigTableWriter.append(BigTableWriter.java:147) > at > org.apache.cassandra.io.sstable.SSTableRewriter.append(SSTableRewriter.java:125) > at > org.apache.cassandra.db.compaction.writers.DefaultCompactionWriter.realAppend(DefaultCompactionWriter.java:57) > at > org.apache.cassandra.db.compaction.writers.CompactionAwareWriter.append(CompactionAwareWriter.java:109) > at > org.apache.cassandra.db.compaction.CompactionTask.runMayThrow(CompactionTask.java:195) > at > org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) > at > org.apache.cassandra.db.compaction.CompactionTask.executeInternal(CompactionTask.java:89) > at > org.apache.cassandra.db.compaction.AbstractCompactionTask.execute(AbstractCompactionTask.java:61) > at > org.apache.cassandra.db.compaction.CompactionManager$5.execute(CompactionManager.java:416) > at > org.apache.cassandra.db.compaction.CompactionManager$2.call(CompactionManager.java:308) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$0(NamedThreadFactory.java:79) > at java.lang.Thread.run(Thread.java:745) > {code} > This problem is cause -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[1/6] cassandra git commit: Fix the conversion of 2.X expired rows without regular column data
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 2e36eb6ca -> 462b9cf63 refs/heads/cassandra-3.11 420c91c9a -> 6b87e49c3 refs/heads/trunk f87ec773f -> 0f054fee5 Fix the conversion of 2.X expired rows without regular column data patch by Benjamin Lerer; reviewed by Sylvain Lebresne for CASSANDRA-13395 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/462b9cf6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/462b9cf6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/462b9cf6 Branch: refs/heads/cassandra-3.0 Commit: 462b9cf63bf986671f8a080ef1802f0c27e7c772 Parents: 2e36eb6 Author: Benjamin Lerer Authored: Tue Apr 4 11:57:41 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 11:57:41 2017 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/LegacyLayout.java | 12 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/462b9cf6/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 41489c1..4126b07 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.13 + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/462b9cf6/src/java/org/apache/cassandra/db/LegacyLayout.java -- diff --git a/src/java/org/apache/cassandra/db/LegacyLayout.java b/src/java/org/apache/cassandra/db/LegacyLayout.java index bfe3bff..669fb1c 100644 --- a/src/java/org/apache/cassandra/db/LegacyLayout.java +++ b/src/java/org/apache/cassandra/db/LegacyLayout.java @@ -1128,6 +1128,11 @@ public abstract class LegacyLayout public static class CellGrouper { +/** + * The fake TTL used for expired rows that have been compacted. + */ +private static final int FAKE_TTL = 1; + public final CFMetaData metadata; private final boolean isStatic; private final SerializationHelper helper; @@ -1194,14 +1199,17 @@ public abstract class LegacyLayout { // It's the row marker assert !cell.value.hasRemaining(); -// In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. So, -// we need to set the primary key liveness info only if the cell is not a deleted one. +// In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. +// If we do not set the primary key liveness info for this row and it does not contains any regular columns +// the row will be empty. To avoid that, we reuse the localDeletionTime but use a fake TTL. // The only time in 2.x that we actually delete a row marker is in 2i tables, so in that case we do // want to actually propagate the row deletion. (CASSANDRA-13320) if (!cell.isTombstone()) builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, cell.ttl, cell.localDeletionTime)); else if (metadata.isIndex()) builder.addRowDeletion(Row.Deletion.regular(new DeletionTime(cell.timestamp, cell.localDeletionTime))); +else + builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, FAKE_TTL, cell.localDeletionTime)); } else {
[4/6] cassandra git commit: Merge branch cassandra-3.0 into cassandra-3.11
Merge branch cassandra-3.0 into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b87e49c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b87e49c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b87e49c Branch: refs/heads/trunk Commit: 6b87e49c377731b0347ce2a0fb2db3da2a13ec3f Parents: 420c91c 462b9cf Author: Benjamin Lerer Authored: Tue Apr 4 12:01:07 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 12:01:07 2017 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/LegacyLayout.java | 12 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b87e49c/CHANGES.txt -- diff --cc CHANGES.txt index fc7a2bb,4126b07..e63e266 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,5 +1,25 @@@ -3.0.13 +3.11.0 + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) +Merged from 3.0: + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b87e49c/src/java/org/apache/cassandra/db/LegacyLayout.java -- diff --cc src/java/org/apache/cassandra/db/LegacyLayout.java index e218fd1,669fb1c..9a7131e --- a/src/java/org/apache/cassandra/db/LegacyLayout.java +++ b/src/java/org/apache/cassandra/db/LegacyLayout.java @@@ -1195,15 -1199,17 +1200,18 @@@ public abstract class LegacyLayou { // It's the row marker assert !cell.value.hasRemaining(); + - // In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. So, - // we need to set the primary key liveness info only if the cell is not a deleted one. + // In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. + // If we do not set the primary key liveness info for this row and it does not contains any regular columns + // the row will be empty. To avoid that, we reuse the localDeletionTime but use a fake TTL. // The only time in 2.x that we actually delete a row marker is in 2i tables, so in that case we do // want to actually propagate the row deletion. (CASSANDRA-13320) if (!cell.isTombstone()) - builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, cell.ttl, cell.localDeletionTime)); + builder.addPrimaryKeyLivenessInfo(LivenessInfo.withExpirationTime(cell.timestamp, cell.ttl, cell.localDeletionTime)); else if (metadata.isIndex()) builder.addRowDeletion(Row.Deletion.regular(new DeletionTime(cell.timestamp, cell.localDeletionTime))); + else + builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, FAKE_TTL, cell.localDeletionTime)); } else {
[5/6] cassandra git commit: Merge branch cassandra-3.0 into cassandra-3.11
Merge branch cassandra-3.0 into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6b87e49c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6b87e49c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6b87e49c Branch: refs/heads/cassandra-3.11 Commit: 6b87e49c377731b0347ce2a0fb2db3da2a13ec3f Parents: 420c91c 462b9cf Author: Benjamin Lerer Authored: Tue Apr 4 12:01:07 2017 +0200 Committer: Benjamin Lerer Committed: Tue Apr 4 12:01:07 2017 +0200 -- CHANGES.txt| 1 + src/java/org/apache/cassandra/db/LegacyLayout.java | 12 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b87e49c/CHANGES.txt -- diff --cc CHANGES.txt index fc7a2bb,4126b07..e63e266 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,24 -1,5 +1,25 @@@ -3.0.13 +3.11.0 + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) +Merged from 3.0: + * Fix the conversion of 2.X expired rows without regular column data (CASSANDRA-13395) * Fix hint delivery when using ext+internal IPs with prefer_local enabled (CASSANDRA-13020) * Fix possible NPE on upgrade to 3.0/3.X in case of IO errors (CASSANDRA-13389) * Legacy deserializer can create empty range tombstones (CASSANDRA-13341) http://git-wip-us.apache.org/repos/asf/cassandra/blob/6b87e49c/src/java/org/apache/cassandra/db/LegacyLayout.java -- diff --cc src/java/org/apache/cassandra/db/LegacyLayout.java index e218fd1,669fb1c..9a7131e --- a/src/java/org/apache/cassandra/db/LegacyLayout.java +++ b/src/java/org/apache/cassandra/db/LegacyLayout.java @@@ -1195,15 -1199,17 +1200,18 @@@ public abstract class LegacyLayou { // It's the row marker assert !cell.value.hasRemaining(); + - // In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. So, - // we need to set the primary key liveness info only if the cell is not a deleted one. + // In 2.1, the row marker expired cell might have been converted into a deleted one by compaction. + // If we do not set the primary key liveness info for this row and it does not contains any regular columns + // the row will be empty. To avoid that, we reuse the localDeletionTime but use a fake TTL. // The only time in 2.x that we actually delete a row marker is in 2i tables, so in that case we do // want to actually propagate the row deletion. (CASSANDRA-13320) if (!cell.isTombstone()) - builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, cell.ttl, cell.localDeletionTime)); + builder.addPrimaryKeyLivenessInfo(LivenessInfo.withExpirationTime(cell.timestamp, cell.ttl, cell.localDeletionTime)); else if (metadata.isIndex()) builder.addRowDeletion(Row.Deletion.regular(new DeletionTime(cell.timestamp, cell.localDeletionTime))); + else + builder.addPrimaryKeyLivenessInfo(LivenessInfo.create(cell.timestamp, FAKE_TTL, cell.localDeletionTime)); } else {