[jira] [Assigned] (CASSANDRA-17117) CQLSSTableWriter backwards compatibility fix for Date fields

2021-11-04 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe reassigned CASSANDRA-17117:
---

Assignee: Doug Rohrer  (was: Sam Tunnicliffe)

> CQLSSTableWriter backwards compatibility fix for Date fields
> 
>
> Key: CASSANDRA-17117
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17117
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/SSTable
>Reporter: Doug Rohrer
>Assignee: Doug Rohrer
>Priority: Normal
> Attachments: CASSANDRA-17117-4.0.patch, CASSANDRA-17117-trunk.patch
>
>
> {{cassandra-all}} library consumers of the CQLSSTableWriter class cannot 
> easily create an appropriate instance of the {{LocalDate}} class in order to 
> write SSTables including dates, and the current implementation no longer 
> accepts a {{int}} value as a valid input as previous versions of the class 
> would - we used to use 
> {{((AbstractType)columnSpecification.type).decompose(value);}} in order to 
> serialize the value, but now we use the type codec's .serialize method. 
> Unfortunately, this doesn't work when the consumer can't easily create the 
> type needed (serialize, in the case of dates, takes a {{LocalDate}} instance 
> which is not easy to construct outside of Cassandra internal code).
> This can be worked around by catching the resulting {{ClassCastException}} 
> thrown from the {{serialize}} call and falling back to the older 
> {{decompose}} implementation, which would maintain backwards-compatibility 
> with other users of the CQLSSTableWriter in cases where they are passing 
> integers for date fields, which used to work.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-17117) CQLSSTableWriter backwards compatibility fix for Date fields

2021-11-04 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-17117:

Authors: Doug Rohrer  (was: Sam Tunnicliffe)

> CQLSSTableWriter backwards compatibility fix for Date fields
> 
>
> Key: CASSANDRA-17117
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17117
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/SSTable
>Reporter: Doug Rohrer
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Attachments: CASSANDRA-17117-4.0.patch, CASSANDRA-17117-trunk.patch
>
>
> {{cassandra-all}} library consumers of the CQLSSTableWriter class cannot 
> easily create an appropriate instance of the {{LocalDate}} class in order to 
> write SSTables including dates, and the current implementation no longer 
> accepts a {{int}} value as a valid input as previous versions of the class 
> would - we used to use 
> {{((AbstractType)columnSpecification.type).decompose(value);}} in order to 
> serialize the value, but now we use the type codec's .serialize method. 
> Unfortunately, this doesn't work when the consumer can't easily create the 
> type needed (serialize, in the case of dates, takes a {{LocalDate}} instance 
> which is not easy to construct outside of Cassandra internal code).
> This can be worked around by catching the resulting {{ClassCastException}} 
> thrown from the {{serialize}} call and falling back to the older 
> {{decompose}} implementation, which would maintain backwards-compatibility 
> with other users of the CQLSSTableWriter in cases where they are passing 
> integers for date fields, which used to work.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-17085) commit log was switched from non-daemon to daemon threads, which causes the JVM to exit in some case as no non-daemon threads are active

2021-11-03 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-17085:

Status: Ready to Commit  (was: Review In Progress)

+1 LGTM

> commit log was switched from non-daemon to daemon threads, which causes the 
> JVM to exit in some case as no non-daemon threads are active
> 
>
> Key: CASSANDRA-17085
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17085
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/dtest/python
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 4.x
>
>
> Right now bootstrap tests are failing every time we run, this work is to 
> debug and fix the underling issue.
> Examples:
> https://app.circleci.com/pipelines/github/dcapwell/cassandra/1062/workflows/ba3e6395-ef22-4724-8424-0549e65d8cff/jobs/7089
> {code}
> >   node3.nodetool('bootstrap resume')
> bootstrap_test.py:1014: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:1005: in nodetool
> return handle_external_tool_process(p, ['nodetool', '-h', 'localhost', 
> '-p', str(self.jmx_port)] + shlex.split(cmd))
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> process = 
> cmd_args = ['nodetool', '-h', 'localhost', '-p', '7300', 'bootstrap', ...]
> def handle_external_tool_process(process, cmd_args):
> out, err = process.communicate()
> if (out is not None) and isinstance(out, bytes):
> out = out.decode()
> if (err is not None) and isinstance(err, bytes):
> err = err.decode()
> rc = process.returncode
> 
> if rc != 0:
> >   raise ToolError(cmd_args, rc, out, err)
> E   ccmlib.node.ToolError: Subprocess ['nodetool', '-h', 'localhost', 
> '-p', '7300', 'bootstrap', 'resume'] exited with non-zero status; exit 
> status: 1; 
> E   stderr: nodetool: Failed to connect to 'localhost:7300' - 
> EOFException: 'null'.
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:2305: ToolError
> {code}
> https://app.circleci.com/pipelines/github/dcapwell/cassandra/1062/workflows/ba3e6395-ef22-4724-8424-0549e65d8cff/jobs/7087
> {code}
> >   node1.start()
> bootstrap_test.py:483: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:895: in start
> node.watch_log_for_alive(self, from_mark=mark)
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:664: in 
> watch_log_for_alive
> self.watch_log_for(tofind, from_mark=from_mark, timeout=timeout, 
> filename=filename)
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:592: in watch_log_for
> head=reads[:50], tail="..."+reads[len(reads)-150:]))
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> start = 1635453190.3118386, timeout = 120
> msg = "Missing: ['127.0.0.1:7000.* is now UP'] not found in system.log:\n 
> Head: \n Tail: ..."
> node = 'node3'
> @staticmethod
> def raise_if_passed(start, timeout, msg, node=None):
> if start + timeout < time.time():
> >   raise TimeoutError.create(start, timeout, msg, node)
> E   ccmlib.node.TimeoutError: 28 Oct 2021 20:35:10 [node3] after 
> 120.12/120 seconds Missing: ['127.0.0.1:7000.* is now UP'] not found in 
> system.log:
> EHead: 
> ETail: ...
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-17085) commit log was switched from non-daemon to daemon threads, which causes the JVM to exit in some case as no non-daemon threads are active

2021-11-03 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-17085:

Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Sam Tunnicliffe, Sam Tunnicliffe
   Status: Review In Progress  (was: Patch Available)

> commit log was switched from non-daemon to daemon threads, which causes the 
> JVM to exit in some case as no non-daemon threads are active
> 
>
> Key: CASSANDRA-17085
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17085
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/dtest/python
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 4.x
>
>
> Right now bootstrap tests are failing every time we run, this work is to 
> debug and fix the underling issue.
> Examples:
> https://app.circleci.com/pipelines/github/dcapwell/cassandra/1062/workflows/ba3e6395-ef22-4724-8424-0549e65d8cff/jobs/7089
> {code}
> >   node3.nodetool('bootstrap resume')
> bootstrap_test.py:1014: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:1005: in nodetool
> return handle_external_tool_process(p, ['nodetool', '-h', 'localhost', 
> '-p', str(self.jmx_port)] + shlex.split(cmd))
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> process = 
> cmd_args = ['nodetool', '-h', 'localhost', '-p', '7300', 'bootstrap', ...]
> def handle_external_tool_process(process, cmd_args):
> out, err = process.communicate()
> if (out is not None) and isinstance(out, bytes):
> out = out.decode()
> if (err is not None) and isinstance(err, bytes):
> err = err.decode()
> rc = process.returncode
> 
> if rc != 0:
> >   raise ToolError(cmd_args, rc, out, err)
> E   ccmlib.node.ToolError: Subprocess ['nodetool', '-h', 'localhost', 
> '-p', '7300', 'bootstrap', 'resume'] exited with non-zero status; exit 
> status: 1; 
> E   stderr: nodetool: Failed to connect to 'localhost:7300' - 
> EOFException: 'null'.
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:2305: ToolError
> {code}
> https://app.circleci.com/pipelines/github/dcapwell/cassandra/1062/workflows/ba3e6395-ef22-4724-8424-0549e65d8cff/jobs/7087
> {code}
> >   node1.start()
> bootstrap_test.py:483: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:895: in start
> node.watch_log_for_alive(self, from_mark=mark)
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:664: in 
> watch_log_for_alive
> self.watch_log_for(tofind, from_mark=from_mark, timeout=timeout, 
> filename=filename)
> ../env3.6/lib/python3.6/site-packages/ccmlib/node.py:592: in watch_log_for
> head=reads[:50], tail="..."+reads[len(reads)-150:]))
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> _ 
> start = 1635453190.3118386, timeout = 120
> msg = "Missing: ['127.0.0.1:7000.* is now UP'] not found in system.log:\n 
> Head: \n Tail: ..."
> node = 'node3'
> @staticmethod
> def raise_if_passed(start, timeout, msg, node=None):
> if start + timeout < time.time():
> >   raise TimeoutError.create(start, timeout, msg, node)
> E   ccmlib.node.TimeoutError: 28 Oct 2021 20:35:10 [node3] after 
> 120.12/120 seconds Missing: ['127.0.0.1:7000.* is now UP'] not found in 
> system.log:
> EHead: 
> ETail: ...
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-17054) v4+ protocol does not clean up client warnings, which causes leaking the state

2021-10-22 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-17054:
-

+1, left a couple of tiny nits, nothing important

> v4+ protocol does not clean up client warnings, which causes leaking the state
> --
>
> Key: CASSANDRA-17054
> URL: https://issues.apache.org/jira/browse/CASSANDRA-17054
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 4.0.x, 4.x
>
>
> If you perform a query in v5, this will cause the STARTUP message to be 
> handled in the netty thread, but the way this is done is by calling an 
> internal API to dispatcher which requires the caller to clean up; but we do 
> not clean up; at this point the netty thread will have a ClientWarn state 
> populated.  If you now perform the same query again, but with the v3 
> protocol, this will pick up the state and try to serialize it, causing a 
> client error (in java as java rejects the output from the server) saying that 
> v3 may not have client warnings.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16914) Implement Virtual Tables for Auth Caches

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16914:
-

Hey [~azotcsit], sorry it took a while to respond, I agree it would be ideal to 
deliver the nodetool & VT stuff in the same release.

Basically, I disagree with the intention of these VTs. One of the motivations 
behind VTs (maybe the primary one) was to provide an alternative to JMX for 
accessing configuration and metrics data. My perspective is that conceptually 
these specific tables should exist in order to provide operators with the 
ability to configure and control the auth caches without requiring JMX and, by 
extension, nodetool. There is some prior art in the system_views.caches table, 
which provides read-only metrics info for the counter, row and key caches. It 
would be good to expose similar metrics info for the auth caches, but I see 
that as a) not super critical as the datasets are so much smaller for auth 
data, the hit/miss/occupancy rates are less significant b) outside the scope of 
the original issue, which was to provide an operator-friendly way to invalidate 
cached data. Perhaps we can file a follow up ticket to expose this data and 
other cache config which can be mutated currently via JMX in a separate set of 
VTs.

Putting conceptual concerns aside, I don't see there's any real value in being 
able to retrieve the precise values that are currently cached from these VTs.  
Firstly, there are existing means to obtain that data if required (i.e. using 
the LIST X statements and/or querying the underlying tables directly). Second,  
knowing that a particular auth datum it is cached _at this time_ doesn't really 
benefit an operator. Consider the flow when an invalidation-triggering event 
occurs; for instance, if a user has a privilege revoked, checking the VT to see 
if it is cached or not is unnecessary work when an operator can simply issue 
the idempotent invalidation query. In CASSANDRA-16404, we didn't implement a 
set of query commands to look up precisely which values were cached (why would 
we?), only the tools to invalidate them, should that be possible. So just 
because it's possible to expose the full set of cached data (or even a subset 
of it), it doesn't mean we should. 

As well as being a somewhat pointless duplication, exposing the entire contents 
of the auth tables in this way broadens the surface area of potential security 
issues, as you mentioned. That said, permissions do apply to tables in 
system_views, so the exposure is perhaps not as broad as you feared, however I 
know there are already concerns about allowing read access to system_auth 
tables.

My proposal would be to stick to modelling the invalidation commands as 
provided by CASSANDRA-16404. Meaning, I would model the tables such that the 
primary keys match the cache keys in the auth caches and not include anything 
else:

{code}
cassandra@cqlsh> DESCRIBE TABLE system_views.permissions_cache_entries;

/*
Warning: Table system_views.permissions_cache_entries is a virtual table and 
cannot be recreated with CQL.
Structure, for reference:
VIRTUAL TABLE system_views.permissions_cache_entries (
role text,
resource text,
PRIMARY KEY (role, resource)
) WITH comment = 'entries in the permissions cache';
*/

cassandra@cqlsh> SELECT * FROM  system_views.permissions_cache_entries;
role | resource |
-+--+
user_a   | data/test_ks/test_table1 |
user_b   | data/test_ks/test_table2 | 
user_b   | data/test_ks/test_table3 | 
user_c   | data/test_ks/test_table4 | 

# invalidate permissions for a single user on a single resource
cassandra@cqlsh> DELETE FROM system_views.permissions_cache_entries WHERE 
role='user_a' AND resource='data/test_ks/test_table1'; 

# invalidate all permissions for a single user
cassandra@cqlsh> DELETE FROM system_views.permissions_cache_entries WHERE 
role='user_b' ;

# invalidate the entire cache
cassandra@cqlsh> TRUNCATE system_views.permissions_cache_entries; 
{code} 

As I said, I think we could follow up this work with additional tables to expose
* metrics (analogous to system_views.caches)
* configuration options currently only exposed via JMX or yaml 
(capacity/validity/updateinterval)


