[jira] [Commented] (CASSANDRA-14227) Extend maximum expiration date
[ https://issues.apache.org/jira/browse/CASSANDRA-14227?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16855350#comment-16855350 ] Laxmikant Upadhyay commented on CASSANDRA-14227: [~pauloricardomg] Upgrade Sstable change to resume the original ttl should be in scope of this bug or should we open another jira ticket for this? Note: This change is important for those users who are currently using CAP or CAP_NOWARN to avoid request rejection but want to resume to originally set TTL when they upgrade to new cassandra version with fix. > Extend maximum expiration date > -- > > Key: CASSANDRA-14227 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14227 > Project: Cassandra > Issue Type: Bug > Components: Legacy/Local Write-Read Paths >Reporter: Paulo Motta >Priority: Normal > > The maximum expiration timestamp that can be represented by the storage > engine is > 2038-01-19T03:14:06+00:00 due to the encoding of {{localExpirationTime}} as > an int32. > On CASSANDRA-14092 we added an overflow policy which rejects requests with > expiration above the maximum date as a temporary measure, but we should > remove this limitation by updating the storage engine to support at least the > maximum allowed TTL of 20 years. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-14305) Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh
[ https://issues.apache.org/jira/browse/CASSANDRA-14305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16855246#comment-16855246 ] mck commented on CASSANDRA-14305: - Thanks for spotting and raising that [~samt]. I am looking into it. > Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh > - > > Key: CASSANDRA-14305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14305 > Project: Cassandra > Issue Type: Improvement > Components: Local/Config >Reporter: Angelo Polo >Assignee: Angelo Polo >Priority: Low > Fix For: 3.11.5, 4.0 > > Attachments: conf_cassandra-env.sh.patch > > > CASSANDRA_CONF should be used uniformly in conf/cassandra-env.sh to reference > the configuration path. Currently, jaas users will have to modify the default > path provided for cassandra-jaas.config if their $CASSANDRA_CONF differs from > $CASSANDRA_HOME/conf. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-15041) UncheckedExecutionException if authentication/authorization query fails
[ https://issues.apache.org/jira/browse/CASSANDRA-15041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Per Otterström updated CASSANDRA-15041: --- Reviewers: Sam Tunnicliffe > UncheckedExecutionException if authentication/authorization query fails > --- > > Key: CASSANDRA-15041 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15041 > Project: Cassandra > Issue Type: Bug > Components: Feature/Authorization >Reporter: Per Otterström >Assignee: Per Otterström >Priority: Normal > Fix For: 2.2.15, 3.0.19, 3.11.5, 4.0 > > > If cache update for permissions/credentials/roles fails with > UnavailableException this comes back to client as UncheckedExecutionException. > Stack trace on server side: > {noformat} > ERROR [Native-Transport-Requests-1] 2019-03-04 16:30:51,537 > ErrorMessage.java:384 - Unexpected exception during request > com.google.common.util.concurrent.UncheckedExecutionException: > com.google.common.util.concurrent.UncheckedExecutionException: > java.lang.RuntimeException: > org.apache.cassandra.exceptions.UnavailableException: Cannot achieve > consistency level QUORUM > at > com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) > ~[guava-18.0.jar:na] > at com.google.common.cache.LocalCache.get(LocalCache.java:3937) > ~[guava-18.0.jar:na] > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) > ~[guava-18.0.jar:na] > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) > ~[guava-18.0.jar:na] > at org.apache.cassandra.auth.AuthCache.get(AuthCache.java:97) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.auth.PermissionsCache.getPermissions(PermissionsCache.java:45) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.auth.AuthenticatedUser.getPermissions(AuthenticatedUser.java:104) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.authorize(ClientState.java:439) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.checkPermissionOnResourceChain(ClientState.java:368) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.ensureHasPermission(ClientState.java:345) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.hasAccess(ClientState.java:332) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.hasColumnFamilyAccess(ClientState.java:310) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.statements.ModificationStatement.checkAccess(ModificationStatement.java:211) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:222) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:532) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:509) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:146) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:566) > [apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) > [apache-cassandra-3.11.4.jar:3.11.4] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:348) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_181] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > [apache-cassandra-3.11.4.jar:3.11.4] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:114) > [apache-cassandra-3.11.4.jar:3.11.4] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181] > Caused by: com.googl
[jira] [Assigned] (CASSANDRA-15041) UncheckedExecutionException if authentication/authorization query fails
[ https://issues.apache.org/jira/browse/CASSANDRA-15041?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Per Otterström reassigned CASSANDRA-15041: -- Assignee: Per Otterström > UncheckedExecutionException if authentication/authorization query fails > --- > > Key: CASSANDRA-15041 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15041 > Project: Cassandra > Issue Type: Bug > Components: Feature/Authorization >Reporter: Per Otterström >Assignee: Per Otterström >Priority: Normal > Fix For: 2.2.15, 3.0.19, 3.11.5, 4.0 > > > If cache update for permissions/credentials/roles fails with > UnavailableException this comes back to client as UncheckedExecutionException. > Stack trace on server side: > {noformat} > ERROR [Native-Transport-Requests-1] 2019-03-04 16:30:51,537 > ErrorMessage.java:384 - Unexpected exception during request > com.google.common.util.concurrent.UncheckedExecutionException: > com.google.common.util.concurrent.UncheckedExecutionException: > java.lang.RuntimeException: > org.apache.cassandra.exceptions.UnavailableException: Cannot achieve > consistency level QUORUM > at > com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203) > ~[guava-18.0.jar:na] > at com.google.common.cache.LocalCache.get(LocalCache.java:3937) > ~[guava-18.0.jar:na] > at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3941) > ~[guava-18.0.jar:na] > at > com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4824) > ~[guava-18.0.jar:na] > at org.apache.cassandra.auth.AuthCache.get(AuthCache.java:97) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.auth.PermissionsCache.getPermissions(PermissionsCache.java:45) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.auth.AuthenticatedUser.getPermissions(AuthenticatedUser.java:104) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.authorize(ClientState.java:439) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.checkPermissionOnResourceChain(ClientState.java:368) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.ensureHasPermission(ClientState.java:345) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.hasAccess(ClientState.java:332) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.service.ClientState.hasColumnFamilyAccess(ClientState.java:310) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.statements.ModificationStatement.checkAccess(ModificationStatement.java:211) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:222) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:532) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.cql3.QueryProcessor.processPrepared(QueryProcessor.java:509) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:146) > ~[apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:566) > [apache-cassandra-3.11.4.jar:3.11.4] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) > [apache-cassandra-3.11.4.jar:3.11.4] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:348) > [netty-all-4.0.44.Final.jar:4.0.44.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_181] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > [apache-cassandra-3.11.4.jar:3.11.4] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:114) > [apache-cassandra-3.11.4.jar:3.11.4] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181] > Caused by: com.
[jira] [Commented] (CASSANDRA-15120) Nodes that join the ring while another node is MOVING build an invalid view of the token ring
[ https://issues.apache.org/jira/browse/CASSANDRA-15120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16854730#comment-16854730 ] Sam Tunnicliffe commented on CASSANDRA-15120: - bq. The trunk version does not include the dtest, as much of the plumbing to support that is going to land in CASSANDRA-15066. CASSANDRA-15148 bq. The change to 3.0 also breaks backward compatibility of the cross version dtests with 2.2. CASSANDRA-15147 bq. In the unit tests, RowFilterTest, which was recently added for CASSANDRA-15126, appears to be failing on 3.11 only. Ninja'd a fix in [7f4ecb0|https://github.com/apache/cassandra/commit/7f4ecb01247088e27ff2ae15aa5375805bada53a] > Nodes that join the ring while another node is MOVING build an invalid view > of the token ring > - > > Key: CASSANDRA-15120 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15120 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Gossip, Cluster/Membership >Reporter: Benedict >Assignee: Benedict >Priority: Normal > Fix For: 3.0.19, 3.11.5, 4.0 > > > Gossip only updates the token metadata for nodes in the NORMAL, SHUTDOWN or > LEAVING* statuses. MOVING and REMOVING_TOKEN nodes do not have their ring > information updated (nor do others, but these other states _should_ only be > taken by nodes that are not members of the ring). > If a node missed the most recent token-modifying events because they were not > a member of the ring when they happened (or because Gossip was delayed to > them), they will retain an invalid view of the ring until the node enters the > one of the NORMAL, SHUTDOWN or LEAVING states. > *LEAVING is populated differently, however, and in a probably unsafe manner > that this work will also address. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Created] (CASSANDRA-15148) Add in-jvm dtest for Gossip to trunk
Sam Tunnicliffe created CASSANDRA-15148: --- Summary: Add in-jvm dtest for Gossip to trunk Key: CASSANDRA-15148 URL: https://issues.apache.org/jira/browse/CASSANDRA-15148 Project: Cassandra Issue Type: Task Components: Test/dtest Reporter: Sam Tunnicliffe When merging CASSANDRA-15120 to trunk, the in-jvm dtest support for gossip and networking were ommitted as much of the work to support that is already done and due to land in CASSANDRA-15066. Once that patch is committed, we should add the {{GossipTest}} from CASSANDRA-15120 to trunk. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Created] (CASSANDRA-15147) Backport in-jvm dtest feature flags to 2.2
Sam Tunnicliffe created CASSANDRA-15147: --- Summary: Backport in-jvm dtest feature flags to 2.2 Key: CASSANDRA-15147 URL: https://issues.apache.org/jira/browse/CASSANDRA-15147 Project: Cassandra Issue Type: Task Components: Test/dtest Reporter: Sam Tunnicliffe CASSANDRA-15120 adds gossip and networking to the in-jvm dtests and provides feature flags to enable them in tests. This includes changes to the {{Cluster}} interface which need to be backported to 2.2 to support cross version tests. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.11 updated: Ninja fix RowFilterTest
This is an automated email from the ASF dual-hosted git repository. samt pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.11 by this push: new 7f4ecb0 Ninja fix RowFilterTest 7f4ecb0 is described below commit 7f4ecb01247088e27ff2ae15aa5375805bada53a Author: Sam Tunnicliffe AuthorDate: Mon Jun 3 16:32:45 2019 +0100 Ninja fix RowFilterTest Unit test added in CASSANDRA-15126 is broken on 3.11 --- test/unit/org/apache/cassandra/db/filter/RowFilterTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unit/org/apache/cassandra/db/filter/RowFilterTest.java b/test/unit/org/apache/cassandra/db/filter/RowFilterTest.java index 0e15013..9313c3a 100644 --- a/test/unit/org/apache/cassandra/db/filter/RowFilterTest.java +++ b/test/unit/org/apache/cassandra/db/filter/RowFilterTest.java @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import org.junit.Assert; import org.junit.Test; +import org.apache.cassandra.SchemaLoader; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; import org.apache.cassandra.cql3.ColumnIdentifier; @@ -54,6 +55,7 @@ public class RowFilterTest public void testCQLFilterClose() { // CASSANDRA-15126 +SchemaLoader.prepareServer(); CFMetaData metadata = CFMetaData.Builder.create("testks", "testcf") .addPartitionKey("pk", Int32Type.instance) .addStaticColumn("s", Int32Type.instance) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. samt pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit f4c0c193c13adf3da01fd2507c6f75dd7146c55d Merge: cc1bc2a 7f4ecb0 Author: Sam Tunnicliffe AuthorDate: Mon Jun 3 16:33:20 2019 +0100 Merge branch 'cassandra-3.11' into trunk - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (cc1bc2a -> f4c0c19)
This is an automated email from the ASF dual-hosted git repository. samt pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from cc1bc2a Merge branch 'cassandra-3.11' into trunk new 7f4ecb0 Ninja fix RowFilterTest new f4c0c19 Merge branch 'cassandra-3.11' into trunk The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-14305) Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh
[ https://issues.apache.org/jira/browse/CASSANDRA-14305?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-14305: Status: Open (was: Resolved) This seems to have broken a dtest: \{{ jmx_auth_test.TestJMXAuth.test_basic_auth}} [~michaelsembwever], [~polo-language] - could one of you have a quick look please? > Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh > - > > Key: CASSANDRA-14305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14305 > Project: Cassandra > Issue Type: Improvement > Components: Local/Config >Reporter: Angelo Polo >Assignee: Angelo Polo >Priority: Low > Fix For: 3.11.5, 4.0 > > Attachments: conf_cassandra-env.sh.patch > > > CASSANDRA_CONF should be used uniformly in conf/cassandra-env.sh to reference > the configuration path. Currently, jaas users will have to modify the default > path provided for cassandra-jaas.config if their $CASSANDRA_CONF differs from > $CASSANDRA_HOME/conf. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Comment Edited] (CASSANDRA-14305) Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh
[ https://issues.apache.org/jira/browse/CASSANDRA-14305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16854694#comment-16854694 ] Sam Tunnicliffe edited comment on CASSANDRA-14305 at 6/3/19 3:09 PM: - This seems to have broken a dtest: {{jmx_auth_test.TestJMXAuth.test_basic_auth}} [~michaelsembwever], [~polo-language] - could one of you have a quick look please? was (Author: beobal): This seems to have broken a dtest: \{{ jmx_auth_test.TestJMXAuth.test_basic_auth}} [~michaelsembwever], [~polo-language] - could one of you have a quick look please? > Use $CASSANDRA_CONF not $CASSANDRA_HOME/conf in cassandra-env.sh > - > > Key: CASSANDRA-14305 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14305 > Project: Cassandra > Issue Type: Improvement > Components: Local/Config >Reporter: Angelo Polo >Assignee: Angelo Polo >Priority: Low > Fix For: 3.11.5, 4.0 > > Attachments: conf_cassandra-env.sh.patch > > > CASSANDRA_CONF should be used uniformly in conf/cassandra-env.sh to reference > the configuration path. Currently, jaas users will have to modify the default > path provided for cassandra-jaas.config if their $CASSANDRA_CONF differs from > $CASSANDRA_HOME/conf. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-15120) Nodes that join the ring while another node is MOVING build an invalid view of the token ring
[ https://issues.apache.org/jira/browse/CASSANDRA-15120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-15120: Fix Version/s: 4.0 3.11.5 3.0.19 Source Control Link: https://github.com/apache/cassandra/commit/e4b5d9818f003be2b9091c48f8435d29202ffe2d Since Version: 3.0.0 Status: Resolved (was: Ready to Commit) Resolution: Fixed Committed to 3.0 in {{e4b5d9818f003be2b9091c48f8435d29202ffe2d}} and merged to 3.11 and trunk. The trunk version does not include the dtest, as much of the plumbing to support that is going to land in CASSANDRA-15066. The change to 3.0 also breaks backward compatibility of the cross version dtests with 2.2. There are a couple of unrelated, but new-ish test failures. In the unit tests, {{RowFilterTest}}, which was recently added for CASSANDRA-15126, appears to be failing on 3.11 only. In the dtests, {{jmx_auth_test.TestJMXAuth.test_basic_auth}} looks like it was broken by CASSANDRA-14305. I'll follow up all of these separately. > Nodes that join the ring while another node is MOVING build an invalid view > of the token ring > - > > Key: CASSANDRA-15120 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15120 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Gossip, Cluster/Membership >Reporter: Benedict >Assignee: Benedict >Priority: Normal > Fix For: 3.0.19, 3.11.5, 4.0 > > > Gossip only updates the token metadata for nodes in the NORMAL, SHUTDOWN or > LEAVING* statuses. MOVING and REMOVING_TOKEN nodes do not have their ring > information updated (nor do others, but these other states _should_ only be > taken by nodes that are not members of the ring). > If a node missed the most recent token-modifying events because they were not > a member of the ring when they happened (or because Gossip was delayed to > them), they will retain an invalid view of the ring until the node enters the > one of the NORMAL, SHUTDOWN or LEAVING states. > *LEAVING is populated differently, however, and in a probably unsafe manner > that this work will also address. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-15120) Nodes that join the ring while another node is MOVING build an invalid view of the token ring
[ https://issues.apache.org/jira/browse/CASSANDRA-15120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-15120: Status: Ready to Commit (was: Changes Suggested) > Nodes that join the ring while another node is MOVING build an invalid view > of the token ring > - > > Key: CASSANDRA-15120 > URL: https://issues.apache.org/jira/browse/CASSANDRA-15120 > Project: Cassandra > Issue Type: Bug > Components: Cluster/Gossip, Cluster/Membership >Reporter: Benedict >Assignee: Benedict >Priority: Normal > > Gossip only updates the token metadata for nodes in the NORMAL, SHUTDOWN or > LEAVING* statuses. MOVING and REMOVING_TOKEN nodes do not have their ring > information updated (nor do others, but these other states _should_ only be > taken by nodes that are not members of the ring). > If a node missed the most recent token-modifying events because they were not > a member of the ring when they happened (or because Gossip was delayed to > them), they will retain an invalid view of the ring until the node enters the > one of the NORMAL, SHUTDOWN or LEAVING states. > *LEAVING is populated differently, however, and in a probably unsafe manner > that this work will also address. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.11 updated (60bdfb1 -> 8db0d84)
This is an automated email from the ASF dual-hosted git repository. samt pushed a change to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 60bdfb1 Fix cassandra-env.sh to use $CASSANDRA_CONF to find cassandra-jaas.config new e4b5d98 Update token metadata for non-normal state changes new 8db0d84 Merge branch 'cassandra-3.0' into cassandra-3.11 The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: CHANGES.txt| 1 + .../apache/cassandra/concurrent/SEPExecutor.java | 10 +- .../org/apache/cassandra/concurrent/SEPWorker.java | 33 ++--- .../cassandra/concurrent/SharedExecutorPool.java | 8 +- .../apache/cassandra/concurrent/StageManager.java | 2 +- .../org/apache/cassandra/net/MessagingService.java | 10 ++ .../apache/cassandra/service/StorageService.java | 165 - .../org/apache/cassandra/utils/ExpiringMap.java| 5 + .../org/apache/cassandra/distributed/Cluster.java | 18 ++- .../cassandra/distributed/UpgradeableCluster.java | 12 +- .../apache/cassandra/distributed/api/Feature.java | 6 +- .../cassandra/distributed/api/IInstance.java | 5 +- .../distributed/impl/AbstractCluster.java | 58 ++-- .../impl/DelegatingInvokableInstance.java | 6 +- .../cassandra/distributed/impl/Instance.java | 46 -- .../distributed/impl/InstanceClassLoader.java | 2 +- .../distributed/test/DistributedTestBase.java | 1 + .../cassandra/distributed/test/GossipTest.java | 113 ++ .../cassandra/concurrent/SEPExecutorTest.java | 2 +- .../org/apache/cassandra/service/MoveTest.java | 11 +- 20 files changed, 374 insertions(+), 140 deletions(-) copy src/java/org/apache/cassandra/cache/IRowCacheEntry.java => test/distributed/org/apache/cassandra/distributed/api/Feature.java (90%) create mode 100644 test/distributed/org/apache/cassandra/distributed/test/GossipTest.java - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch trunk updated (797ec05 -> cc1bc2a)
This is an automated email from the ASF dual-hosted git repository. samt pushed a change to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git. from 797ec05 Merge branch 'cassandra-3.11' into trunk new e4b5d98 Update token metadata for non-normal state changes new 8db0d84 Merge branch 'cassandra-3.0' into cassandra-3.11 new cc1bc2a Merge branch 'cassandra-3.11' into trunk The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "add" were already present in the repository and have only been added to this reference. Summary of changes: .../apache/cassandra/service/StorageService.java | 156 - .../org/apache/cassandra/service/MoveTest.java | 11 +- 2 files changed, 96 insertions(+), 71 deletions(-) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[cassandra] branch cassandra-3.0 updated: Update token metadata for non-normal state changes
This is an automated email from the ASF dual-hosted git repository. samt pushed a commit to branch cassandra-3.0 in repository https://gitbox.apache.org/repos/asf/cassandra.git The following commit(s) were added to refs/heads/cassandra-3.0 by this push: new e4b5d98 Update token metadata for non-normal state changes e4b5d98 is described below commit e4b5d9818f003be2b9091c48f8435d29202ffe2d Author: Benedict Elliott Smith AuthorDate: Thu May 2 17:24:43 2019 +0100 Update token metadata for non-normal state changes Patch by Benedict Elliot Smith; reviewed by Sam Tunnicliffe for CASSANDRA-15120 --- CHANGES.txt| 1 + .../apache/cassandra/concurrent/SEPExecutor.java | 10 +- .../org/apache/cassandra/concurrent/SEPWorker.java | 33 ++--- .../cassandra/concurrent/SharedExecutorPool.java | 8 +- .../apache/cassandra/concurrent/StageManager.java | 2 +- .../org/apache/cassandra/net/MessagingService.java | 10 ++ .../apache/cassandra/service/StorageService.java | 163 - .../org/apache/cassandra/utils/ExpiringMap.java| 5 + .../org/apache/cassandra/distributed/Cluster.java | 18 ++- .../cassandra/distributed/UpgradeableCluster.java | 12 +- .../apache/cassandra/distributed/api/Feature.java | 24 +++ .../cassandra/distributed/api/IInstance.java | 5 +- .../distributed/impl/AbstractCluster.java | 58 ++-- .../impl/DelegatingInvokableInstance.java | 6 +- .../cassandra/distributed/impl/Instance.java | 46 -- .../distributed/impl/InstanceClassLoader.java | 2 +- .../distributed/test/DistributedTestBase.java | 1 + .../cassandra/distributed/test/GossipTest.java | 113 ++ .../cassandra/concurrent/SEPExecutorTest.java | 2 +- .../org/apache/cassandra/service/MoveTest.java | 11 +- 20 files changed, 393 insertions(+), 137 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 6f6bd70..36eb9c2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.19 + * Update token metadata when handling MOVING/REMOVING_TOKEN events (CASSANDRA-15120) * Add ability to customize cassandra log directory using $CASSANDRA_LOG_DIR (CASSANDRA-15090) * Skip cells with illegal column names when reading legacy sstables (CASSANDRA-15086) * Fix assorted gossip races and add related runtime checks (CASSANDRA-15059) diff --git a/src/java/org/apache/cassandra/concurrent/SEPExecutor.java b/src/java/org/apache/cassandra/concurrent/SEPExecutor.java index 8b12b82..d5c7b14 100644 --- a/src/java/org/apache/cassandra/concurrent/SEPExecutor.java +++ b/src/java/org/apache/cassandra/concurrent/SEPExecutor.java @@ -174,7 +174,11 @@ public class SEPExecutor extends AbstractLocalAwareExecutorService long current = permits.get(); int workPermits = workPermits(current); if (permits.compareAndSet(current, updateWorkPermits(current, workPermits + 1))) -return; +{ +if (shuttingDown && workPermits + 1 == maxWorkers) +shutdown.signalAll(); +break; +} } } @@ -206,7 +210,7 @@ public class SEPExecutor extends AbstractLocalAwareExecutorService { shuttingDown = true; pool.executors.remove(this); -if (getActiveCount() == 0) +if (getActiveCount() == 0 && getPendingTasks() == 0) shutdown.signalAll(); // release metrics @@ -219,6 +223,8 @@ public class SEPExecutor extends AbstractLocalAwareExecutorService List aborted = new ArrayList<>(); while (takeTaskPermit()) aborted.add(tasks.poll()); +if (getActiveCount() == 0) +shutdown.signalAll(); return aborted; } diff --git a/src/java/org/apache/cassandra/concurrent/SEPWorker.java b/src/java/org/apache/cassandra/concurrent/SEPWorker.java index edc31da..f7eb47a 100644 --- a/src/java/org/apache/cassandra/concurrent/SEPWorker.java +++ b/src/java/org/apache/cassandra/concurrent/SEPWorker.java @@ -98,7 +98,6 @@ final class SEPWorker extends AtomicReference implements Runnabl // if we do have tasks assigned, nobody will change our state so we can simply set it to WORKING // (which is also a state that will never be interrupted externally) set(Work.WORKING); -boolean shutdown; while (true) { // before we process any task, we maybe schedule a new worker _to our executor only_; this @@ -111,19 +110,13 @@ final class SEPWorker extends AtomicReference implements Runnabl task = null; // if we're shutting down, or we fail to take a permit, we don't perform any more work -if ((shutdown = assigned.shuttingDown) || !assigned.takeTaskPermit()) +if (!assi
[cassandra] 01/01: Merge branch 'cassandra-3.11' into trunk
This is an automated email from the ASF dual-hosted git repository. samt pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra.git commit cc1bc2a8e1bcac8cee08289ca04d6490a95f225e Merge: 797ec05 8db0d84 Author: Sam Tunnicliffe AuthorDate: Mon Jun 3 16:02:36 2019 +0100 Merge branch 'cassandra-3.11' into trunk .../apache/cassandra/service/StorageService.java | 156 - .../org/apache/cassandra/service/MoveTest.java | 11 +- 2 files changed, 96 insertions(+), 71 deletions(-) diff --cc src/java/org/apache/cassandra/service/StorageService.java index eade7dd,c340db6..2b6bf1d --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -2457,18 -2311,95 +2457,94 @@@ public class StorageService extends Not tokenMetadata.updateHostId(Gossiper.instance.getHostId(newNode), newNode); } -private void ensureUpToDateTokenMetadata(String status, InetAddress endpoint) ++private void ensureUpToDateTokenMetadata(String status, InetAddressAndPort endpoint) + { + Set tokens = new TreeSet<>(getTokensFor(endpoint)); + + if (logger.isDebugEnabled()) + logger.debug("Node {} state {}, tokens {}", endpoint, status, tokens); + + // If the node is previously unknown or tokens do not match, update tokenmetadata to + // have this node as 'normal' (it must have been using this token before the + // leave). This way we'll get pending ranges right. + if (!tokenMetadata.isMember(endpoint)) + { + logger.info("Node {} state jump to {}", endpoint, status); + updateTokenMetadata(endpoint, tokens); + } + else if (!tokens.equals(new TreeSet<>(tokenMetadata.getTokens(endpoint + { + logger.warn("Node {} '{}' token mismatch. Long network partition?", endpoint, status); + updateTokenMetadata(endpoint, tokens); + } + } + -private void updateTokenMetadata(InetAddress endpoint, Iterable tokens) ++private void updateTokenMetadata(InetAddressAndPort endpoint, Iterable tokens) + { + updateTokenMetadata(endpoint, tokens, new HashSet<>()); + } + -private void updateTokenMetadata(InetAddress endpoint, Iterable tokens, Set endpointsToRemove) ++private void updateTokenMetadata(InetAddressAndPort endpoint, Iterable tokens, Set endpointsToRemove) + { + Set tokensToUpdateInMetadata = new HashSet<>(); + Set tokensToUpdateInSystemKeyspace = new HashSet<>(); + + for (final Token token : tokens) + { + // we don't want to update if this node is responsible for the token and it has a later startup time than endpoint. -InetAddress currentOwner = tokenMetadata.getEndpoint(token); ++InetAddressAndPort currentOwner = tokenMetadata.getEndpoint(token); + if (currentOwner == null) + { + logger.debug("New node {} at token {}", endpoint, token); + tokensToUpdateInMetadata.add(token); + tokensToUpdateInSystemKeyspace.add(token); + } + else if (endpoint.equals(currentOwner)) + { + // set state back to normal, since the node may have tried to leave, but failed and is now back up + tokensToUpdateInMetadata.add(token); + tokensToUpdateInSystemKeyspace.add(token); + } + else if (Gossiper.instance.compareEndpointStartup(endpoint, currentOwner) > 0) + { + tokensToUpdateInMetadata.add(token); + tokensToUpdateInSystemKeyspace.add(token); + + // currentOwner is no longer current, endpoint is. Keep track of these moves, because when + // a host no longer has any tokens, we'll want to remove it. -Multimap epToTokenCopy = getTokenMetadata().getEndpointToTokenMapForReading(); ++Multimap epToTokenCopy = getTokenMetadata().getEndpointToTokenMapForReading(); + epToTokenCopy.get(currentOwner).remove(token); + if (epToTokenCopy.get(currentOwner).isEmpty()) + endpointsToRemove.add(currentOwner); + + logger.info("Nodes {} and {} have the same token {}. {} is the new owner", endpoint, currentOwner, token, endpoint); + } + else + { + logger.info("Nodes () and {} have the same token {}. Ignoring {}", endpoint, currentOwner, token, endpoint); + } + } + + tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint); -for (InetAddress ep : endpointsToRemove) ++for (InetAddressAndPort ep : endpointsToRemove) + { + removeEndpoint(ep); + if (replacing && ep.equal
[cassandra] 01/01: Merge branch 'cassandra-3.0' into cassandra-3.11
This is an automated email from the ASF dual-hosted git repository. samt pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git commit 8db0d84439c3209bc0da0c9a0b9730fb8b26a328 Merge: 60bdfb1 e4b5d98 Author: Sam Tunnicliffe AuthorDate: Mon Jun 3 15:59:51 2019 +0100 Merge branch 'cassandra-3.0' into cassandra-3.11 CHANGES.txt| 1 + .../apache/cassandra/concurrent/SEPExecutor.java | 10 +- .../org/apache/cassandra/concurrent/SEPWorker.java | 33 ++--- .../cassandra/concurrent/SharedExecutorPool.java | 8 +- .../apache/cassandra/concurrent/StageManager.java | 2 +- .../org/apache/cassandra/net/MessagingService.java | 10 ++ .../apache/cassandra/service/StorageService.java | 165 - .../org/apache/cassandra/utils/ExpiringMap.java| 5 + .../org/apache/cassandra/distributed/Cluster.java | 18 ++- .../cassandra/distributed/UpgradeableCluster.java | 12 +- .../apache/cassandra/distributed/api/Feature.java | 24 +++ .../cassandra/distributed/api/IInstance.java | 5 +- .../distributed/impl/AbstractCluster.java | 58 ++-- .../impl/DelegatingInvokableInstance.java | 6 +- .../cassandra/distributed/impl/Instance.java | 46 -- .../distributed/impl/InstanceClassLoader.java | 2 +- .../distributed/test/DistributedTestBase.java | 1 + .../cassandra/distributed/test/GossipTest.java | 113 ++ .../cassandra/concurrent/SEPExecutorTest.java | 2 +- .../org/apache/cassandra/service/MoveTest.java | 11 +- 20 files changed, 394 insertions(+), 138 deletions(-) diff --cc CHANGES.txt index 59c89b7,36eb9c2..ff985bd --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,8 -1,5 +1,9 @@@ -3.0.19 +3.11.5 + * Fix cassandra-env.sh to use $CASSANDRA_CONF to find cassandra-jaas.config (CASSANDRA-14305) + * Fixed nodetool cfstats printing index name twice (CASSANDRA-14903) + * Add flag to disable SASI indexes, and warnings on creation (CASSANDRA-14866) +Merged from 3.0: + * Update token metadata when handling MOVING/REMOVING_TOKEN events (CASSANDRA-15120) * Add ability to customize cassandra log directory using $CASSANDRA_LOG_DIR (CASSANDRA-15090) * Skip cells with illegal column names when reading legacy sstables (CASSANDRA-15086) * Fix assorted gossip races and add related runtime checks (CASSANDRA-15059) diff --cc src/java/org/apache/cassandra/service/StorageService.java index e64cbaa,4769b22..c340db6 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -764,15 -715,11 +764,16 @@@ public class StorageService extends Not private boolean shouldBootstrap() { -return DatabaseDescriptor.isAutoBootstrap() && !SystemKeyspace.bootstrapComplete() && !DatabaseDescriptor.getSeeds().contains(FBUtilities.getBroadcastAddress()); +return DatabaseDescriptor.isAutoBootstrap() && !SystemKeyspace.bootstrapComplete() && !isSeed(); +} + +public static boolean isSeed() +{ +return DatabaseDescriptor.getSeeds().contains(FBUtilities.getBroadcastAddress()); } - private void prepareToJoin() throws ConfigurationException + @VisibleForTesting + public void prepareToJoin() throws ConfigurationException { if (!joined) { @@@ -852,31 -788,9 +853,32 @@@ } } +public void waitForSchema(int delay) +{ +// first sleep the delay to make sure we see all our peers +for (int i = 0; i < delay; i += 1000) +{ +// if we see schema, we can proceed to the next check directly +if (!Schema.instance.getVersion().equals(SchemaConstants.emptyVersion)) +{ +logger.debug("got schema: {}", Schema.instance.getVersion()); +break; +} +Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); +} +// if our schema hasn't matched yet, wait until it has +// we do this by waiting for all in-flight migration requests and responses to complete +// (post CASSANDRA-1391 we don't expect this to be necessary very often, but it doesn't hurt to be careful) +if (!MigrationManager.isReadyForBootstrap()) +{ +setMode(Mode.JOINING, "waiting for schema information to complete", true); +MigrationManager.waitUntilReadyForBootstrap(); +} +} + - private void joinTokenRing(int delay) throws ConfigurationException - { + @VisibleForTesting + public void joinTokenRing(int delay) throws ConfigurationException -{ ++{ joined = true; // We bootstrap if we haven't successfully bootstrapped before, as long as we are not a seed. diff --cc test/distributed/org/apache/cassandra/distributed/impl/Instance.java index 3823