[
https://issues.apache.org/jira/browse/CASSANDRA-21501?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
C. Scott Andreas reassigned CASSANDRA-21501:
--------------------------------------------
Assignee: Sam Tunnicliffe
> Flaky test: CMSShutdownTest#shutdownCMSCoincidingWithUnsuccessfulCommit
> throws under load
> -----------------------------------------------------------------------------------------
>
> Key: CASSANDRA-21501
> URL: https://issues.apache.org/jira/browse/CASSANDRA-21501
> Project: Apache Cassandra
> Issue Type: Bug
> Components: Transactional Cluster Metadata
> Reporter: C. Scott Andreas
> Assignee: Sam Tunnicliffe
> Priority: Normal
>
> {{CMSShutdownTest.shutdownCMSCoincidingWithUnsuccessfulCommit}} is
> intermittently flaky in CI, which can be reproduced more reliably by
> introducing resource contention.
> {{CMSShutdownTest.shutdownCMSCoincidingWithUnsuccessfulCommit}} runs an
> infinite commit loop on node1's MISC stage, then calls close on the cluster.
> {{cluster.close()}} waits 60s ({{{}waitOnFutures(1 MINUTE){}}}) for
> {{{}node1.shutdown(){}}}; {{node1.shutdown()}} runs {{Stage.shutdownAndWait(1
> MINUTE)}} = {{shutdownNow()}} (interrupts the MISC thread) +
> {{{}awaitTermination(1 MINUTE){}}}.
> The loop was {{{}for (;;) commit(...){}}}, which ignores the interrupt, so
> shutdown could only proceed once {{commit()}} threw on its own.
> Under CI load that exceeded 60s and produces an {{{}IllegalStateException:
> Unterminated threads detected{}}}listing parked {{node1_isolatedExecutor}}
> threads.
> This can be reproduced on a development machine by introducing CPU saturation
> and running the test:
> {{# saturate cores, then run repeatedly}}
> {{for i in $(seq 1 12); do yes > /dev/null & done}}
> {{for i in $(seq 1 6); do}}
> {{ ant test-jvm-dtest-some
> -Dtest.name=org.apache.cassandra.distributed.test.tcm.CMSShutdownTest
> -Dno-checkstyle=true}}
> {{done}}
> {{kill %1 2>/dev/null; pkill yes}}
> {{}}
> A local test that just exits the loop on Thread.isInterrupted() wasn't
> sufficient to eliminate all flakiness in this test, but a second change that
> enables only GOSSIP and NETWORK in the in-JVM dtest was.
> Additional details and analysis (model-supported):
> [https://github.com/cscotta/cassandra/pull/7]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]