> Implement Virtual Tables for Auth Caches
> 
>
> Key: CASSANDRA-16914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16914
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization, Feature/Virtual Tables
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 4.x
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> {{NodeTool}} commands for Auth Caches invalidation were 

[jira] [Updated] (CASSANDRA-16928) InetAddressAndPort to extend InetAddress

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16928:

Status: Review In Progress  (was: Patch Available)

> InetAddressAndPort to extend InetAddress
> 
>
> Key: CASSANDRA-16928
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16928
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> Logically InetAddressAndPort encapsulates the same information as a simple 
> InetAddress. Importantly, InetAddressAndPort cannot easily be unpicked from 
> its dependencies that prohibit it being shared between classloaders. So our 
> in-jvm dtest API instead uses SocketAddress. To support a clean and efficient 
> Streaming API we need to be able to treat InetAddressAndPort as such a 
> cross-classloader type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16926) Mockable FileSystem

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16926:

Status: Review In Progress  (was: Patch Available)

> Mockable FileSystem
> ---
>
> Key: CASSANDRA-16926
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16926
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative file system 
> implementations so that execution may be consistent between hosts. This 
> ticket introduces a new File API backed by Path objects, and all File usages 
> are ported to it. This necessitates the migration away from 
> RandomAccessReader, but otherwise the change is mostly straight-forward, if 
> quite expansive.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16927) Mockable Streaming

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16927:

Status: Review In Progress  (was: Patch Available)

> Mockable Streaming
> --
>
> Key: CASSANDRA-16927
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16927
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Streaming and Messaging
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative streaming 
> implementations, so that execution may be controlled. The ticket encompasses 
> two sub-tickets: firstly we make InetAddressAndPort extend InetAddress so 
> that we may 2) introduce a cross-classloader API for establishing a streaming 
> connection and sending data over it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16925) Task Execution

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16925:

Status: Review In Progress  (was: Patch Available)

> Task Execution
> --
>
> Key: CASSANDRA-16925
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16925
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative executor 
> implementations that may be externally controlled. This ticket introduces an 
> ExecutorFactory, and all executor creation is migrated to this facility. The 
> codebase’s use of executors is inconsistent, and relatedly there are 
> divergent Future APIs in use, with Netty, Guava and Java APIs in use in 
> various places. To improve consistency we introduce our own Future API that 
> implements all of the above, as well as providing other additional ergonomic 
> improvements. We introduce a new ExecutorPlus API that extends Executor to 
> supply this extended Future API. All executors and futures are ported to 
> these new APIs to improve coherency in the codebase, and to support 
> consistently mocking these implementations.
> DebuggableThreadPoolExecutor and its hierarchy is replaced with 
> ThreadPoolExecutorBase, ThreadPoolExecutorPlus and extending classes with 
> consistent names, implementations and configurability.
> Additionally the ExecutorFactory takes over the allocation of new threads, 
> and provides a new InfiniteLoopExecutorfacility for common paradigms.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16924) Blocking Concurrency Primitives

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16924:

Status: Ready to Commit  (was: Review In Progress)

+1 from me to FTR

> Blocking Concurrency Primitives
> ---
>
> Key: CASSANDRA-16924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of 
> the blocking concurrency primitives we use on the project. At the same time, 
> the project is very inconsistent in its usage of these APIs, so this work 
> includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating 
> all blocking concurrency operations besides Futures returned by Executors to 
> these new APIs. This includes a migration of SimpleCondition to a new 
> Conditioninterface, new CountDownLatch and Semaphore interfaces, and new 
> static factory methods for creating these objects (as well as WaitQueue) that 
> can be intercepted by byte weaving. Additionally the internal Netty Future 
> implementation is improved to support more general use (though this is only 
> fully realised in a later ticket), OpOrder is improved to more easily support 
> mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new 
> UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16924) Blocking Concurrency Primitives

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16924:

Status: Review In Progress  (was: Patch Available)

> Blocking Concurrency Primitives
> ---
>
> Key: CASSANDRA-16924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of 
> the blocking concurrency primitives we use on the project. At the same time, 
> the project is very inconsistent in its usage of these APIs, so this work 
> includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating 
> all blocking concurrency operations besides Futures returned by Executors to 
> these new APIs. This includes a migration of SimpleCondition to a new 
> Conditioninterface, new CountDownLatch and Semaphore interfaces, and new 
> static factory methods for creating these objects (as well as WaitQueue) that 
> can be intercepted by byte weaving. Additionally the internal Netty Future 
> implementation is improved to support more general use (though this is only 
> fully realised in a later ticket), OpOrder is improved to more easily support 
> mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new 
> UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16995) Add tests for Resource fromName/getName

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16995:
-

Adding an extra fixver costs nothing, so I've done it for CASSANDRA-16977

> Add tests for Resource fromName/getName
> ---
>
> Key: CASSANDRA-16995
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16995
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/unit
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 3.0.26, 3.11.12, 4.0.2, 4.1
>
>  Time Spent: 2h 40m
>  Remaining Estimate: 0h
>
> As a part of CASSANDRA-16977 we identified a problem functions 
> ({{FunctionResource.fromName}}) parsing logic. We agreed that 
> {{Resource.fromName/}}{{Resource.getName}} should be symmetrical. I'd like to 
> ensure that by having a corresponding unit test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16977) ArrayIndexOutOfBoundsException in FunctionResource#fromName

2021-09-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16977:

Fix Version/s: 3.0.26

> ArrayIndexOutOfBoundsException in FunctionResource#fromName
> ---
>
> Key: CASSANDRA-16977
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16977
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/Authorization
>Reporter: Berenguer Blasi
>Assignee: Berenguer Blasi
>Priority: Normal
> Fix For: 3.0.26, 3.11.12, 4.0.2, 4.1
>
>
> {{FunctionResource}} can't handle functions with 0 args where it throws:
> {noformat}
> 2021-04-08 10:45:40,984 ErrorMessage.java:387 - Unexpected exception during 
> request
> java.lang.ArrayIndexOutOfBoundsException: 1
> at 
> org.apache.cassandra.auth.FunctionResource.fromName(FunctionResource.java:178)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16995) Add tests for Resource fromName/getName

2021-09-28 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16995:
-

 __ __It would be good to add a link/comment on CASSANDRA-16977 about the 3.0 
backport.

> Add tests for Resource fromName/getName
> ---
>
> Key: CASSANDRA-16995
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16995
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/unit
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> As a part of CASSANDRA-16977 we identified a problem functions 
> ({{FunctionResource.fromName}}) parsing logic. We agreed that 
> {{Resource.fromName/}}{{Resource.getName}} should be symmetrical. I'd like to 
> ensure that by having a corresponding unit test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16995) Add tests for Resource fromName/getName

2021-09-28 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16995:
-

+1, the failing upgrade test ( 
{{dtest-upgrade.upgrade_internal_auth_test.TestAuthUpgrade.test_upgrade_to_30}} 
) also failed on the most recent 3.0 nightly, so doesn't look related.

> Add tests for Resource fromName/getName
> ---
>
> Key: CASSANDRA-16995
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16995
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/unit
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> As a part of CASSANDRA-16977 we identified a problem functions 
> ({{FunctionResource.fromName}}) parsing logic. We agreed that 
> {{Resource.fromName/}}{{Resource.getName}} should be symmetrical. I'd like to 
> ensure that by having a corresponding unit test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16995) Add tests for Resource fromName/getName

2021-09-27 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16995:
-

The patch LGTM, but I agree that it could also be applied to earlier versions. 
Being a test only change, it's really no big deal but in theory it could be 
applied back as far as 3.0.

> Add tests for Resource fromName/getName
> ---
>
> Key: CASSANDRA-16995
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16995
> Project: Cassandra
>  Issue Type: Task
>  Components: Test/unit
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 4.x
>
>
> As a part of CASSANDRA-16977 we identified a problem functions 
> ({{FunctionResource.fromName}}) parsing logic. We agreed that 
> {{Resource.fromName/}}{{Resource.getName}} should be symmetrical. I'd like to 
> ensure that by having a corresponding unit test.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16927) Mockable Streaming

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16927:

Test and Documentation Plan: new and existing utests & dtests
 Status: Patch Available  (was: Open)

Branch: https://github.com/beobal/cassandra/tree/16927-trunk 
PR: https://github.com/beobal/cassandra/pull/7

Note: the branch dependency order is out of whack at the end of these phase 1 
issues:

16923 <- 16924 <- 16925 <- 16926 <- *16928* <- 16927 

> Mockable Streaming
> --
>
> Key: CASSANDRA-16927
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16927
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Streaming and Messaging
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative streaming 
> implementations, so that execution may be controlled. The ticket encompasses 
> two sub-tickets: firstly we make InetAddressAndPort extend InetAddress so 
> that we may 2) introduce a cross-classloader API for establishing a streaming 
> connection and sending data over it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Assigned] (CASSANDRA-16928) InetAddressAndPort to extend InetAddress

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe reassigned CASSANDRA-16928:
---

Assignee: Benedict Elliott Smith

> InetAddressAndPort to extend InetAddress
> 
>
> Key: CASSANDRA-16928
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16928
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> Logically InetAddressAndPort encapsulates the same information as a simple 
> InetAddress. Importantly, InetAddressAndPort cannot easily be unpicked from 
> its dependencies that prohibit it being shared between classloaders. So our 
> in-jvm dtest API instead uses SocketAddress. To support a clean and efficient 
> Streaming API we need to be able to treat InetAddressAndPort as such a 
> cross-classloader type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16927) Mockable Streaming

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16927:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Streaming and Messaging
  Reviewers: Sam Tunnicliffe
   Assignee: Benedict Elliott Smith
 Status: Open  (was: Triage Needed)

> Mockable Streaming
> --
>
> Key: CASSANDRA-16927
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16927
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Streaming and Messaging
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative streaming 
> implementations, so that execution may be controlled. The ticket encompasses 
> two sub-tickets: firstly we make InetAddressAndPort extend InetAddress so 
> that we may 2) introduce a cross-classloader API for establishing a streaming 
> connection and sending data over it.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16928) InetAddressAndPort to extend InetAddress

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16928:

Authors: Benedict Elliott Smith
Test and Documentation Plan: existing and new utests & dtests
 Status: Patch Available  (was: Open)

Branch: https://github.com/beobal/cassandra/tree/16928-trunk 
PR: https://github.com/beobal/cassandra/pull/8

Note: the branch dependency order is out of whack at the end of these phase 1 
issues:

16923 <- 16924 <- 16925 <- 16926 <- *16928* <- 16927 

> InetAddressAndPort to extend InetAddress
> 
>
> Key: CASSANDRA-16928
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16928
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Priority: Normal
>
> Logically InetAddressAndPort encapsulates the same information as a simple 
> InetAddress. Importantly, InetAddressAndPort cannot easily be unpicked from 
> its dependencies that prohibit it being shared between classloaders. So our 
> in-jvm dtest API instead uses SocketAddress. To support a clean and efficient 
> Streaming API we need to be able to treat InetAddressAndPort as such a 
> cross-classloader type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16928) InetAddressAndPort to extend InetAddress

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16928:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Core
  Reviewers: Sam Tunnicliffe
 Status: Open  (was: Triage Needed)

> InetAddressAndPort to extend InetAddress
> 
>
> Key: CASSANDRA-16928
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16928
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Priority: Normal
>
> Logically InetAddressAndPort encapsulates the same information as a simple 
> InetAddress. Importantly, InetAddressAndPort cannot easily be unpicked from 
> its dependencies that prohibit it being shared between classloaders. So our 
> in-jvm dtest API instead uses SocketAddress. To support a clean and efficient 
> Streaming API we need to be able to treat InetAddressAndPort as such a 
> cross-classloader type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-9384) Update jBCrypt dependency to version 0.4

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-9384:


Sure, sounds fair enough to me.

> Update jBCrypt dependency to version 0.4
> 
>
> Key: CASSANDRA-9384
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9384
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Sam Tunnicliffe
>Assignee: Dinesh Joshi
>Priority: Normal
> Fix For: 2.1.x, 2.2.x, 3.0.x, 3.11.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> https://bugzilla.mindrot.org/show_bug.cgi?id=2097
> Although the bug tracker lists it as NEW/OPEN, the release notes for 0.4 
> indicate that this is now fixed, so we should update.
> Thanks to [~Bereng] for identifying the issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-9384) Update jBCrypt dependency to version 0.4

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-9384:


bq. So I am wondering who is this feature actually good for

The original implementation hardcoded the number of rounds to 2^10, but that 
was made configurable in CASSANDRA-8085
and the defaults discussed in CASSANDRA-14678. Maybe we could have constrained 
the value a bit more, instead of just allowing anything jBcrypt supported, but 
that ship has sailed now. 

> Update jBCrypt dependency to version 0.4
> 
>
> Key: CASSANDRA-9384
> URL: https://issues.apache.org/jira/browse/CASSANDRA-9384
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Sam Tunnicliffe
>Assignee: Dinesh Joshi
>Priority: Normal
> Fix For: 2.1.x, 2.2.x, 3.0.x, 3.11.x
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> https://bugzilla.mindrot.org/show_bug.cgi?id=2097
> Although the bug tracker lists it as NEW/OPEN, the release notes for 0.4 
> indicate that this is now fixed, so we should update.
> Thanks to [~Bereng] for identifying the issue.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16990) Update jbcrypt library to 0.4 from 0.3m to resolve CVE-2015-0886

