[jira] [Updated] (CASSANDRA-14557) Consider adding default and required keyspace replication options
[ https://issues.apache.org/jira/browse/CASSANDRA-14557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sumanth Pasupuleti updated CASSANDRA-14557: --- Attachment: 14557-trunk.txt > Consider adding default and required keyspace replication options > - > > Key: CASSANDRA-14557 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14557 > Project: Cassandra > Issue Type: Improvement > Components: Configuration >Reporter: Sumanth Pasupuleti >Assignee: Sumanth Pasupuleti >Priority: Minor > Fix For: 4.0 > > Attachments: 14557-trunk.txt > > > Ending up with a keyspace of RF=1 is unfortunately pretty easy in C* right > now - the system_auth table for example is created with RF=1 (to take into > account single node setups afaict from CASSANDRA-5112), and a user can > further create a keyspace with RF=1 posing availability and streaming risks > (e.g. rebuild). > I propose we add two configuration options in cassandra.yaml: > # {{default_keyspace_rf}} (default: 1) - If replication factors are not > specified, use this number. > # {{required_minimum_keyspace_rf}} (default: unset) - Prevent users from > creating a keyspace with an RF less than what is configured > These settings could further be re-used to: > * Provide defaults for new keyspaces created with SimpleStrategy or > NetworkTopologyStrategy (CASSANDRA-14303) > * Make the automatic token [allocation > algorithm|https://issues.apache.org/jira/browse/CASSANDRA-13701?focusedCommentId=16095662&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16095662] > interface more intuitive allowing easy use of the new token allocation > algorithm. > At the end of the day, if someone really wants to allow RF=1, they simply > don’t set the setting. For backwards compatibility the default remains 1 and > C* would create with RF=1, and would default to current behavior of allowing > any RF on keyspaces. -- 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-14557) Consider adding default and required keyspace replication options
[ https://issues.apache.org/jira/browse/CASSANDRA-14557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sumanth Pasupuleti updated CASSANDRA-14557: --- Status: Patch Available (was: In Progress) > Consider adding default and required keyspace replication options > - > > Key: CASSANDRA-14557 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14557 > Project: Cassandra > Issue Type: Improvement > Components: Configuration >Reporter: Sumanth Pasupuleti >Assignee: Sumanth Pasupuleti >Priority: Minor > Fix For: 4.0 > > Attachments: 14557-trunk.txt > > > Ending up with a keyspace of RF=1 is unfortunately pretty easy in C* right > now - the system_auth table for example is created with RF=1 (to take into > account single node setups afaict from CASSANDRA-5112), and a user can > further create a keyspace with RF=1 posing availability and streaming risks > (e.g. rebuild). > I propose we add two configuration options in cassandra.yaml: > # {{default_keyspace_rf}} (default: 1) - If replication factors are not > specified, use this number. > # {{required_minimum_keyspace_rf}} (default: unset) - Prevent users from > creating a keyspace with an RF less than what is configured > These settings could further be re-used to: > * Provide defaults for new keyspaces created with SimpleStrategy or > NetworkTopologyStrategy (CASSANDRA-14303) > * Make the automatic token [allocation > algorithm|https://issues.apache.org/jira/browse/CASSANDRA-13701?focusedCommentId=16095662&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16095662] > interface more intuitive allowing easy use of the new token allocation > algorithm. > At the end of the day, if someone really wants to allow RF=1, they simply > don’t set the setting. For backwards compatibility the default remains 1 and > C* would create with RF=1, and would default to current behavior of allowing > any RF on keyspaces. -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549610#comment-16549610 ] Jason Brown commented on CASSANDRA-14574: - In short, I wasn't handling all error cases correctly. I was correctly handling the case where there is a single message contained in the {{ByteBuf}} that is fully deserialized, and then if some exception happens in the pipeline, we close the channel and everything is fine. However, if there are multiple messages in the buffer, or the buffer is not fully consumed when deserializing, this is where the problems are. In the catch block of {{MessageInHandler.decode()}}, I am calling {{exceptionHandled()}}, which closes the channel. However, as we derive from {{ByteToMessageDecoder}}, as it is responding to the channel close event, it will see there are unconsumed bytes in the buffer (called {{cumulator}} in the class), and (re-)invoke {{decode()}}. Unfortunately, if you are in a bad state and partway through the stream, you will fail to correctly deserialize any messages and it's downhill from there (you start looping over the same failure pattern: exception, call close channel, {{ByteToMessageDecoder}} calls {{decode()}}, repeat ...). The most safe thing to do here is pass the caught exception to {{ByteToMessageDecoder}}, and prevent any future processing in the {{decode()}} method. The patch here resolves the error handling in the inbound pipeline (see below for details on the failing dtest): ||14574|| |[branch|https://github.com/jasobrown/cassandra/tree/14574]| |[utests & dtests|https://circleci.com/gh/jasobrown/workflows/cassandra/tree/14574]| This patch does several things in the {{MessageInHandler.decode()}} method's exception block (which is where the problems lie): - explicitly throws the exception from the handler to the parent {{ByteToMessageDecoder}}, where it can properly break out of the while loop in {{callDecode()}}, and more properly send the exception to the {{exceptionHandled()}} method (which is overridden in {{BaseMessageInHandler}}) where we close the channel. - moves the {{ByteBuf}} 's readIndex to the end of the buffer, to make it appear as though the buffer has been fully 'consumed'. This optimizes (and helps with correctness of) {{ByteToMessageDecoder}}, because when the channel is closed, {{ByteToMessageDecoder.channelInputClosed()}} attempts, several times, to ensure all the bytes from the backing {{ByteBuf}} ({{cumulator}}) are consumed. Even though the state of the implementing handler is borked, the parent {{ByteToMessageDecoder}} will still keep trying to make sure all the bytes in {{cumulator}} are consumed before closing the channel. Thus, forcing the readIndex to the end of the buffer avoids that situation. - adds an explicit {{CLOSED}} state to the {{MessageInHandler}}, and the handler's state is set to {{CLOSED}} when a message fails to be deserialized or other error, for example: when the table doesn't exist (see below). While this is probably not completely necessary for correctness due to the other changes (primarily the one about moving the readIndex to the end of the buffer), it makes the state of the handler much more explicit, depends less on knowledge of the internal details of netty, and more resilient to implementation changes in the netty library itself. After this fix, the {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}} dtest still fails, however, not with the same exception stack trace as reported. Instead, this one: {noformat} io.netty.handler.codec.DecoderException: org.apache.cassandra.exceptions.UnknownTableException: Couldn't find table with id 3694c0c0-8b6b-11e8-841f-cd3e85e9c250. If a table was just created, this is likely due to the schemanot being fully propagated. Please wait for schema agreement on table creation. at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:459) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1342) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:934)
[jira] [Comment Edited] (CASSANDRA-14289) Document sstable tools
[ https://issues.apache.org/jira/browse/CASSANDRA-14289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549614#comment-16549614 ] Valerie Parham-Thompson edited comment on CASSANDRA-14289 at 7/19/18 5:40 PM: -- I have the script running with slight edits using the same logic as gen-nodetool-docs.py. About half of the sstable* tools don't have help files, though, so I'm going to look at the sstable* helpfiles before submitting this. was (Author: dataindataout): I have the script running with slight edits using the same logic as gen-nodetool-docs.py. About half of the sstable* tools don't have help files, though, so I'm going to look at the sstable* helpfiles before committing this. > Document sstable tools > -- > > Key: CASSANDRA-14289 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14289 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Hannu Kröger >Priority: Major > > Following tools are missing in the documentation of cassandra tools on the > documentation site (http://cassandra.apache.org/doc/latest/tools/index.html): > * sstabledump > * sstableexpiredblockers > * sstablelevelreset > * sstableloader > * sstablemetadata > * sstableofflinerelevel > * sstablerepairedset > * sstablescrub > * sstablesplit > * sstableupgrade > * sstableutil > * sstableverify -- 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-14289) Document sstable tools
[ https://issues.apache.org/jira/browse/CASSANDRA-14289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549614#comment-16549614 ] Valerie Parham-Thompson commented on CASSANDRA-14289: - I have the script running with slight edits using the same logic as gen-nodetool-docs.py. About half of the sstable* tools don't have help files, though, so I'm going to look at the sstable* helpfiles before committing this. > Document sstable tools > -- > > Key: CASSANDRA-14289 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14289 > Project: Cassandra > Issue Type: Improvement > Components: Documentation and Website >Reporter: Hannu Kröger >Priority: Major > > Following tools are missing in the documentation of cassandra tools on the > documentation site (http://cassandra.apache.org/doc/latest/tools/index.html): > * sstabledump > * sstableexpiredblockers > * sstablelevelreset > * sstableloader > * sstablemetadata > * sstableofflinerelevel > * sstablerepairedset > * sstablescrub > * sstablesplit > * sstableupgrade > * sstableutil > * sstableverify -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549621#comment-16549621 ] Jason Brown commented on CASSANDRA-14574: - UPDATE: looks like [~iamaleksey] had already seen the original dtest failure for that dtest, and commented here. Thus, I'm gonna ignore the dtest fail, as well. > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Brown updated CASSANDRA-14574: Reviewer: Dinesh Joshi > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549621#comment-16549621 ] Jason Brown edited comment on CASSANDRA-14574 at 7/19/18 5:57 PM: -- UPDATE: looks like [~iamaleksey] had already seen the original dtest failure for that dtest, and [commented here|https://issues.apache.org/jira/browse/CASSANDRA-13426?focusedCommentId=16436169&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16436169]. Thus, I'm gonna ignore the dtest fail, as well. was (Author: jasobrown): UPDATE: looks like [~iamaleksey] had already seen the original dtest failure for that dtest, and commented here. Thus, I'm gonna ignore the dtest fail, as well. > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549702#comment-16549702 ] Dinesh Joshi commented on CASSANDRA-14571: -- I recommend marking this test as an expected failure until this ticket is fixed. Having tests fail and then ignored causes confusion (See: CASSANDRA-14574, CASSANDRA-13426). {code:python} @xfail("Should be addressed with CASSANDRA-14574") def test_populate_mv_after_insert_wide_rows(self):\{code} That way the test will still be run and still be included in the report but it wont fail the test suite. This is better than just ignoring dtest run failures. > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549701#comment-16549701 ] Dinesh Joshi commented on CASSANDRA-14574: -- Hi [~jasobrown] and [~iamaleksey], I don't wish to hijack this ticket but I strongly recommend marking this test as an expected failure. See my comment on [CASSANDRA-14571|https://issues.apache.org/jira/browse/CASSANDRA-14571]. > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549702#comment-16549702 ] Dinesh Joshi edited comment on CASSANDRA-14571 at 7/19/18 7:05 PM: --- I recommend marking this test as an expected failure until this ticket is fixed. Having tests fail and then ignored causes confusion (See: CASSANDRA-14574, CASSANDRA-13426). {code:python} @xfail("Should be addressed with CASSANDRA-14574") def test_populate_mv_after_insert_wide_rows(self):{code} That way the test will still be run and still be included in the report but it wont fail the test suite. This is better than just ignoring dtest run failures. was (Author: djoshi3): I recommend marking this test as an expected failure until this ticket is fixed. Having tests fail and then ignored causes confusion (See: CASSANDRA-14574, CASSANDRA-13426). {code:python} @xfail("Should be addressed with CASSANDRA-14574") def test_populate_mv_after_insert_wide_rows(self):\{code} That way the test will still be run and still be included in the report but it wont fail the test suite. This is better than just ignoring dtest run failures. > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549702#comment-16549702 ] Dinesh Joshi edited comment on CASSANDRA-14571 at 7/19/18 7:05 PM: --- I recommend marking this test as an expected failure until this ticket is fixed. Having tests fail and then ignored causes confusion (See: CASSANDRA-14574, CASSANDRA-13426). {code} @xfail("Should be addressed with CASSANDRA-14571") def test_populate_mv_after_insert_wide_rows(self):{code} That way the test will still be run and still be included in the report but it wont fail the test suite. This is better than just ignoring dtest run failures. was (Author: djoshi3): I recommend marking this test as an expected failure until this ticket is fixed. Having tests fail and then ignored causes confusion (See: CASSANDRA-14574, CASSANDRA-13426). {code:python} @xfail("Should be addressed with CASSANDRA-14574") def test_populate_mv_after_insert_wide_rows(self):{code} That way the test will still be run and still be included in the report but it wont fail the test suite. This is better than just ignoring dtest run failures. > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549746#comment-16549746 ] Aleksey Yeschenko commented on CASSANDRA-14574: --- [~djoshi3] Nah. The patch for it is incoming (see [here|https://github.com/iamaleksey/cassandra/commits/14571-4.0]). > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549784#comment-16549784 ] Dinesh Joshi commented on CASSANDRA-14574: -- Thanks, [~iamaleksey]. > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Racy incorrect handling of incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549946#comment-16549946 ] Aleksey Yeschenko commented on CASSANDRA-14574: --- [~jasobrown] Thanks for looking into it quickly and coming up with a patch. I'm wondering however if maybe this is a good time to improve handling of errors like this by skipping the remaining payload bytes, to leave the stream in a valid state, without closing down connections. > Racy incorrect handling of incoming messages > - > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-14574: -- Summary: Incomplete handling of exceptions when decoding incoming messages (was: Racy incorrect handling of incoming messages ) > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16549972#comment-16549972 ] Aleksey Yeschenko commented on CASSANDRA-14574: --- Changed the title to reflect the actual issue versus my initial incorrect/incomplete diagnosis (nothing racy here). > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14525) streaming failure during bootstrap makes new node into inconsistent state
[ https://issues.apache.org/jira/browse/CASSANDRA-14525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550004#comment-16550004 ] Dinesh Joshi commented on CASSANDRA-14525: -- [~KurtG] - I pulled your branch and have run the dtests with some failures. See [here.|https://circleci.com/workflow-run/035dca04-5b2b-4fb2-aebe-3089d876f995] > streaming failure during bootstrap makes new node into inconsistent state > - > > Key: CASSANDRA-14525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14525 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jaydeepkumar Chovatia >Assignee: Jaydeepkumar Chovatia >Priority: Major > Fix For: 4.0, 2.2.x, 3.0.x > > > If bootstrap fails for newly joining node (most common reason is due to > streaming failure) then Cassandra state remains in {{joining}} state which is > fine but Cassandra also enables Native transport which makes overall state > inconsistent. This further creates NullPointer exception if auth is enabled > on the new node, please find reproducible steps here: > For example if bootstrap fails due to streaming errors like > {quote}java.util.concurrent.ExecutionException: > org.apache.cassandra.streaming.StreamException: Stream failed > at > com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) > ~[guava-18.0.jar:na] > at > org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:1256) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:894) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:660) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:573) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:330) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:567) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:695) > [apache-cassandra-3.0.16.jar:3.0.16] > Caused by: org.apache.cassandra.streaming.StreamException: Stream failed > at > org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202) > ~[guava-18.0.jar:na] > at > org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:211) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:187) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:440) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:540) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.ConnectionHandler$IncomingMessageHandler.run(ConnectionHandler.java:307) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121] > {quote} > then variable [StorageService.java::dataAvailable > |https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/StorageService.java#L892] > will be {{false}}. Since {{dataAvailable}} is {{false}} hence it will not > call [StorageService.java::finishJoiningRing > |https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/StorageService.java#L933] > and as a result > [StorageService.java::doAuthSetup|https://github.com/apache/
[jira] [Updated] (CASSANDRA-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-14571: -- Reviewer: Sam Tunnicliffe Status: Patch Available (was: Open) > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550054#comment-16550054 ] Aleksey Yeschenko commented on CASSANDRA-14571: --- [~beobal] Pushed the branch [here|https://github.com/iamaleksey/cassandra/commits/14571-4.0]. Had CircleCI run all three jobs multiple times. Examples [here|https://circleci.com/gh/iamaleksey/cassandra/465], [here|https://circleci.com/gh/iamaleksey/cassandra/467], and [here|https://circleci.com/gh/iamaleksey/cassandra/462], and more when it came from. It's a tiny patch, it makes a best-effort attempt at waiting for schema to converge. If it fails, it just logs. Hard-throwing caused some other MV-related tests to time out occasionally, sadly. If you can review it (it's really small, I promise) or maybe even commit, with whatever changes you feel necessary, tomorrow - I'll super appreciate it (I'll be away, but trunk dtests never rest and will keep falling until this gets in). Cheers (: > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14571) Fix race condition in MV build/propagate when there is existing data in the base table
[ https://issues.apache.org/jira/browse/CASSANDRA-14571?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550054#comment-16550054 ] Aleksey Yeschenko edited comment on CASSANDRA-14571 at 7/20/18 12:19 AM: - [~beobal] Pushed the branch [here|https://github.com/iamaleksey/cassandra/commits/14571-4.0]. Had CircleCI run all three jobs multiple times. Examples [here|https://circleci.com/gh/iamaleksey/cassandra/465], [here|https://circleci.com/gh/iamaleksey/cassandra/467], and [here|https://circleci.com/gh/iamaleksey/cassandra/462], and more where it came from. It's a tiny patch, it makes a best-effort attempt at waiting for schema to converge. If it fails, it just logs. Hard-throwing caused some other MV-related tests to time out occasionally, sadly. If you can review it (it's really small, I promise) or maybe even commit, with whatever changes you feel necessary, tomorrow - I'll super appreciate it (I'll be away, but trunk dtests never rest and will keep falling until this gets in). Cheers (: was (Author: iamaleksey): [~beobal] Pushed the branch [here|https://github.com/iamaleksey/cassandra/commits/14571-4.0]. Had CircleCI run all three jobs multiple times. Examples [here|https://circleci.com/gh/iamaleksey/cassandra/465], [here|https://circleci.com/gh/iamaleksey/cassandra/467], and [here|https://circleci.com/gh/iamaleksey/cassandra/462], and more when it came from. It's a tiny patch, it makes a best-effort attempt at waiting for schema to converge. If it fails, it just logs. Hard-throwing caused some other MV-related tests to time out occasionally, sadly. If you can review it (it's really small, I promise) or maybe even commit, with whatever changes you feel necessary, tomorrow - I'll super appreciate it (I'll be away, but trunk dtests never rest and will keep falling until this gets in). Cheers (: > Fix race condition in MV build/propagate when there is existing data in the > base table > -- > > Key: CASSANDRA-14571 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14571 > Project: Cassandra > Issue Type: Bug >Reporter: Aleksey Yeschenko >Assignee: Aleksey Yeschenko >Priority: Major > Fix For: 4.0 > > > CASSANDRA-13426 exposed a race in MV initialisation and building, which now > breaks, consistently, > {{materialized_views_test.py::TestMaterializedViews::test_populate_mv_after_insert_wide_rows}}. > CASSANDRA-14168 is also directly related. -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550058#comment-16550058 ] Aleksey Yeschenko commented on CASSANDRA-14574: --- No longer important, since the source is now known, but I got a different instance of what I think is the same bug, triggered [here|https://circleci.com/gh/iamaleksey/cassandra/468#tests/containers/26]. > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550234#comment-16550234 ] Jason Brown commented on CASSANDRA-14574: - bq. longer important, since the source is now known, but I got a different instance of what I think is the same bug, triggered here Yup, looks like the broken behavior of constantly evaluating the buffer even though we're in a bad (incorrect) spot in the stream. bq. I'm wondering however if maybe this is a good time to improve handling of errors like this by skipping the remaining payload bytes, to leave the stream in a valid state, without closing down connections. I agree, especially after seeing that we drop the connection when we get a message for a table we don't know about yet. (I'll have to spelunk the git log to uncover the original logic for that one). That's one example, of course. That being said, however, I'd like to separate that effort from resolving this issue. That way we can unblock this faster. > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550234#comment-16550234 ] Jason Brown edited comment on CASSANDRA-14574 at 7/20/18 4:39 AM: -- bq. longer important, since the source is now known, but I got a different instance of what I think is the same bug, triggered here Yup, looks like the broken behavior of constantly evaluating the buffer even though we're in a bad (incorrect) spot in the stream. bq. I'm wondering however if maybe this is a good time to improve handling of errors like this by skipping the remaining payload bytes, to leave the stream in a valid state, without closing down connections. I agree, especially after seeing that we drop the connection when we get a message for a table we don't know about yet. (I'll have to spelunk the git log to uncover the original logic for that one). That's one example, of course. However, I'd like to separate that reevaluation effort from resolving this issue. That way we can unblock this faster. was (Author: jasobrown): bq. longer important, since the source is now known, but I got a different instance of what I think is the same bug, triggered here Yup, looks like the broken behavior of constantly evaluating the buffer even though we're in a bad (incorrect) spot in the stream. bq. I'm wondering however if maybe this is a good time to improve handling of errors like this by skipping the remaining payload bytes, to leave the stream in a valid state, without closing down connections. I agree, especially after seeing that we drop the connection when we get a message for a table we don't know about yet. (I'll have to spelunk the git log to uncover the original logic for that one). That's one example, of course. That being said, however, I'd like to separate that effort from resolving this issue. That way we can unblock this faster. > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14574) Incomplete handling of exceptions when decoding incoming messages
[ https://issues.apache.org/jira/browse/CASSANDRA-14574?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550235#comment-16550235 ] Jason Brown commented on CASSANDRA-14574: - created CASSANDRA-14575 to explore when we can safely ignore a failed internode message > Incomplete handling of exceptions when decoding incoming messages > -- > > Key: CASSANDRA-14574 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14574 > Project: Cassandra > Issue Type: Bug > Components: Streaming and Messaging >Reporter: Aleksey Yeschenko >Assignee: Jason Brown >Priority: Major > Fix For: 4.0 > > > {{MessageInHandler.decode()}} occasionally reads the payload incorrectly, > passing the full message to {{MessageIn.read()}} instead of just the payload > bytes. > You can see the stack trace in the logs from this [CI > run|https://circleci.com/gh/iamaleksey/cassandra/437#tests/containers/38]. > {code} > Caused by: java.lang.AssertionError: null > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:351) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:371) > at > org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:335) > at org.apache.cassandra.net.MessageIn.read(MessageIn.java:158) > at > org.apache.cassandra.net.async.MessageInHandler.decode(MessageInHandler.java:132) > {code} > Reconstructed, truncated stream passed to {{MessageIn.read()}}: > {{000b000743414c5f42414301002a01e1a5c9b089fd11e8b517436ee124300704005d10fc50ec}} > You can clearly see parameters in there encoded before the payload: > {{[43414c5f424143 - CAL_BAC] [01 - ONE_BYTE] [002a - 42, payload size] 01 e1 > a5 c9 b0 89 fd 11 e8 b5 17 43 6e e1 24 30 07 04 00 00 00 1d 10 fc 50 ec}} -- 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-14575) Reevaluate when to drop an internode connection on message error
Jason Brown created CASSANDRA-14575: --- Summary: Reevaluate when to drop an internode connection on message error Key: CASSANDRA-14575 URL: https://issues.apache.org/jira/browse/CASSANDRA-14575 Project: Cassandra Issue Type: Improvement Reporter: Jason Brown Assignee: Jason Brown Fix For: 4.0 As mentioned in CASSANDRA-14574, explore if and when we can safely ignore an incoming internode message on certain classes of failure. -- 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-14525) streaming failure during bootstrap makes new node into inconsistent state
[ https://issues.apache.org/jira/browse/CASSANDRA-14525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550237#comment-16550237 ] Kurt Greaves commented on CASSANDRA-14525: -- Thanks heaps [~djoshi3], I'll look into it. > streaming failure during bootstrap makes new node into inconsistent state > - > > Key: CASSANDRA-14525 > URL: https://issues.apache.org/jira/browse/CASSANDRA-14525 > Project: Cassandra > Issue Type: Bug > Components: Core >Reporter: Jaydeepkumar Chovatia >Assignee: Jaydeepkumar Chovatia >Priority: Major > Fix For: 4.0, 2.2.x, 3.0.x > > > If bootstrap fails for newly joining node (most common reason is due to > streaming failure) then Cassandra state remains in {{joining}} state which is > fine but Cassandra also enables Native transport which makes overall state > inconsistent. This further creates NullPointer exception if auth is enabled > on the new node, please find reproducible steps here: > For example if bootstrap fails due to streaming errors like > {quote}java.util.concurrent.ExecutionException: > org.apache.cassandra.streaming.StreamException: Stream failed > at > com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) > ~[guava-18.0.jar:na] > at > org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:1256) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:894) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:660) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.StorageService.initServer(StorageService.java:573) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:330) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:567) > [apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:695) > [apache-cassandra-3.0.16.jar:3.0.16] > Caused by: org.apache.cassandra.streaming.StreamException: Stream failed > at > org.apache.cassandra.streaming.management.StreamEventJMXNotifier.onFailure(StreamEventJMXNotifier.java:85) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at com.google.common.util.concurrent.Futures$6.run(Futures.java:1310) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:457) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.executeListener(ExecutionList.java:156) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.ExecutionList.execute(ExecutionList.java:145) > ~[guava-18.0.jar:na] > at > com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:202) > ~[guava-18.0.jar:na] > at > org.apache.cassandra.streaming.StreamResultFuture.maybeComplete(StreamResultFuture.java:211) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamResultFuture.handleSessionComplete(StreamResultFuture.java:187) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamSession.closeSession(StreamSession.java:440) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.StreamSession.onError(StreamSession.java:540) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.streaming.ConnectionHandler$IncomingMessageHandler.run(ConnectionHandler.java:307) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at > org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:79) > ~[apache-cassandra-3.0.16.jar:3.0.16] > at java.lang.Thread.run(Thread.java:745) ~[na:1.8.0_121] > {quote} > then variable [StorageService.java::dataAvailable > |https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/StorageService.java#L892] > will be {{false}}. Since {{dataAvailable}} is {{false}} hence it will not > call [StorageService.java::finishJoiningRing > |https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/StorageService.java#L933] > and as a result > [StorageService.java::doAuthSetup|https://github.com/apache/cassandra/blob/cassandra-3.0/src/java/org/apache/cassandra/service/StorageService.java#L999] > will not be invoked.
[jira] [Updated] (CASSANDRA-13464) Failed to create Materialized view with a specific token range
[ https://issues.apache.org/jira/browse/CASSANDRA-13464?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Kurt Greaves updated CASSANDRA-13464: - Issue Type: Bug (was: Improvement) > Failed to create Materialized view with a specific token range > -- > > Key: CASSANDRA-13464 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13464 > Project: Cassandra > Issue Type: Bug >Reporter: Natsumi Kojima >Assignee: Krishna Dattu Koneru >Priority: Minor > Labels: materializedviews > > Failed to create Materialized view with a specific token range. > Example : > {code:java} > $ ccm create "MaterializedView" -v 3.0.13 > $ ccm populate -n 3 > $ ccm start > $ ccm status > Cluster: 'MaterializedView' > --- > node1: UP > node3: UP > node2: UP > $ccm node1 cqlsh > Connected to MaterializedView at 127.0.0.1:9042. > [cqlsh 5.0.1 | Cassandra 3.0.13 | CQL spec 3.4.0 | Native protocol v4] > Use HELP for help. > cqlsh> CREATE KEYSPACE test WITH replication = {'class':'SimpleStrategy', > 'replication_factor':3}; > cqlsh> CREATE TABLE test.test ( id text PRIMARY KEY , value1 text , value2 > text, value3 text); > $ccm node1 ring test > Datacenter: datacenter1 > == > AddressRackStatus State LoadOwns > Token > > 3074457345618258602 > 127.0.0.1 rack1 Up Normal 64.86 KB100.00% > -9223372036854775808 > 127.0.0.2 rack1 Up Normal 86.49 KB100.00% > -3074457345618258603 > 127.0.0.3 rack1 Up Normal 89.04 KB100.00% > 3074457345618258602 > $ ccm node1 cqlsh > cqlsh> INSERT INTO test.test (id, value1 , value2, value3 ) VALUES ('aaa', > 'aaa', 'aaa' ,'aaa'); > cqlsh> INSERT INTO test.test (id, value1 , value2, value3 ) VALUES ('bbb', > 'bbb', 'bbb' ,'bbb'); > cqlsh> SELECT token(id),id,value1 FROM test.test; > system.token(id) | id | value1 > --+-+ > -4737872923231490581 | aaa |aaa > -3071845237020185195 | bbb |bbb > (2 rows) > cqlsh> CREATE MATERIALIZED VIEW test.test_view AS SELECT value1, id FROM > test.test WHERE id IS NOT NULL AND value1 IS NOT NULL AND TOKEN(id) > > -9223372036854775808 AND TOKEN(id) < -3074457345618258603 PRIMARY KEY(value1, > id) WITH CLUSTERING ORDER BY (id ASC); > ServerError: java.lang.ClassCastException: > org.apache.cassandra.cql3.TokenRelation cannot be cast to > org.apache.cassandra.cql3.SingleColumnRelation > {code} > Stacktrace : > {code:java} > INFO [MigrationStage:1] 2017-04-19 18:32:48,131 ColumnFamilyStore.java:389 - > Initializing test.test > WARN [SharedPool-Worker-1] 2017-04-19 18:44:07,263 FBUtilities.java:337 - > Trigger directory doesn't exist, please create it and try again. > ERROR [SharedPool-Worker-1] 2017-04-19 18:46:10,072 QueryMessage.java:128 - > Unexpected error during query > java.lang.ClassCastException: org.apache.cassandra.cql3.TokenRelation cannot > be cast to org.apache.cassandra.cql3.SingleColumnRelation > at > org.apache.cassandra.db.view.View.relationsToWhereClause(View.java:275) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.cql3.statements.CreateViewStatement.announceMigration(CreateViewStatement.java:219) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.cql3.statements.SchemaAlteringStatement.execute(SchemaAlteringStatement.java:93) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:206) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:237) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:222) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:115) > ~[apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:513) > [apache-cassandra-3.0.13.jar:3.0.13] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:407) > [apache-cassandra-3.0.13.jar:3.0.13] > 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)
[jira] [Commented] (CASSANDRA-10540) RangeAwareCompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-10540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16550267#comment-16550267 ] Kurt Greaves commented on CASSANDRA-10540: -- [~krummas] We didn't run into any issues after applying the repair patch from CASSANDRA-13938. We'll probably look at doing a few more tests with repair to measure repair timings with RACS enabled. Let me know if there's anything you need help with to get this in by 4.0. > RangeAwareCompaction > > > Key: CASSANDRA-10540 > URL: https://issues.apache.org/jira/browse/CASSANDRA-10540 > Project: Cassandra > Issue Type: New Feature >Reporter: Marcus Eriksson >Assignee: Marcus Eriksson >Priority: Major > Labels: compaction, lcs, vnodes > Fix For: 4.x > > > Broken out from CASSANDRA-6696, we should split sstables based on ranges > during compaction. > Requirements; > * dont create tiny sstables - keep them bunched together until a single vnode > is big enough (configurable how big that is) > * make it possible to run existing compaction strategies on the per-range > sstables > We should probably add a global compaction strategy parameter that states > whether this should be enabled or not. -- 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