[
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]