2021-09-24 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16990:
-

[~stefan.miklosovic] this seems to be a dupe of CASSANDRA-9384

> Update jbcrypt library to 0.4 from 0.3m to resolve CVE-2015-0886
> 
>
> Key: CASSANDRA-16990
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16990
> Project: Cassandra
>  Issue Type: Task
>  Components: Dependencies
>Reporter: Stefan Miklosovic
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 3.0.26, 3.11.12, 4.0.2, 4.1
>
>
> We are using jbcrypto of version 0.3m across all versions, this version of 
> the library was never changed since 1.1.2.
> In 0.3m they found out this (1) and (2, 3 for better explanation / reference)
> I think we are affected by this, it is possible to set 31 rounds here (4) 
> which would hit the same same logic afteward these tickets are talking about.
> 1) [https://nvd.nist.gov/vuln/detail/CVE-2015-0886]
> 2) [http://www.mindrot.org/projects/jBCrypt/news/rel04.html]
> 3) [https://bugzilla.mindrot.org/show_bug.cgi?id=2097]
> 4) 
> [https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/auth/CassandraRoleManager.java#L105-L117]
> I  hence propose to update the library to 0.4 where this is fixed.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16977) ArrayIndexOutOfBoundsException in FunctionResource#fromName

2021-09-21 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16977:
-

{{DropFunctionStatement}} does accept a function without parens, but this is 
really because it's only constructing a {{FunctionName}}, which does not have 
parameters. Wherever a {{FunctionResource}} is required, the brackets are used. 
IMO, {{fromName}} and {{getName}} ought to be symmetrical, otherwise we're at 
risk of running into problems where something is serialized in one format but 
read in another. i.e. entries in the permissions tables use {{getName}} and so 
always include brackets.

> ArrayIndexOutOfBoundsException in FunctionResource#fromName
> ---
>
> Key: CASSANDRA-16977
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16977
> Project: Cassandra
>  Issue Type: Bug
>  Components: Feature/Authorization
>Reporter: Berenguer Blasi
>Assignee: Berenguer Blasi
>Priority: Normal
> Fix For: 3.11.x, 4.0.x, 4.x
>
>
> {{FunctionResource}} can't handle functions with 0 args where it throws:
> {noformat}
> 2021-04-08 10:45:40,984 ErrorMessage.java:387 - Unexpected exception during 
> request
> java.lang.ArrayIndexOutOfBoundsException: 1
> at 
> org.apache.cassandra.auth.FunctionResource.fromName(FunctionResource.java:178)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16923) System Clock

2021-09-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16923 at 9/20/21, 12:28 PM:


Branch: https://github.com/beobal/cassandra/tree/16923-trunk 
PR: https://github.com/beobal/cassandra/pull/3



was (Author: beobal):
[16923-trunk|https://github.com/beobal/cassandra/tree/16923-trunk]

> System Clock
> 
>
> Key: CASSANDRA-16923
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16923
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 and other project testing goals, it is necessary to support 
> supplying a non-standard time source that can be externally controlled. This 
> ticket modifies existing abstractions and migrates all calls to 
> System.currentTimeMillis() and System.nanoTime() to these APIs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16926) Mockable FileSystem

2021-09-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16926 at 9/20/21, 12:28 PM:


Branch: https://github.com/beobal/cassandra/tree/16926-trunk 
PR: https://github.com/beobal/cassandra/pull/6



was (Author: beobal):
[16926-trunk|https://github.com/beobal/cassandra/tree/16926-trunk]

> Mockable FileSystem
> ---
>
> Key: CASSANDRA-16926
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16926
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative file system 
> implementations so that execution may be consistent between hosts. This 
> ticket introduces a new File API backed by Path objects, and all File usages 
> are ported to it. This necessitates the migration away from 
> RandomAccessReader, but otherwise the change is mostly straight-forward, if 
> quite expansive.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16925) Task Execution

2021-09-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16925 at 9/20/21, 12:28 PM:


Branch: https://github.com/beobal/cassandra/tree/16925-trunk 
PR: https://github.com/beobal/cassandra/pull/5



was (Author: beobal):
[16925-trunk|https://github.com/beobal/cassandra/tree/16925-trunk]

> Task Execution
> --
>
> Key: CASSANDRA-16925
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16925
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative executor 
> implementations that may be externally controlled. This ticket introduces an 
> ExecutorFactory, and all executor creation is migrated to this facility. The 
> codebase’s use of executors is inconsistent, and relatedly there are 
> divergent Future APIs in use, with Netty, Guava and Java APIs in use in 
> various places. To improve consistency we introduce our own Future API that 
> implements all of the above, as well as providing other additional ergonomic 
> improvements. We introduce a new ExecutorPlus API that extends Executor to 
> supply this extended Future API. All executors and futures are ported to 
> these new APIs to improve coherency in the codebase, and to support 
> consistently mocking these implementations.
> DebuggableThreadPoolExecutor and its hierarchy is replaced with 
> ThreadPoolExecutorBase, ThreadPoolExecutorPlus and extending classes with 
> consistent names, implementations and configurability.
> Additionally the ExecutorFactory takes over the allocation of new threads, 
> and provides a new InfiniteLoopExecutorfacility for common paradigms.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16924) Blocking Concurrency Primitives

2021-09-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16924 at 9/20/21, 12:28 PM:


Branch: https://github.com/beobal/cassandra/tree/16924-trunk 
PR: https://github.com/beobal/cassandra/pull/4



was (Author: beobal):
[16924-trunk|https://github.com/beobal/cassandra/tree/16924-trunk]

> Blocking Concurrency Primitives
> ---
>
> Key: CASSANDRA-16924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of 
> the blocking concurrency primitives we use on the project. At the same time, 
> the project is very inconsistent in its usage of these APIs, so this work 
> includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating 
> all blocking concurrency operations besides Futures returned by Executors to 
> these new APIs. This includes a migration of SimpleCondition to a new 
> Conditioninterface, new CountDownLatch and Semaphore interfaces, and new 
> static factory methods for creating these objects (as well as WaitQueue) that 
> can be intercepted by byte weaving. Additionally the internal Netty Future 
> implementation is improved to support more general use (though this is only 
> fully realised in a later ticket), OpOrder is improved to more easily support 
> mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new 
> UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16926) Mockable FileSystem

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16926:

Test and Documentation Plan: new and existing utests & dtests
 Status: Patch Available  (was: Open)

[16926-trunk|https://github.com/beobal/cassandra/tree/16926-trunk]

> Mockable FileSystem
> ---
>
> Key: CASSANDRA-16926
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16926
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative file system 
> implementations so that execution may be consistent between hosts. This 
> ticket introduces a new File API backed by Path objects, and all File usages 
> are ported to it. This necessitates the migration away from 
> RandomAccessReader, but otherwise the change is mostly straight-forward, if 
> quite expansive.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16926) Mockable FileSystem

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16926:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Core
  Reviewers: Aleksey Yeschenko, Sam Tunnicliffe
   Assignee: Benedict Elliott Smith
 Status: Open  (was: Triage Needed)

> Mockable FileSystem
> ---
>
> Key: CASSANDRA-16926
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16926
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative file system 
> implementations so that execution may be consistent between hosts. This 
> ticket introduces a new File API backed by Path objects, and all File usages 
> are ported to it. This necessitates the migration away from 
> RandomAccessReader, but otherwise the change is mostly straight-forward, if 
> quite expansive.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16925) Task Execution

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16925:

Test and Documentation Plan: new and existing utests & dtests
 Status: Patch Available  (was: Open)

[16925-trunk|https://github.com/beobal/cassandra/tree/16925-trunk]

> Task Execution
> --
>
> Key: CASSANDRA-16925
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16925
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative executor 
> implementations that may be externally controlled. This ticket introduces an 
> ExecutorFactory, and all executor creation is migrated to this facility. The 
> codebase’s use of executors is inconsistent, and relatedly there are 
> divergent Future APIs in use, with Netty, Guava and Java APIs in use in 
> various places. To improve consistency we introduce our own Future API that 
> implements all of the above, as well as providing other additional ergonomic 
> improvements. We introduce a new ExecutorPlus API that extends Executor to 
> supply this extended Future API. All executors and futures are ported to 
> these new APIs to improve coherency in the codebase, and to support 
> consistently mocking these implementations.
> DebuggableThreadPoolExecutor and its hierarchy is replaced with 
> ThreadPoolExecutorBase, ThreadPoolExecutorPlus and extending classes with 
> consistent names, implementations and configurability.
> Additionally the ExecutorFactory takes over the allocation of new threads, 
> and provides a new InfiniteLoopExecutorfacility for common paradigms.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16925) Task Execution

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16925:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Core
  Reviewers: Sam Tunnicliffe
   Assignee: Benedict Elliott Smith
 Status: Open  (was: Triage Needed)

> Task Execution
> --
>
> Key: CASSANDRA-16925
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16925
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative executor 
> implementations that may be externally controlled. This ticket introduces an 
> ExecutorFactory, and all executor creation is migrated to this facility. The 
> codebase’s use of executors is inconsistent, and relatedly there are 
> divergent Future APIs in use, with Netty, Guava and Java APIs in use in 
> various places. To improve consistency we introduce our own Future API that 
> implements all of the above, as well as providing other additional ergonomic 
> improvements. We introduce a new ExecutorPlus API that extends Executor to 
> supply this extended Future API. All executors and futures are ported to 
> these new APIs to improve coherency in the codebase, and to support 
> consistently mocking these implementations.
> DebuggableThreadPoolExecutor and its hierarchy is replaced with 
> ThreadPoolExecutorBase, ThreadPoolExecutorPlus and extending classes with 
> consistent names, implementations and configurability.
> Additionally the ExecutorFactory takes over the allocation of new threads, 
> and provides a new InfiniteLoopExecutorfacility for common paradigms.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16924) Blocking Concurrency Primitives

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16924:

Test and Documentation Plan: new and existing utests/dtests
 Status: Patch Available  (was: Open)

[16924-trunk|https://github.com/beobal/cassandra/tree/16924-trunk]

> Blocking Concurrency Primitives
> ---
>
> Key: CASSANDRA-16924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of 
> the blocking concurrency primitives we use on the project. At the same time, 
> the project is very inconsistent in its usage of these APIs, so this work 
> includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating 
> all blocking concurrency operations besides Futures returned by Executors to 
> these new APIs. This includes a migration of SimpleCondition to a new 
> Conditioninterface, new CountDownLatch and Semaphore interfaces, and new 
> static factory methods for creating these objects (as well as WaitQueue) that 
> can be intercepted by byte weaving. Additionally the internal Netty Future 
> implementation is improved to support more general use (though this is only 
> fully realised in a later ticket), OpOrder is improved to more easily support 
> mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new 
> UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16924) Blocking Concurrency Primitives

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16924:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Core
  Reviewers: Sam Tunnicliffe
   Assignee: Benedict Elliott Smith
 Status: Open  (was: Triage Needed)

> Blocking Concurrency Primitives
> ---
>
> Key: CASSANDRA-16924
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16924
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 it is necessary to support alternative implementations of 
> the blocking concurrency primitives we use on the project. At the same time, 
> the project is very inconsistent in its usage of these APIs, so this work 
> includes a number of improvements to the coherency of the codebase. 
> This ticket introduces new abstractions and standardises old ones, migrating 
> all blocking concurrency operations besides Futures returned by Executors to 
> these new APIs. This includes a migration of SimpleCondition to a new 
> Conditioninterface, new CountDownLatch and Semaphore interfaces, and new 
> static factory methods for creating these objects (as well as WaitQueue) that 
> can be intercepted by byte weaving. Additionally the internal Netty Future 
> implementation is improved to support more general use (though this is only 
> fully realised in a later ticket), OpOrder is improved to more easily support 
> mocking WaitQueue.
> Finally we standardise the propagation of InterruptedExecption, with the new 
> UncheckedInterruptedException, so that simulations may be terminated cleanly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16923) System Clock

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16923:

Test and Documentation Plan: New and existing dtests, no new functionality
 Status: Patch Available  (was: Open)

[16923-trunk|https://github.com/beobal/cassandra/tree/16923-trunk]

> System Clock
> 
>
> Key: CASSANDRA-16923
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16923
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 and other project testing goals, it is necessary to support 
> supplying a non-standard time source that can be externally controlled. This 
> ticket modifies existing abstractions and migrates all calls to 
> System.currentTimeMillis() and System.nanoTime() to these APIs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16923) System Clock

2021-09-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16923:

Change Category: Quality Assurance
 Complexity: Normal
Component/s: Legacy/Core
  Reviewers: Aleksey Yeschenko, Sam Tunnicliffe
   Assignee: Benedict Elliott Smith
 Status: Open  (was: Triage Needed)

> System Clock
> 
>
> Key: CASSANDRA-16923
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16923
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Benedict Elliott Smith
>Assignee: Benedict Elliott Smith
>Priority: Normal
>
> To support CEP-10 and other project testing goals, it is necessary to support 
> supplying a non-standard time source that can be externally controlled. This 
> ticket modifies existing abstractions and migrates all calls to 
> System.currentTimeMillis() and System.nanoTime() to these APIs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16914) Implement Virtual Tables for Auth Caches

2021-09-14 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16914:
-

The VTs here are more fine grained than they need to be, i.e. than the caches 
themselves and their nodetool equivalents. 
For instance, we don't cache or enable the invalidation of individual 
permissions, so modelling the perms cache table with individual permissions as 
clustering columns is unnecessary. The underlying cache impl and {{nodetool 
invalidatepermissionscache}} work on the level of role + resource, so I would 
suggest modelling the VT likewise with Role as partition key and resource as 
the clustering column. 

