[
https://issues.apache.org/jira/browse/CASSANDRA-16394?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alex Petrov updated CASSANDRA-16394:
------------------------------------
Fix Version/s: 4.0-beta5
3.11.10
3.0.24
2.2.20
Since Version: 2.2.19
Source Control Link:
https://github.com/apache/cassandra/commit/276249910ec1c0aee881947fc81cd323cc604476
Resolution: Fixed
Status: Resolved (was: Ready to Commit)
> Fix schema aggreement race conditions in in-JVM dtests
> -------------------------------------------------------
>
> Key: CASSANDRA-16394
> URL: https://issues.apache.org/jira/browse/CASSANDRA-16394
> Project: Cassandra
> Issue Type: Bug
> Components: Test/dtest/java
> Reporter: Alex Petrov
> Assignee: Alex Petrov
> Priority: Normal
> Fix For: 2.2.20, 3.0.24, 3.11.10, 4.0-beta5
>
>
> There there are two race conditions in in-JVM dtest schema agreement, which
> are causing test failures:
> 1. First is caused by the fact we’re starting waiting for schema propagation
> already after the schema agreement was reached (which was resulting into us
> endlessly waiting for an agreement that has already been established);
> 2. The other one was because the callback to notify about successful
> agreement can be triggered already after the other node has notified about
> it, and control flow might have moved cluster to a different configuration.
> Example of exception:
> {code:java}
> Caused by: java.lang.IllegalStateException: Schema agreement not reached
> at
> org.apache.cassandra.distributed.impl.AbstractCluster$ChangeMonitor.waitForCompletion(AbstractCluster.java:?)
> at
> org.apache.cassandra.distributed.impl.AbstractCluster.lambda$schemaChange$5(AbstractCluster.java:?)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:?)
> at java.util.concurrent.FutureTask.run(FutureTask.java:?)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:?)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:?)
> at
> org.apache.cassandra.concurrent.NamedThreadFactory.lambda$threadLocalDeallocator$0(NamedThreadFactory.java:?)
> at java.lang.Thread.run(Thread.java:?)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]