Alex Petrov created CASSANDRA-16394:
---------------------------------------

             Summary: 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
            Reporter: Alex Petrov


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]

Reply via email to