Whether the actual permissions themselves even need to be included in the VT is 
a valid question IMO. It could be argued that the purpose of this set of VTs is 
not to expose the full set of cached data, but to provide a way to invalidate 
cached items, i.e. these VTs represent the _commands_ rather than the 
_contents_. If we agree with that, then only the cache keys need to be exposed 
via the VTs. The counter argument would be that a difference in the models of 
the base auth tables and the cache VTs could be confusing (though there are 
already differences in your proposal).


> Implement Virtual Tables for Auth Caches
> 
>
> Key: CASSANDRA-16914
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16914
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization, Feature/Virtual Tables
>Reporter: Aleksei Zotov
>Assignee: Aleksei Zotov
>Priority: Low
> Fix For: 4.x
>
>
> {{NodeTool}} commands for Auth Caches invalidation were implemented as a part 
> of CASSANDRA-16404 ticket. While discussing that ticket it was agreed that 
> there is a need to develop the same kind of functionality through Vitrual 
> Tables. Unfortunately, VT did not have {{TRUNCATE}} and {{DELETE}} support. 
> And CASSANDRA-16806 was created for that reason. Once it is completed, 
> further work can be started.
> The goal of this ticket is to create VTs for the following caches:
>  * {{CredentialsCache}}
>  * {{JmxPermissionsCache}}
>  * {{NetworkPermissionsCache}}
>  * {{PermissionsCache}}
>  * {{RolesCache}}
> The VTs should support reading from and modification of the in the Auth 
> Caches.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16940) Confusing ProtocolException msg Invalid or unsupported protocol version (4)

2021-09-10 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16940:
-

will do

> Confusing ProtocolException msg Invalid or unsupported protocol version (4)
> ---
>
> Key: CASSANDRA-16940
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16940
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client
>Reporter: Brad Schoening
>Priority: Normal
>
> The following warning was seen frequently after upgrading from 3.0.x to 
> 3.11.11 in the cassandra.log:
> {noformat}
> ProtocolException: Invalid or unsupported protocol version (4); supported 
> versions are (3/v3, 4/v4, 5/v5-beta){noformat}
> It is at best unclear, or maybe a bug in the code throwing this exception 
> stating version '4' not supported but 4/v4 is.
> from org/apache/cassandra/transport/ProtocolVersion.java
> public static String invalidVersionMessage(int version)
> { return String.format("Invalid or unsupported protocol version (%d); 
> supported versions are (%s)", version, String.join(", ", 
> ProtocolVersion.supportedVersions())); }
> We later found invalid IP addresses in the system.peers table and once 
> removed, this exception went away.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-09-03 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16404:

  Fix Version/s: (was: 4.x)
 4.1
