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

Caleb Rackliffe commented on CASSANDRA-16996:
---------------------------------------------

bq. we should consider that currently the Schema class controls mutually 
exclusivity on applyChanges and perhaps this class should be the public API for 
these other two API methods

Yes, this is exactly what I meant by...

bq. There is another way we might be able to solve this problem, and that's 
delegating more of our schema manipulation to Schema, where we're already 
synchronizing some of the codepaths that hit SchemaKeyspace. In that case, we 
could just annotate the latter as being explicitly not thread-safe. 

In terms of what level of abstraction at which we would like to test, there is 
some prior art between {{SchemaDisagreementTest}}, {{SchemaTest}} (in-JVM), and 
{{SchemaTest}} (unit), and {{DigestResolverTest}} that could be a starting 
point. Fuzzing on the thread-safety guarantees (or lack thereof) of {{Schema}} 
directly (assuming the structure above) to reproduce this seems valuable. (If I 
had to argue against myself, I'd say that this doesn't add much value over 
simply the properly reviewed and documented fix, but in that case, a test 
checking for the {{synchronized}} modifier doesn't either.)

Are there any other details around the original Fallout test that spawned this 
that might be helpful?

> Prevent broken concurrent schema read/writes
> --------------------------------------------
>
>                 Key: CASSANDRA-16996
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16996
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Cluster/Schema
>            Reporter: Berenguer Blasi
>            Assignee: Berenguer Blasi
>            Priority: Normal
>             Fix For: 3.11.x, 4.0, 4.x
>
>
> See CASSANDRA-16856 where the concurrent read/write path was left out



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to