Source Control Link: 
https://github.com/apache/cassandra/commit/f9aa19e3b116c0078019e9382d1a6c4bb050f113
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Committed to C* trunk in 
{{[f9aa19e3|https://github.com/apache/cassandra/commit/f9aa19e3b116c0078019e9382d1a6c4bb050f113]}}
 and to dtests in 
{{[0ef8be46|https://github.com/apache/cassandra-dtest/commit/0ef8be46f8f729c80662a03fd515b6fe108531c8]}}
 and 
{{[1f5aefdc|https://github.com/apache/cassandra-dtest/commit/1f5aefdc23b5cd27dea056d119ff5d9c9801030a]}}.

Thanks for the patches and for your patience [~azotcsit]


> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.1
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-09-03 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16404:

Reviewers: Benjamin Lerer, Sam Tunnicliffe, Sumanth Pasupuleti  (was: 
Benjamin Lerer, Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-09-03 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16404:

Status: Ready to Commit  (was: Review In Progress)

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-09-02 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

[~azotcsit], I was and it looks good to me. Apologies for both the long wait 
and the typo, I've rebased and launched CI runs and commit both the patch and 
test when those complete.

||branch||dtest||Circle CI||Apache CI||
|[16404-trunk|https://github.com/beobal/cassandra/tree/16404-trunk]|[16404|https://github.com/beobal/cassandra-dtest/tree/16404]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16404-trunk]|[apache|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/1093]


> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16783) Delay auth setup to after gossip has settled to avoid unavailables on startup

2021-08-27 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16783:

Status: Ready to Commit  (was: Review In Progress)

LGTM, +1

> Delay auth setup to after gossip has settled to avoid unavailables on startup
> -
>
> Key: CASSANDRA-16783
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16783
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Startup and Shutdown
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 4.0.x, 4.x
>
>
> We should delay trying to do auth setup until after gossip has settled to 
> avoid getting unavailables from trying to read the auth tables before knowing 
> of any neighbours 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16783) Delay auth setup to after gossip has settled to avoid unavailables on startup

2021-08-27 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16783:

Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

> Delay auth setup to after gossip has settled to avoid unavailables on startup
> -
>
> Key: CASSANDRA-16783
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16783
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Startup and Shutdown
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 4.0.x, 4.x
>
>
> We should delay trying to do auth setup until after gossip has settled to 
> avoid getting unavailables from trying to read the auth tables before knowing 
> of any neighbours 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16885) Add GPG key for s...@apache.org to to dist/cassandra/KEYS

2021-08-26 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16885:

Reviewers: Michael Semb Wever

> Add GPG key for s...@apache.org to to dist/cassandra/KEYS
> -
>
> Key: CASSANDRA-16885
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16885
> Project: Cassandra
>  Issue Type: Task
>  Components: Packaging
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: NA
>
> Attachments: 16885.patch
>
>
> I need to add my public key to the project's KEYS file in order to 
> sign/publish release artifacts.
> Fingerprint: F8B7FD00E05C932991A2CD6150EE103D162C5A55



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16885) Add GPG key for s...@apache.org to to dist/cassandra/KEYS

2021-08-26 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16885:

Attachment: 16885.patch

> Add GPG key for s...@apache.org to to dist/cassandra/KEYS
> -
>
> Key: CASSANDRA-16885
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16885
> Project: Cassandra
>  Issue Type: Task
>  Components: Packaging
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: NA
>
> Attachments: 16885.patch
>
>
> I need to add my public key to the project's KEYS file in order to 
> sign/publish release artifacts.
> Fingerprint: F8B7FD00E05C932991A2CD6150EE103D162C5A55



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16885) Add GPG key for s...@apache.org to to dist/cassandra/KEYS

2021-08-26 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16885:

Test and Documentation Plan: Merge, import KEYS file, check sig.
 Status: Patch Available  (was: Open)

This is a new, previously unused key so doesn't yet belong to a web of trust.

> Add GPG key for s...@apache.org to to dist/cassandra/KEYS
> -
>
> Key: CASSANDRA-16885
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16885
> Project: Cassandra
>  Issue Type: Task
>  Components: Packaging
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: NA
>
>
> I need to add my public key to the project's KEYS file in order to 
> sign/publish release artifacts.
> Fingerprint: F8B7FD00E05C932991A2CD6150EE103D162C5A55



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16885) Add GPG key for s...@apache.org to to dist/cassandra/KEYS

2021-08-26 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16885:

Change Category: Operability
 Complexity: Normal
  Fix Version/s: NA
 Status: Open  (was: Triage Needed)

> Add GPG key for s...@apache.org to to dist/cassandra/KEYS
> -
>
> Key: CASSANDRA-16885
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16885
> Project: Cassandra
>  Issue Type: Task
>  Components: Packaging
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: NA
>
>
> I need to add my public key to the project's KEYS file in order to 
> sign/publish release artifacts.
> Fingerprint: F8B7FD00E05C932991A2CD6150EE103D162C5A55



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-16885) Add GPG key for s...@apache.org to to dist/cassandra/KEYS

2021-08-26 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-16885:
---

 Summary: Add GPG key for s...@apache.org to to dist/cassandra/KEYS
 Key: CASSANDRA-16885
 URL: https://issues.apache.org/jira/browse/CASSANDRA-16885
 Project: Cassandra
  Issue Type: Task
  Components: Packaging
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


I need to add my public key to the project's KEYS file in order to sign/publish 
release artifacts.

Fingerprint: F8B7FD00E05C932991A2CD6150EE103D162C5A55



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-08-25 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16721:
-

Looks good to me, modulo a 
[few|https://github.com/apache/cassandra/pull/1160/files#r695998655], 
[trivial|https://github.com/apache/cassandra/pull/1160/files#r696006742], 
[nits|https://github.com/apache/cassandra/pull/1160/files#r696008838] (sorry, I 
forgot it was a PR not just a branch). I'm also a fan of Alex's suggestion to 
replace {{TEST_FORCE_ASYNC_LOCAL_READS}} with some ByteBuddy manipulation in 
the test. 

All of the above can be fixed (or not) on commit, so +1 from me too & thanks!


> Repaired data tracking on a read coordinator is susceptible to races between 
> local and remote requests
> --
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Sam Tunnicliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.x
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> At read time on a coordinator which is also a replica, the local and remote 
> reads can race such that the remote responses are received while the local 
> read is executing. If the remote responses are mismatching, triggering a 
> {{DigestMismatchException}} and subsequent round of full data reads and read 
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
> flipped mid-execution.  If this happens after a certain point in execution, 
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object 
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
> iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-08-25 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16721:

Reviewers: Alex Petrov, Caleb Rackliffe, Sam Tunnicliffe, Sam Tunnicliffe  
(was: Alex Petrov, Caleb Rackliffe, Sam Tunnicliffe)
   Alex Petrov, Caleb Rackliffe, Sam Tunnicliffe, Sam Tunnicliffe  
(was: Caleb Rackliffe, Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

> Repaired data tracking on a read coordinator is susceptible to races between 
> local and remote requests
> --
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Sam Tunnicliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x, 4.x
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> At read time on a coordinator which is also a replica, the local and remote 
> reads can race such that the remote responses are received while the local 
> read is executing. If the remote responses are mismatching, triggering a 
> {{DigestMismatchException}} and subsequent round of full data reads and read 
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
> flipped mid-execution.  If this happens after a certain point in execution, 
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object 
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
> iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-25 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16877:

  Fix Version/s: (was: 4.0.x)
 4.0.1
  Since Version: 4.0-alpha1
Source Control Link: 
https://github.com/apache/cassandra/commit/b8242730918c2e8edec83aeafeeae8255378125d
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Thanks. Agreed about the tests, so committed (with one nit addressed and one 
swerved) to 4.0 in {{b8242730918c2e8edec83aeafeeae8255378125d}} and merged up 
to trunk.

> High priority internode messages which exceed the large message threshold are 
> dropped
> -
>
> Key: CASSANDRA-16877
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.1
>
>
> Currently, there is an assumption that internode messages whose verb has 
> priority P0 will always fit within a single messaging frame. While this is 
> usually the case, on occasion it is possible that this assumption does not 
> hold. One example is gossip messages during the startup shadow round, where 
> in very large clusters the digest ack can contain all states for every peer. 
> In this scenario, the respondent fails to send the ack which may lead to the 
> shadow round and, ultimately, the startup failing.
>  
> We could tweak the shadow round acks to minimise the message size, but a more 
> robust solution would be to permit high priority messages to be sent on the 
> large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-25 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16877:

Status: Ready to Commit  (was: Review In Progress)

> High priority internode messages which exceed the large message threshold are 
> dropped
> -
>
> Key: CASSANDRA-16877
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> Currently, there is an assumption that internode messages whose verb has 
> priority P0 will always fit within a single messaging frame. While this is 
> usually the case, on occasion it is possible that this assumption does not 
> hold. One example is gossip messages during the startup shadow round, where 
> in very large clusters the digest ack can contain all states for every peer. 
> In this scenario, the respondent fails to send the ack which may lead to the 
> shadow round and, ultimately, the startup failing.
>  
> We could tweak the shadow round acks to minimise the message size, but a more 
> robust solution would be to permit high priority messages to be sent on the 
> large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-23 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16877:

Test and Documentation Plan: New unit test in patch
 Status: Patch Available  (was: In Progress)

This can be a fairly serious problem when cluster sizes run into hundreds of 
nodes. Following a restart, the shadow round can begin to fail as the 
respondants can't serialize the {{GossipDigestAck}}, leaving the sender unable 
to start. Even if the shadow round is skipped, the same problem often occurs 
when the starting node first sends a regular {{GossipDygestSyn}}. This may be 
an even worse scenario from an availability perspective as the restarted node 
will not establish contact with peers and will see the rest of the ring as 
down. 

The reason I didn't add more detail to the nospam log message is that doing so 
always feels to be of limited utility to me.  With nospam you're probably only 
seeing a tiny portion of the actual events, so you really need to enable the 
trace/debug logging anyway. If people have a strong opinion to the contrary 
though, I can always change this. 

||branch||Circle CI||Apache CI||
|[16877-4.0|https://github.com/beobal/cassandra/tree/16877-4.0]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16877-4.0]|[apache|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/1058]|


> High priority internode messages which exceed the large message threshold are 
> dropped
> -
>
> Key: CASSANDRA-16877
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> Currently, there is an assumption that internode messages whose verb has 
> priority P0 will always fit within a single messaging frame. While this is 
> usually the case, on occasion it is possible that this assumption does not 
> hold. One example is gossip messages during the startup shadow round, where 
> in very large clusters the digest ack can contain all states for every peer. 
> In this scenario, the respondent fails to send the ack which may lead to the 
> shadow round and, ultimately, the startup failing.
>  
> We could tweak the shadow round acks to minimise the message size, but a more 
> robust solution would be to permit high priority messages to be sent on the 
> large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-23 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16877:

Bug Category: Parent values: Availability(12983)Level 1 values: Process 
Crash(12992)  (was: Parent values: Availability(12983)Level 1 values: Cluster 
Crash(12993))

> High priority internode messages which exceed the large message threshold are 
> dropped
> -
>
> Key: CASSANDRA-16877
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> Currently, there is an assumption that internode messages whose verb has 
> priority P0 will always fit within a single messaging frame. While this is 
> usually the case, on occasion it is possible that this assumption does not 
> hold. One example is gossip messages during the startup shadow round, where 
> in very large clusters the digest ack can contain all states for every peer. 
> In this scenario, the respondent fails to send the ack which may lead to the 
> shadow round and, ultimately, the startup failing.
>  
> We could tweak the shadow round acks to minimise the message size, but a more 
> robust solution would be to permit high priority messages to be sent on the 
> large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-23 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16877:

 Bug Category: Parent values: Availability(12983)Level 1 values: Cluster 
Crash(12993)
   Complexity: Normal
Discovered By: Adhoc Test
Fix Version/s: 4.0.x
 Severity: Critical
   Status: Open  (was: Triage Needed)

> High priority internode messages which exceed the large message threshold are 
> dropped
> -
>
> Key: CASSANDRA-16877
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Gossip
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> Currently, there is an assumption that internode messages whose verb has 
> priority P0 will always fit within a single messaging frame. While this is 
> usually the case, on occasion it is possible that this assumption does not 
> hold. One example is gossip messages during the startup shadow round, where 
> in very large clusters the digest ack can contain all states for every peer. 
> In this scenario, the respondent fails to send the ack which may lead to the 
> shadow round and, ultimately, the startup failing.
>  
> We could tweak the shadow round acks to minimise the message size, but a more 
> robust solution would be to permit high priority messages to be sent on the 
> large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-16877) High priority internode messages which exceed the large message threshold are dropped

2021-08-23 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-16877:
---

 Summary: High priority internode messages which exceed the large 
message threshold are dropped
 Key: CASSANDRA-16877
 URL: https://issues.apache.org/jira/browse/CASSANDRA-16877
 Project: Cassandra
  Issue Type: Bug
  Components: Cluster/Gossip
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


Currently, there is an assumption that internode messages whose verb has 
priority P0 will always fit within a single messaging frame. While this is 
usually the case, on occasion it is possible that this assumption does not 
hold. One example is gossip messages during the startup shadow round, where in 
very large clusters the digest ack can contain all states for every peer. In 
this scenario, the respondent fails to send the ack which may lead to the 
shadow round and, ultimately, the startup failing.
 
We could tweak the shadow round acks to minimise the message size, but a more 
robust solution would be to permit high priority messages to be sent on the 
large messages connection when necessary.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-08-18 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16721:
-

Your approach is a great improvement, makes a lot more sense for 
{{ReadExecutionController}} to handle {{RepairedDataInfo}}. The only 
non-obvious thing I noticed is that the sub-controllers for index reads should 
probably not inherit the tracking flag, just always make it false. It should be 
safe and not inefficient either way, but it just doesn't make sense for a read 
of the index table to be set to track.

> Repaired data tracking on a read coordinator is susceptible to races between 
> local and remote requests
> --
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Sam Tunnicliffe
>Assignee: Caleb Rackliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> At read time on a coordinator which is also a replica, the local and remote 
> reads can race such that the remote responses are received while the local 
> read is executing. If the remote responses are mismatching, triggering a 
> {{DigestMismatchException}} and subsequent round of full data reads and read 
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
> flipped mid-execution.  If this happens after a certain point in execution, 
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object 
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
> iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-08-18 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

bq. I see 4 failures, but they do not seem to be related to these changes.

Yep, LGTM too. Good stuff!

bq. Am I right that currently there are no dtests for 
JMXPermissionsCache/JmxPermissionsCache MBeans? Shall I try to come up with a 
test for that (basically I'd like to get familiar with dtests)? Can I use this 
ticket or need to create another one?

Yes, you are correct there, so feel free to use this as an opportunity to get 
comfortable with dtests. Seeing as this isn't an urgent issue, I'd say it's 
fine to take our time adding new tests here rather than opening another Jira. 
If you create a dtest branch based off mine, just open a PR against trunk with 
it when you're ready and I'll review/merge there. If you have any questions, 
just ask.

bq. It needs to be renamed to match the class name.

d'oh, good catch. Fixed in my branch. 

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-08-17 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

Rather than going back to the old bean names, we have a precedent of aliasing 
and deprecating them. I've pushed a additional commit to my branch which fixes 
the original test failure in this way. I've also extended the dtest to cover 
both the old and new bean name (for {{NetworkAuthTest}} only, it didn't seem 
worth adding new tests for the JMX cache just for this).

Also (temporarily) modified circle config to use my own dtest branch & started 
a new apache ci job 
[here|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/1032]

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-08-12 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

Thanks [~azotcsit], looks good to me. I've squashed & rebased, with one tiny 
tweak to the new error message, and kicked off CI runs. Assuming they look 
good, I'll commit when they're done.

||branch||Circle CI||Apache CI||
|[16404-trunk|https://github.com/beobal/cassandra/tree/16404-trunk]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16404-trunk]|[apache|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/1011]


> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-26 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

bq. role_permissions table relies on this method while storing existing 
permissions. So we cannot easily change it

this is correct. The only way around it would be to accept a CQL format string 
and parse it on the server, but to be honest I don't believe it's really worth 
it. So I'd say we should stick with the internal representation for now, seeing 
as it's very much a poweruser feature anyway.

That one niggle aside, the CLI looks pretty good to me. There's just one small 
issue whereby supplying invalid types for function params throws an exception, 
which we could catch and present more nicely. 

{code}
❯ bin/nodetool invalidatepermissionscache --functions-in-keyspace foo 
--function bar\[x^y\] user
error: org.apache.cassandra.db.marshal.x
-- StackTrace --
java.lang.ClassNotFoundException: org.apache.cassandra.db.marshal.x
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at 
org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:716)
at 
org.apache.cassandra.db.marshal.TypeParser.getAbstractType(TypeParser.java:357)
at org.apache.cassandra.db.marshal.TypeParser.parse(TypeParser.java:89)
at 
org.apache.cassandra.auth.FunctionResource.argsListFromString(FunctionResource.java:338)
at 
org.apache.cassandra.auth.FunctionResource.fromName(FunctionResource.java:190)
at org.apache.cassandra.auth.Resources.fromName(Resources.java:60)
at 
org.apache.cassandra.auth.PermissionsCache.invalidatePermissions(PermissionsCache.java:48)
...
...
...
{code}

Otherwise, I think we're pretty much done with this. Thanks for all the good 
work [~azotcsit]


> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16796:

  Fix Version/s: (was: 4.0.x)
 (was: 3.11.x)
 (was: 3.0.x)
 4.0.1
 3.11.11
 3.0.25
  Since Version: 3.0.0
Source Control Link: 
https://github.com/apache/cassandra/commit/fbb20b9162b73c4de8a82cf4ffdde3304e904603
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Thanks, cleaned up those unused imports and committed to 3.0 and merged to 3.11 
-> 4.0 -> trunk. 

> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.25, 3.11.11, 4.0.1
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges for it even when it has left the ring and/or been 
> replaced (in practice until the peer is next bounced). This in turn can lead 
> to bogus unavailable responses to clients if a replica for the any of the 
> pending ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16796:

Status: Ready to Commit  (was: Review In Progress)

> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges for it even when it has left the ring and/or been 
> replaced (in practice until the peer is next bounced). This in turn can lead 
> to bogus unavailable responses to clients if a replica for the any of the 
> pending ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16796:
-

Thanks [~maedhroz]

bq. So just to make things explicit (for me, a non-gossip expert), notifying 
subscribers in onChange() means we hit updateNormalTokens(), which removes the 
endpoint from the "moving endpoints" set and eventually removes the pending 
ranges?

Yes, that's right. The shutting down node is essentially returning to a 
{{NORMAL}} state, so we just make sure that all
relevant parties (i.e. {{TokenMetadata}} ) are aware.

bq. What guarantees that a PendingRangeTask has run by the time 
gossipShutdownUpdatesTokenMetadata() verifies there are no longer pending range 
for node 2?

Good catch, I haven't seen any failures yet, but this definitely has the 
potential for flakiness. I've added a log
statement at {{DEBUG}} at the end of {{Gossiper::markAsShutdown}} to gate the 
test on, plus a blocking wait in the
assertion to ensure the PRT is complete before we check.

Circle runs are in the same place as before, new ASF CI jobs here: 
[3.0|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/961], 
[4.0|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/962]


> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges for it even when it has left the ring and/or been 
> replaced (in practice until the peer is next bounced). This in turn can lead 
> to bogus unavailable responses to clients if a replica for the any of the 
> pending ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-19 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16404 at 7/19/21, 2:45 PM:
---

bq. Sam Tunnicliffe Does that sound reasonable to you?

Yes SGTM, thanks

[~azotcsit] I think it's only {{invalidatepermissionscache}} that warrants any 
syntax change.

bq. "-u" might be bit confusing 

You're right, I had overlooked that when sketching out that syntax. 
Fortunately, we don't really need the {{-u}} flag as I think we can assume that 
the non-option argument is the grantee, which is consistent with the other 
commands anyway. 

bq. if we do not have enough information from input to construct "Resource" 
then we'll have to iterate through all cached records because "Resource" is a 
part of key

I'd be tempted to enforce that through validation in the tool itself, although 
iterating on the server side would still be required to invalidate all 
parmissions for a user. So for instance, an invocation like this should be 
rejected:

{code} bin/nodetool invalidatepermissionscache user_a -t some_table {code}

With the correct version being: 

{code} bin/nodetool invalidatepermissionscache user_a -k some_keyspace -t 
some_table {code}

Handling function resources is going to be a bit ugly as the arg types are 
significant and so need to be included.  The CQL representation is nicer for 
the user but not very shell friendly whereas the internal representation is 
very verbose. e.g. for a function with 2 int args:

{code} function ks.foo(int, int)
functions/ks/foo[org.apache.cassandra.db.marshal.Int32Type^org.apache.cassandra.db.marshal.Int32Type]
{code}

Seeing as we probably want a way to represent "all functions in a given 
keyspace" anyway, maybe we should simplify and just make that the only option. 
i.e. don't allow invalidation of permissions on specific functions, only all 
functions in a particular keyspace.

What does everyone think?


was (Author: beobal):
bq. Sam Tunnicliffe Does that sound reasonable to you?

Yes SGTM, thanks

[~azotcsit] I think it's only {{invalidatepermissionscache}} that warrants any 
syntax change.

bq. "-u" might be bit confusing 

You're right, I had overlooked that when sketching out that syntax. , we don't 
really need the {{-u}} flag as I think we can assume that the non-option 
argument is the grantee, which is consistent with the other commands anyway. 

bq. if we do not have enough information from input to construct "Resource" 
then we'll have to iterate through all cached records because "Resource" is a 
part of key

I'd be tempted to enforce that through validation in the tool itself, although 
iterating on the server side would still be required to invalidate all 
parmissions for a user. So for instance, an invocation like this should be 
rejected:

{code} bin/nodetool invalidatepermissionscache user_a -t some_table {code}

With the correct version being: 

{code} bin/nodetool invalidatepermissionscache user_a -k some_keyspace -t 
some_table {code}

Handling function resources is going to be a bit ugly as the arg types are 
significant and so need to be included.  The CQL representation is nicer for 
the user but not very shell friendly whereas the internal representation is 
very verbose. e.g. for a function with 2 int args:

{code} function ks.foo(int, int)
functions/ks/foo[org.apache.cassandra.db.marshal.Int32Type^org.apache.cassandra.db.marshal.Int32Type]
{code}

Seeing as we probably want a way to represent "all functions in a given 
keyspace" anyway, maybe we should simplify and just make that the only option. 
i.e. don't allow invalidation of permissions on specific functions, only all 
functions in a particular keyspace.

What does everyone think?

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to 

[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-19 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

bq. Sam Tunnicliffe Does that sound reasonable to you?

Yes SGTM, thanks

[~azotcsit] I think it's only {{invalidatepermissionscache}} that warrants any 
syntax change.

bq. "-u" might be bit confusing 

You're right, I had overlooked that when sketching out that syntax. , we don't 
really need the {{-u}} flag as I think we can assume that the non-option 
argument is the grantee, which is consistent with the other commands anyway. 

bq. if we do not have enough information from input to construct "Resource" 
then we'll have to iterate through all cached records because "Resource" is a 
part of key

I'd be tempted to enforce that through validation in the tool itself, although 
iterating on the server side would still be required to invalidate all 
parmissions for a user. So for instance, an invocation like this should be 
rejected:

{code} bin/nodetool invalidatepermissionscache user_a -t some_table {code}

With the correct version being: 

{code} bin/nodetool invalidatepermissionscache user_a -k some_keyspace -t 
some_table {code}

Handling function resources is going to be a bit ugly as the arg types are 
significant and so need to be included.  The CQL representation is nicer for 
the user but not very shell friendly whereas the internal representation is 
very verbose. e.g. for a function with 2 int args:

{code} function ks.foo(int, int)
functions/ks/foo[org.apache.cassandra.db.marshal.Int32Type^org.apache.cassandra.db.marshal.Int32Type]
{code}

Seeing as we probably want a way to represent "all functions in a given 
keyspace" anyway, maybe we should simplify and just make that the only option. 
i.e. don't allow invalidation of permissions on specific functions, only all 
functions in a particular keyspace.

What does everyone think?

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-14 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

Yep, I completely recognise your points here [~blerer], but I suppose my 
general counter argument would be if not now, when?
{quote}I also want to raise the fact that so far the Virtual Tables that we 
expose do not support updates. The mechanism is there but has not really been 
used (TRUNCATE is not supported at at).
{quote}
This is a brand new, low risk feature which is not blocking a release and nor 
is it particularly urgent. That seems to me to make it an ideal way to explore 
& flesh out that area.
{quote}Will it not make sense to support both approach until Virtual Tables 
provide the same level of functionalities that JMX and NodeTool or an extended 
version?
{quote}
That is quite an ambitious goal. My concern is that if we take the approach of 
splitting each task like this into distinct tickets, then pragmatism will get 
the better of us as it has in the past. That is, the desire for something that 
"does the job" today trumps the better/newer, but ultimately redundant, stuff. 
i.e. if there's a way to acheive this through nodetool/JMX, the incentive to 
build the VT version largely disappears.

All that said, like I said before I do appreciate that a lot of work has 
already gone into this ticket so it's absolutely my bad for not bringing 
forward this suggestion earlier. Aside from the syntactic stuff I mentioned in 
my previous comment, this generally LGTM, so I certainly wouldn't dig my heels 
in over it should we choose to stick with the current approach.

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-14 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

Thanks [~azotcsit], and apologies again for dropping in that suggestion so late.

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-13 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

I feel that the {{invalidatepermissionscache}} nodetool command could use a 
little syntactic sugar as operators have
previously not had any reason to be aware of the resource hierarchy. Perhaps as 
a first option we could support invalidation of all permissions for a supplied 
user, with the option to specify resources when required. 

That said, the format of resource names is not something I'd expect most 
operators to be familiar with. So while
allowing a qualified resource name is good, perhaps we ought to base the cli 
syntax more closely on CQL GRANT/REVOKE
statements. e.g.:

{code}bin/nodetool invalidatepermissionscache -u  [ -k  | 
-t  | -f  | -m
 | -r ] {code}

Stepping back a bit... I appreciate that a lot of effort has already gone into 
this ticket, but I wonder if we ought to
approach this slightly differently. Nodetool is, to some extent, deprecated, 
with access to system information via CQL &
virtual tables being the preferred alternative. Perhaps we would be better off 
implementing this feature with a set of
virtual tables to represent the caches. 

{code}
cqlsh:system_views> SELECT * FROM permissions_cache;

role | resource| permissions
-+-+--
user_a   | data/test_ks/test_table | {'SELECT', 'MODIFY'}

cqlsh:system_views> SELECT * FROM network_permissions_cache;

role | datacenters
-+
user_a   | {'dc1', 'dc2'}
user_b   | {}

{code}

The wrinkle I see would be in restricting the set of modifications permitted 
against the virtual tables. i.e. A user,
with the requisite permissions, should be able to DELETE from and TRUNCATE a 
*_cache table, but not perform any INSERT
or UPDATE modifications. It would require some special casing probably along 
the lines of what we have in
{{ClientState::preventSystemKSSchemaModification}} but I don't think that would 
be too onerous. Seeing as this is
targetting 4.x it seems slightly wrong to be adding brand new nodetool/JMX 
operations.


> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Aleksei Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-12 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16796:

Description: 
If a node involved in a MOVE operation should fail, peers can sometimes 
maintain pending ranges for it even when it has left the ring and/or been 
replaced (in practice until the peer is next bounced). This in turn can lead to 
bogus unavailable responses to clients if a replica for the any of the pending 
ranges should go down.

If the moving node crashes hard, a subsequent replacement will correctly fail 
as long as cassandra.consistent.rangemovement is set to true because the new 
node will learn the MOVING status from the remaining peers. A graceful 
shutdown, however, causes that status to be replaced with SHUTDOWN, but doesn't 
update TokenMetadata, so pending ranges remain for the down node, even after it 
has been removed from the ring.

  was:
If a node involved in a MOVE operation should fail, peers can sometimes 
maintain pending ranges even when it has left the ring and/or been replaced (in 
practice until the peer is next bounced). This in turn can lead to bogus 
unavailable responses to clients if a replica for the any of the pending ranges 
should go down.

If the moving node crashes hard, a subsequent replacement will correctly fail 
as long as cassandra.consistent.rangemovement is set to true because the new 
node will learn the MOVING status from the remaining peers. A graceful 
shutdown, however, causes that status to be replaced with SHUTDOWN, but doesn't 
update TokenMetadata, so pending ranges remain for the down node, even after it 
has been removed from the ring.


> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges for it even when it has left the ring and/or been 
> replaced (in practice until the peer is next bounced). This in turn can lead 
> to bogus unavailable responses to clients if a replica for the any of the 
> pending ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-12 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16796:

Test and Documentation Plan: new dtest added
 Status: Patch Available  (was: Open)

||branch||Circle CI||
|[16796-3.0|https://github.com/beobal/cassandra/tree/16796-3.0]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16796-3.0]|
|[16796-3.11|https://github.com/beobal/cassandra/tree/16796-3.11]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16796-3.11]|
|[16796-4.0|https://github.com/beobal/cassandra/tree/16796-4.0]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16796-4.0]|
|[16796-trunk|https://github.com/beobal/cassandra/tree/16796-trunk]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16796-trunk]|

The 3.0/3.11 & 4.0/trunk patches are basically the same, so I've only kicked 
off ci-c jobs for 
[3.0|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/936] 
and 
[4.0|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/936]


> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges even when it has left the ring and/or been replaced 
> (in practice until the peer is next bounced). This in turn can lead to bogus 
> unavailable responses to clients if a replica for the any of the pending 
> ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-12 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16796:

 Bug Category: Parent values: Availability(12983)Level 1 values: 
Unavailable(12994)
   Complexity: Normal
Discovered By: User Report
Fix Version/s: 4.0.x
   3.11.x
   3.0.x
 Severity: Normal
   Status: Open  (was: Triage Needed)

> Clear pending ranges for a SHUTDOWN peer
> 
>
> Key: CASSANDRA-16796
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
> Project: Cassandra
>  Issue Type: Bug
>  Components: Cluster/Membership
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0.x
>
>
> If a node involved in a MOVE operation should fail, peers can sometimes 
> maintain pending ranges even when it has left the ring and/or been replaced 
> (in practice until the peer is next bounced). This in turn can lead to bogus 
> unavailable responses to clients if a replica for the any of the pending 
> ranges should go down.
> If the moving node crashes hard, a subsequent replacement will correctly fail 
> as long as cassandra.consistent.rangemovement is set to true because the new 
> node will learn the MOVING status from the remaining peers. A graceful 
> shutdown, however, causes that status to be replaced with SHUTDOWN, but 
> doesn't update TokenMetadata, so pending ranges remain for the down node, 
> even after it has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-16796) Clear pending ranges for a SHUTDOWN peer

2021-07-12 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-16796:
---

 Summary: Clear pending ranges for a SHUTDOWN peer
 Key: CASSANDRA-16796
 URL: https://issues.apache.org/jira/browse/CASSANDRA-16796
 Project: Cassandra
  Issue Type: Bug
  Components: Cluster/Membership
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


If a node involved in a MOVE operation should fail, peers can sometimes 
maintain pending ranges even when it has left the ring and/or been replaced (in 
practice until the peer is next bounced). This in turn can lead to bogus 
unavailable responses to clients if a replica for the any of the pending ranges 
should go down.

If the moving node crashes hard, a subsequent replacement will correctly fail 
as long as cassandra.consistent.rangemovement is set to true because the new 
node will learn the MOVING status from the remaining peers. A graceful 
shutdown, however, causes that status to be replaced with SHUTDOWN, but doesn't 
update TokenMetadata, so pending ranges remain for the down node, even after it 
has been removed from the ring.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16404) Provide a nodetool way of invalidating auth caches

2021-07-06 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16404:
-

bq. Sam Tunnicliffe Your are familiar with that part of the code. Would you 
have some time for a review?

Probably not for a few days, but I will try to take a look this week if that's 
any use.

> Provide a nodetool way of invalidating auth caches
> --
>
> Key: CASSANDRA-16404
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16404
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Feature/Authorization
>Reporter: Sumanth Pasupuleti
>Assignee: Alexey Zotov
>Priority: Normal
> Fix For: 4.x
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> We currently have nodetool commands to invalidate certain caches like 
> KeyCache, RowCache and CounterCache. 
> Being able to invalidate auth caches as well can come in handy in situations 
> where, critical backend auth changes may need to be in effect right away for 
> all the connections, especially in configurations where cache validity is 
> chosen to be for a longer duration. An example can be that an authenticated 
> user "User1" is no longer authorized to access a table resource "table1" and 
> it is vital that this change is reflected right away, without having to wait 
> for cache expiry/refresh to trigger.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Assigned] (CASSANDRA-12988) make the consistency level for user-level auth reads and writes configurable

2021-06-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe reassigned CASSANDRA-12988:
---

Assignee: Sam Tunnicliffe

> make the consistency level for user-level auth reads and writes configurable
> 
>
> Key: CASSANDRA-12988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12988
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Jason Brown
>Assignee: Sam Tunnicliffe
>Priority: Low
> Fix For: 4.x
>
>
> Most reads for the auth-related tables execute at {{LOCAL_ONE}}. We'd like to 
> make it configurable, with the default still being {{LOCAL_ONE}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-12988) make the consistency level for user-level auth reads and writes configurable

2021-06-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-12988:

Authors:   (was: Sam Tunnicliffe)

> make the consistency level for user-level auth reads and writes configurable
> 
>
> Key: CASSANDRA-12988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12988
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Jason Brown
>Assignee: Sam Tunnicliffe
>Priority: Low
> Fix For: 4.x
>
>
> Most reads for the auth-related tables execute at {{LOCAL_ONE}}. We'd like to 
> make it configurable, with the default still being {{LOCAL_ONE}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Assigned] (CASSANDRA-12988) make the consistency level for user-level auth reads and writes configurable

2021-06-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe reassigned CASSANDRA-12988:
---

Assignee: (was: Sam Tunnicliffe)

> make the consistency level for user-level auth reads and writes configurable
> 
>
> Key: CASSANDRA-12988
> URL: https://issues.apache.org/jira/browse/CASSANDRA-12988
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Legacy/Core
>Reporter: Jason Brown
>Priority: Low
> Fix For: 4.x
>
>
> Most reads for the auth-related tables execute at {{LOCAL_ONE}}. We'd like to 
> make it configurable, with the default still being {{LOCAL_ONE}}.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16735) Adding columns via ALTER TABLE can generate corrupt sstables

2021-06-18 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16735:

Status: Ready to Commit  (was: Review In Progress)

LGTM +1

> Adding columns via ALTER TABLE can generate corrupt sstables
> 
>
> Key: CASSANDRA-16735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16735
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Repair, Local/SSTable
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 4.0-rc2, 3.0.x, 3.11.x, 4.0-rc
>
>
> This is similar to CASSANDRA-13004 and was caused by CASSANDRA-15899
> Basically the column placeholders introduced in 15899 can get read-repaired 
> in to the memtable and later flushed to disk and in some cases this can 
> conflict with the actual column (if the actual column is a collection for 
> example) and cause CorruptSSTableExceptions.
> Fix is probably to just revert 15899, at least until if and when we find a 
> solution that we can rely on. Will post that + test next week.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16735) Adding columns via ALTER TABLE can generate corrupt sstables

2021-06-18 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16735:

Reviewers: Alex Petrov, Sam Tunnicliffe, Sam Tunnicliffe  (was: Alex 
Petrov, Sam Tunnicliffe)
   Alex Petrov, Sam Tunnicliffe, Sam Tunnicliffe  (was: Alex 
Petrov, Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

> Adding columns via ALTER TABLE can generate corrupt sstables
> 
>
> Key: CASSANDRA-16735
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16735
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Repair, Local/SSTable
>Reporter: Marcus Eriksson
>Assignee: Marcus Eriksson
>Priority: Normal
> Fix For: 4.0-rc2, 3.0.x, 3.11.x, 4.0-rc
>
>
> This is similar to CASSANDRA-13004 and was caused by CASSANDRA-15899
> Basically the column placeholders introduced in 15899 can get read-repaired 
> in to the memtable and later flushed to disk and in some cases this can 
> conflict with the actual column (if the actual column is a collection for 
> example) and cause CorruptSSTableExceptions.
> Fix is probably to just revert 15899, at least until if and when we find a 
> solution that we can rely on. Will post that + test next week.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16722) ClientMetrics should be initialised in CQLConnectionTest

2021-06-09 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16722:

  Fix Version/s: (was: 4.0-rc)
 4.0
  Since Version: NA
Source Control Link: 
https://github.com/apache/cassandra/commit/546792169e7df90c905139d1a275056bbef850d4
 Resolution: Fixed
 Status: Resolved  (was: Ready to Commit)

Thanks, committed with one additional tweak to remove a race in 
{{CQLConnectionTest}} when the server closes the channel.

> ClientMetrics should be initialised in CQLConnectionTest
> 
>
> Key: CASSANDRA-16722
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16722
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0
>
>
> Without a call to {{ClientMetrics.instance.init}}, client protocol errors 
> cause an NPE when the server attempts to mark the relevant meter.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16722) ClientMetrics should be initialised in CQLConnectionTest

2021-06-07 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16722:

Test and Documentation Plan: test only fix
 Status: Patch Available  (was: Open)

||branch||Circle CI|Apache CI|
|[16722-4.0.0|https://github.com/beobal/cassandra/tree/16722-4.0.0]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16722-4.0.0]|[apache|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/849]|

> ClientMetrics should be initialised in CQLConnectionTest
> 
>
> Key: CASSANDRA-16722
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16722
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0-rc
>
>
> Without a call to {{ClientMetrics.instance.init}}, client protocol errors 
> cause an NPE when the server attempts to mark the relevant meter.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16722) ClientMetrics should be initialised in CQLConnectionTest

2021-06-07 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16722:

 Bug Category: Parent values: Correctness(12982)Level 1 values: Test 
Failure(12990)
   Complexity: Low Hanging Fruit
Discovered By: Unit Test
Fix Version/s: 4.0-rc
 Severity: Low
   Status: Open  (was: Triage Needed)

This only affects test code and only appears to have caused a single failure of 
the 4.0.0 nightlies.

 

https://ci-cassandra.apache.org/job/Cassandra-4.0.0/3/testReport/

> ClientMetrics should be initialised in CQLConnectionTest
> 
>
> Key: CASSANDRA-16722
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16722
> Project: Cassandra
>  Issue Type: Bug
>  Components: Test/unit
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0-rc
>
>
> Without a call to {{ClientMetrics.instance.init}}, client protocol errors 
> cause an NPE when the server attempts to mark the relevant meter.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-16722) ClientMetrics should be initialised in CQLConnectionTest

2021-06-07 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-16722:
---

 Summary: ClientMetrics should be initialised in CQLConnectionTest
 Key: CASSANDRA-16722
 URL: https://issues.apache.org/jira/browse/CASSANDRA-16722
 Project: Cassandra
  Issue Type: Bug
  Components: Test/unit
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


Without a call to {{ClientMetrics.instance.init}}, client protocol errors cause 
an NPE when the server attempts to mark the relevant meter.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-06-07 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16721:

Test and Documentation Plan: New dtests added
 Status: Patch Available  (was: In Progress)

||branch||Circle CI|Apache CI|
|[16721-4.0|https://github.com/beobal/cassandra/tree/16721-4.0]|[circle|https://circleci.com/gh/beobal/cassandra?branch=16721-4.0]|[ci-c|https://ci-cassandra.apache.org/view/patches/job/Cassandra-devbranch/848]|


> Repaired data tracking on a read coordinator is susceptible to races between 
> local and remote requests
> --
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> At read time on a coordinator which is also a replica, the local and remote 
> reads can race such that the remote responses are received while the local 
> read is executing. If the remote responses are mismatching, triggering a 
> {{DigestMismatchException}} and subsequent round of full data reads and read 
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
> flipped mid-execution.  If this happens after a certain point in execution, 
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object 
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
> iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-06-07 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16721:

 Bug Category: Parent values: Availability(12983)Level 1 values: Response 
Crash(12991)
   Complexity: Normal
Discovered By: User Report
Fix Version/s: 4.0.x
 Severity: Normal
   Status: Open  (was: Triage Needed)

> Repaired data tracking on a read coordinator is susceptible to races between 
> local and remote requests
> --
>
> Key: CASSANDRA-16721
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
> Project: Cassandra
>  Issue Type: Bug
>  Components: Consistency/Coordination
>Reporter: Sam Tunnicliffe
>Assignee: Sam Tunnicliffe
>Priority: Normal
> Fix For: 4.0.x
>
>
> At read time on a coordinator which is also a replica, the local and remote 
> reads can race such that the remote responses are received while the local 
> read is executing. If the remote responses are mismatching, triggering a 
> {{DigestMismatchException}} and subsequent round of full data reads and read 
> repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
> flipped mid-execution.  If this happens after a certain point in execution, 
> it would mean
> that the RepairedDataInfo instance in use is the singleton null object 
> {{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
> an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
> iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Created] (CASSANDRA-16721) Repaired data tracking on a read coordinator is susceptible to races between local and remote requests

2021-06-07 Thread Sam Tunnicliffe (Jira)
Sam Tunnicliffe created CASSANDRA-16721:
---

 Summary: Repaired data tracking on a read coordinator is 
susceptible to races between local and remote requests
 Key: CASSANDRA-16721
 URL: https://issues.apache.org/jira/browse/CASSANDRA-16721
 Project: Cassandra
  Issue Type: Bug
  Components: Consistency/Coordination
Reporter: Sam Tunnicliffe
Assignee: Sam Tunnicliffe


At read time on a coordinator which is also a replica, the local and remote 
reads can race such that the remote responses are received while the local read 
is executing. If the remote responses are mismatching, triggering a 
{{DigestMismatchException}} and subsequent round of full data reads and read 
repair, the local runnable may find the {{isTrackingRepairedStatus}} flag 
flipped mid-execution.  If this happens after a certain point in execution, it 
would mean
that the RepairedDataInfo instance in use is the singleton null object 
{{RepairedDataInfo.NULL_REPAIRED_DATA_INFO}}. If this happens, it can lead to 
an NPE when calling {{RepairedDataInfo::extend}} when the local results are 
iterated.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16581) Failure to execute queries should emit a KPI other than read timeout/unavailable so it can be alerted/tracked

2021-06-01 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16581:
-

sorry for the holdup, the trunk fix LGTM now except that the change to 
{{FrameEncoder::write}} hasn't been reverted yet. Aside from that, I think this 
good to go once the 4.0 branch is updated. Thanks!

> Failure to execute queries should emit a KPI other than read 
> timeout/unavailable so it can be alerted/tracked
> -
>
> Key: CASSANDRA-16581
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16581
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client, Observability/Metrics
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0-rc
>
>
> When we are unable to parse a message we do not have a way to detect this 
> from a monitoring point of view so can get into situations where we believe 
> the database is fine but the clients are on-fire.  This case popped up in the 
> 2.1 to 3.0 upgrade as paging state wasn’t mixed-mode safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16581) Failure to execute queries should emit a KPI other than read timeout/unavailable so it can be alerted/tracked

2021-05-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16581 at 5/20/21, 6:48 PM:
---

Oh, I totally missed that in {{SimpleClient}}, sorry. In that case, I 
definitely think we need to revisit how the test is
 implemented. That assertion in {{FrameEncoder}} is important, not only for the 
client protocol, but for internode which
 shares the class.

There's quite a lot of machinery in {{CQLConnectionTest}} to give control over 
the exact bytes that the v5 pipeline
 classes have to deal with. Unfortunately, retro fitting that to support v4 and 
earlier is not a trivial task. I've
 pushed an alternative reworking of the test 
[here|https://github.com/beobal/cassandra/tree/CASSANDRA-16581-4.0].

Instead of changing the encoders/decoders this adds a test implementation of 
{{Message.Request}} which we can prime with some garbage bytes, so that when 
it's decoded, a \{{ProtocolError}} is guaranteed. This required a tiny bit of 
refactoring in {{Envelope}} to make the v4 encoding ask-dont-tell like v5, but 
it gives the test code control over the actual bytes that get decoded on the 
server rather than having to bypass the checks in the outbound pipeline.

A nice side effect of this is that the v5 test is now exercising the CQL 
protocol decoding, rather than hitting the CRC
 errors in the framing layer. There are quite a few tests in 
{{CQLConnectionTest}} which do verify that, so we should be
 good there. This also means that the channel-closing behaviour is the same 
between the v4 & v5 tests.

Now the message pipelines and failure behaviours are aligned across versions, 
we don't need {{WrappedSimpleClient}} any
 more and because the test cases are identical, I've made the test 
{{@Parameterized}} so it will automatically cover all
 supported versions.


was (Author: beobal):
Oh, I totally missed that in {{SimpleClient}}, sorry. In that case, I 
definitely think we need to revisit how the test is
 implemented. That assertion in {{FrameEncoder}} is important, not only for the 
client protocol, but for internode which
 shares the class.

There's quite a lot of machinery in {{CQLConnectionTest}} to give control over 
the exact bytes that the v5 pipeline
 classes have to deal with. Unfortunately, retro fitting that to support v4 and 
earlier is not a trivial task. I've
 pushed an alternative reworking of the test 
[here|https://github.com/beobal/cassandra/tree/CASSANDRA-16581-4.0].

Instead of changing the encoders/decoders this adds a test implementation of 
{{Message.Request}} which we can prime with some garbage bytes, so that when 
it's decoded, a{{ProtocolError}} is guaranteed. This required a tiny bit of 
refactoring in {{Envelope}} to make the v4 encoding ask-dont-tell like v5, but 
it gives the test code control over the actual bytes that get decoded on the 
server rather than having to bypass the checks in the outbound pipeline.

A nice side effect of this is that the v5 test is now exercising the CQL 
protocol decoding, rather than hitting the CRC
 errors in the framing layer. There are quite a few tests in 
{{CQLConnectionTest}} which do verify that, so we should be
 good there. This also means that the channel-closing behaviour is the same 
between the v4 & v5 tests.

Now the message pipelines and failure behaviours are aligned across versions, 
we don't need {{WrappedSimpleClient}} any
 more and because the test cases are identical, I've made the test 
{{@Parameterized}} so it will automatically cover all
 supported versions.

> Failure to execute queries should emit a KPI other than read 
> timeout/unavailable so it can be alerted/tracked
> -
>
> Key: CASSANDRA-16581
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16581
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client, Observability/Metrics
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0-rc
>
>
> When we are unable to parse a message we do not have a way to detect this 
> from a monitoring point of view so can get into situations where we believe 
> the database is fine but the clients are on-fire.  This case popped up in the 
> 2.1 to 3.0 upgrade as paging state wasn’t mixed-mode safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-16581) Failure to execute queries should emit a KPI other than read timeout/unavailable so it can be alerted/tracked

2021-05-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-16581 at 5/20/21, 6:47 PM:
---

Oh, I totally missed that in {{SimpleClient}}, sorry. In that case, I 
definitely think we need to revisit how the test is
 implemented. That assertion in {{FrameEncoder}} is important, not only for the 
client protocol, but for internode which
 shares the class.

There's quite a lot of machinery in {{CQLConnectionTest}} to give control over 
the exact bytes that the v5 pipeline
 classes have to deal with. Unfortunately, retro fitting that to support v4 and 
earlier is not a trivial task. I've
 pushed an alternative reworking of the test 
[here|https://github.com/beobal/cassandra/tree/CASSANDRA-16581-4.0].

Instead of changing the encoders/decoders this adds a test implementation of 
{{Message.Request}} which we can prime with some garbage bytes, so that when 
it's decoded, a{{ProtocolError}} is guaranteed. This required a tiny bit of 
refactoring in {{Envelope}} to make the v4 encoding ask-dont-tell like v5, but 
it gives the test code control over the actual bytes that get decoded on the 
server rather than having to bypass the checks in the outbound pipeline.

A nice side effect of this is that the v5 test is now exercising the CQL 
protocol decoding, rather than hitting the CRC
 errors in the framing layer. There are quite a few tests in 
{{CQLConnectionTest}} which do verify that, so we should be
 good there. This also means that the channel-closing behaviour is the same 
between the v4 & v5 tests.

Now the message pipelines and failure behaviours are aligned across versions, 
we don't need {{WrappedSimpleClient}} any
 more and because the test cases are identical, I've made the test 
{{@Parameterized}} so it will automatically cover all
 supported versions.


was (Author: beobal):
Oh, I totally missed that in {{SimpleClient}}, sorry. In that case, I 
definitely think we need to revisit how the test is
implemented. That assertion in {{FrameEncoder}} is important, not only for the 
client protocol, but for internode which
shares the class. 

There's quite a lot of machinery in {{CQLConnectionTest}} to give control over 
the exact bytes that the v5 pipeline
classes have to deal with. Unfortunately, retro fitting that to support v4 and 
earlier is not a trivial task. I've
pushed an alternative reworking of the test 
[here|https://github.com/beobal/cassandra/tree/CASSANDRA-16581-4.0].

Instead of changing the encoders/decoders this adds a test implementation of 
{{Message.Request}} which we can prime with some garbage bytes, so that when 
it's decoded, a
{{ProtocolError}} is guaranteed. This required a tiny bit of refactoring in 
{{Envelope}} to make the v4 encoding
ask-dont-tell like v5, but it gives the test code control over the actual bytes 
that get decoded on the server rather
than having to bypass the checks in the outbound pipeline.

A nice side effect of this is that the v5 test is now exercising the CQL 
protocol decoding, rather than hitting the CRC
errors in the framing layer. There are quite a few tests in 
{{CQLConnectionTest}} which do verify that, so we should be
good there. This also means that the channel-closing behaviour is the same 
between the v4 & v5 tests.

Now the message pipelines and failure behaviours are aligned across versions, 
we don't need {{WrappedSimpleClient}} any
more and because the test cases are identical, I've made the test 
{{@Parameterized}} so it will automatically cover all
supported versions. 


> Failure to execute queries should emit a KPI other than read 
> timeout/unavailable so it can be alerted/tracked
> -
>
> Key: CASSANDRA-16581
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16581
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client, Observability/Metrics
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0-rc
>
>
> When we are unable to parse a message we do not have a way to detect this 
> from a monitoring point of view so can get into situations where we believe 
> the database is fine but the clients are on-fire.  This case popped up in the 
> 2.1 to 3.0 upgrade as paging state wasn’t mixed-mode safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16581) Failure to execute queries should emit a KPI other than read timeout/unavailable so it can be alerted/tracked

2021-05-20 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16581:

Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

Oh, I totally missed that in {{SimpleClient}}, sorry. In that case, I 
definitely think we need to revisit how the test is
implemented. That assertion in {{FrameEncoder}} is important, not only for the 
client protocol, but for internode which
shares the class. 

There's quite a lot of machinery in {{CQLConnectionTest}} to give control over 
the exact bytes that the v5 pipeline
classes have to deal with. Unfortunately, retro fitting that to support v4 and 
earlier is not a trivial task. I've
pushed an alternative reworking of the test 
[here|https://github.com/beobal/cassandra/tree/CASSANDRA-16581-4.0].

Instead of changing the encoders/decoders this adds a test implementation of 
{{Message.Request}} which we can prime with some garbage bytes, so that when 
it's decoded, a
{{ProtocolError}} is guaranteed. This required a tiny bit of refactoring in 
{{Envelope}} to make the v4 encoding
ask-dont-tell like v5, but it gives the test code control over the actual bytes 
that get decoded on the server rather
than having to bypass the checks in the outbound pipeline.

A nice side effect of this is that the v5 test is now exercising the CQL 
protocol decoding, rather than hitting the CRC
errors in the framing layer. There are quite a few tests in 
{{CQLConnectionTest}} which do verify that, so we should be
good there. This also means that the channel-closing behaviour is the same 
between the v4 & v5 tests.

Now the message pipelines and failure behaviours are aligned across versions, 
we don't need {{WrappedSimpleClient}} any
more and because the test cases are identical, I've made the test 
{{@Parameterized}} so it will automatically cover all
supported versions. 


> Failure to execute queries should emit a KPI other than read 
> timeout/unavailable so it can be alerted/tracked
> -
>
> Key: CASSANDRA-16581
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16581
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client, Observability/Metrics
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0-rc
>
>
> When we are unable to parse a message we do not have a way to detect this 
> from a monitoring point of view so can get into situations where we believe 
> the database is fine but the clients are on-fire.  This case popped up in the 
> 2.1 to 3.0 upgrade as paging state wasn’t mixed-mode safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16581) Failure to execute queries should emit a KPI other than read timeout/unavailable so it can be alerted/tracked

2021-05-19 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16581:

Status: Changes Suggested  (was: Review In Progress)

Thanks, looks good to me except for a couple of minor things.


h3. ProtocolVersion

I'd suggest renaming {{DSE_VERSIONS}} to something like 
{{KNOWN_INVALID_VERSIONS}}

h3. FrameEncoder

This change seems wrong, if we receive anything other than a {{Payload}} here, 
it's an error. Is this some leftover debugging perhaps? 

> Failure to execute queries should emit a KPI other than read 
> timeout/unavailable so it can be alerted/tracked
> -
>
> Key: CASSANDRA-16581
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16581
> Project: Cassandra
>  Issue Type: Bug
>  Components: Messaging/Client, Observability/Metrics
>Reporter: David Capwell
>Assignee: David Capwell
>Priority: Normal
> Fix For: 3.0.x, 3.11.x, 4.0-rc
>
>
> When we are unable to parse a message we do not have a way to detect this 
> from a monitoring point of view so can get into situations where we believe 
> the database is fine but the clients are on-fire.  This case popped up in the 
> 2.1 to 3.0 upgrade as paging state wasn’t mixed-mode safe.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16613) ProtocolVersion.V4 is still used in places in the code

2021-05-05 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16613:

Status: Ready to Commit  (was: Review In Progress)

+1 LGTM. If I remember right, {{ViewComplexTest}} has long been flaky due to 
timeouts on anything less than the XLarge plan. It would be nice if it wasn't 
necessary, but raising the timeout is the most pragmatic solution so I'm fine 
with it. Also +1 to changing the in-jvm dtests to use {{CURRENT}}, I can't 
think of any reason that isn't the right thing to do.

> ProtocolVersion.V4 is still used in places in the code
> --
>
> Key: CASSANDRA-16613
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16613
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
> Fix For: 4.0-rc2, 4.0-rc
>
>
> While working on CASSANDRA-16567, [~adelapena] observed that 
> _ProtocolVersion.V4_ is used in _ViewTest_.
> I decided to do a quick grep and observed a list of places where we still 
> refer to V4 and it seems at least in many of the tests that was left not 
> intentionally.
> This ticket is to verify the usage of _ProtocolVersion.V4_ in the codebase 
> and bump it to V5 or  default version, similar to what was done in 
> CASSANDRA-16567, wherever there is a need. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-16613) ProtocolVersion.V4 is still used in places in the code

2021-05-05 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-16613:

Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Status: Review In Progress  (was: Patch Available)

> ProtocolVersion.V4 is still used in places in the code
> --
>
> Key: CASSANDRA-16613
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16613
> Project: Cassandra
>  Issue Type: Bug
>Reporter: Ekaterina Dimitrova
>Assignee: Ekaterina Dimitrova
>Priority: Normal
> Fix For: 4.0-rc2, 4.0-rc
>
>
> While working on CASSANDRA-16567, [~adelapena] observed that 
> _ProtocolVersion.V4_ is used in _ViewTest_.
> I decided to do a quick grep and observed a list of places where we still 
> refer to V4 and it seems at least in many of the tests that was left not 
> intentionally.
> This ticket is to verify the usage of _ProtocolVersion.V4_ in the codebase 
> and bump it to V5 or  default version, similar to what was done in 
> CASSANDRA-16567, wherever there is a need. 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15269) Cassandra fails to process OperationExecutionException which causes ClassCastException

2021-05-04 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-15269:

Reviewers: Sam Tunnicliffe, Sam Tunnicliffe  (was: Sam Tunnicliffe)
   Sam Tunnicliffe, Sam Tunnicliffe
   Status: Review In Progress  (was: Patch Available)

Sorry for the extremely late feedback on this, I was completely unaware of the 
ticket. Unfortunately, protocol v5 has been finalised so a change like this one 
would need to target v6. 

That said, I'm not really sure that a new exception code is necessary here. 
Technically, what is occurring _is_ a problem with function execution, that 
function being a {{NumericOperationFunction}}, which is a subclass of 
{{OperationFunction}} and ultimately {{AbstractFunction}}. So I don't think the 
{{FUNCTION_FAILURE}} response is actually incorrect. My suggestion would be 
that we fix the class cast exception, perhaps by having {{OEE}} extend {{FEE}, 
{{OperationFcts::getFunctionNameFromOperator}} can be used to obtain a 
{{FunctionName}} for the operation.


> Cassandra fails to process OperationExecutionException which causes 
> ClassCastException
> --
>
> Key: CASSANDRA-15269
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15269
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL/Interpreter
>Reporter: Liudmila Kornilova
>Assignee: Liudmila Kornilova
>Priority: Normal
>
> While working on CASSANDRA-15232 I noticed that OperationExecutionException 
> is not processed correctly.
> How to reproduce the issue:
>  1. {{create table d (numerator decimal primary key, denominator decimal);}}
>  2. {{insert into d (numerator, denominator) values 
> (123456789112345678921234567893123456, 2);}}
>  3. {{select numerator % denominator from d;}}
> What happens:
>  1. remainder operation throws ArithmeticException (BigDecimal:1854)
>  2. The exception is wrapped in OperationExecutionException
>  3. ClassCastException appears (OperationExecutionException cannot be cast to 
> FunctionExecutionException at ErrorMessage.java:280)
> What should happen:
> OperationExecutionException with message "the operation 'decimal % decimal' 
> failed: Division impossible" should be delivered to user 
> Note that after fixing CASSANDRA-15232 {{select numerator % denominator from 
> d;}} will produce correct result of remainder operation.
>  Currently I am not aware of other cases when OperationExecutionException may 
> be treated as FunctionExecutionException



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Updated] (CASSANDRA-15269) Cassandra fails to process OperationExecutionException which causes ClassCastException

2021-05-04 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe updated CASSANDRA-15269:

Status: Changes Suggested  (was: Review In Progress)

> Cassandra fails to process OperationExecutionException which causes 
> ClassCastException
> --
>
> Key: CASSANDRA-15269
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15269
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL/Interpreter
>Reporter: Liudmila Kornilova
>Assignee: Liudmila Kornilova
>Priority: Normal
>
> While working on CASSANDRA-15232 I noticed that OperationExecutionException 
> is not processed correctly.
> How to reproduce the issue:
>  1. {{create table d (numerator decimal primary key, denominator decimal);}}
>  2. {{insert into d (numerator, denominator) values 
> (123456789112345678921234567893123456, 2);}}
>  3. {{select numerator % denominator from d;}}
> What happens:
>  1. remainder operation throws ArithmeticException (BigDecimal:1854)
>  2. The exception is wrapped in OperationExecutionException
>  3. ClassCastException appears (OperationExecutionException cannot be cast to 
> FunctionExecutionException at ErrorMessage.java:280)
> What should happen:
> OperationExecutionException with message "the operation 'decimal % decimal' 
> failed: Division impossible" should be delivered to user 
> Note that after fixing CASSANDRA-15232 {{select numerator % denominator from 
> d;}} will produce correct result of remainder operation.
>  Currently I am not aware of other cases when OperationExecutionException may 
> be treated as FunctionExecutionException



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Comment Edited] (CASSANDRA-15269) Cassandra fails to process OperationExecutionException which causes ClassCastException

2021-05-04 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe edited comment on CASSANDRA-15269 at 5/4/21, 9:14 AM:
--

Sorry for the extremely late feedback on this, I was completely unaware of the 
ticket. Unfortunately, protocol v5 has been finalised so a change like this one 
would need to target v6. 

That said, I'm not really sure that a new exception code is necessary here. 
Technically, what is occurring _is_ a problem with function execution, that 
function being a {{NumericOperationFunction}}, which is a subclass of 
{{OperationFunction}} and ultimately {{AbstractFunction}}. So I don't think the 
{{FUNCTION_FAILURE}} response is actually incorrect. My suggestion would be 
that we fix the class cast exception, perhaps by having {{OEE}} extend {{FEE}}. 
{{OperationFcts::getFunctionNameFromOperator}} can be used to obtain a 
{{FunctionName}} for the operation.



was (Author: beobal):
Sorry for the extremely late feedback on this, I was completely unaware of the 
ticket. Unfortunately, protocol v5 has been finalised so a change like this one 
would need to target v6. 

That said, I'm not really sure that a new exception code is necessary here. 
Technically, what is occurring _is_ a problem with function execution, that 
function being a {{NumericOperationFunction}}, which is a subclass of 
{{OperationFunction}} and ultimately {{AbstractFunction}}. So I don't think the 
{{FUNCTION_FAILURE}} response is actually incorrect. My suggestion would be 
that we fix the class cast exception, perhaps by having {{OEE}} extend {{FEE}, 
{{OperationFcts::getFunctionNameFromOperator}} can be used to obtain a 
{{FunctionName}} for the operation.


> Cassandra fails to process OperationExecutionException which causes 
> ClassCastException
> --
>
> Key: CASSANDRA-15269
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15269
> Project: Cassandra
>  Issue Type: Bug
>  Components: CQL/Interpreter
>Reporter: Liudmila Kornilova
>Assignee: Liudmila Kornilova
>Priority: Normal
>
> While working on CASSANDRA-15232 I noticed that OperationExecutionException 
> is not processed correctly.
> How to reproduce the issue:
>  1. {{create table d (numerator decimal primary key, denominator decimal);}}
>  2. {{insert into d (numerator, denominator) values 
> (123456789112345678921234567893123456, 2);}}
>  3. {{select numerator % denominator from d;}}
> What happens:
>  1. remainder operation throws ArithmeticException (BigDecimal:1854)
>  2. The exception is wrapped in OperationExecutionException
>  3. ClassCastException appears (OperationExecutionException cannot be cast to 
> FunctionExecutionException at ErrorMessage.java:280)
> What should happen:
> OperationExecutionException with message "the operation 'decimal % decimal' 
> failed: Division impossible" should be delivered to user 
> Note that after fixing CASSANDRA-15232 {{select numerator % denominator from 
> d;}} will produce correct result of remainder operation.
>  Currently I am not aware of other cases when OperationExecutionException may 
> be treated as FunctionExecutionException



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



[jira] [Commented] (CASSANDRA-16360) CRC32 is inefficient on x86

2021-04-30 Thread Sam Tunnicliffe (Jira)


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

Sam Tunnicliffe commented on CASSANDRA-16360:
-

{quote}Do you think it is worth to make this part now or we should wait and 
make the full change later on?
{quote}

Personally, I would apply the YAGNI principle and defer the work until I was 
ready to start one of the pieces which actually requires it. That said, if you 
have a surplus of free time and a burning desire to do it, I certainly wouldn't 
stand in your way :)

> CRC32 is inefficient on x86
> ---
>
> Key: CASSANDRA-16360
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16360
> Project: Cassandra
>  Issue Type: Improvement
>  Components: Messaging/Client
>Reporter: Avi Kivity
>Assignee: Alexey Zotov
>Priority: Normal
>  Labels: protocolv6
> Fix For: 4.x
>
>
> The client/server protocol specifies CRC24 and CRC32 as the checksum 
> algorithm (cql_protocol_V5_framing.asc). Those however are expensive to 
> compute; this affects both the client and the server.
>  
> A better checksum algorithm is CRC32C, which has hardware support on x86 (as 
> well as other modern architectures).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

-
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org



<    3   4   5   6   7   8   9   10   11   12   >