Skip to content

[CI] ConcurrentModificationException in ClusterDisruptionIT#testAckedIndexing #37810

@droberts195

Description

@droberts195

There are already two open issues for ClusterDisruptionIT#testAckedIndexing, #36789 and #36042, but a new type of failure occurred in https://elasticsearch-ci.elastic.co/job/elastic+elasticsearch+master+intake/1480/console

ERROR   12.1s J0 | ClusterDisruptionIT.testAckedIndexing <<< FAILURES!
   > Throwable #1: java.util.ConcurrentModificationException
   > 	at __randomizedtesting.SeedInfo.seed([FB2F1C569F462B5B:71EEA8A5C33BCD10]:0)
   > 	at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909)
   > 	at java.util.ArrayList$Itr.next(ArrayList.java:859)
   > 	at org.elasticsearch.discovery.ClusterDisruptionIT.testAckedIndexing(ClusterDisruptionIT.java:219)
   > 	at java.lang.Thread.run(Thread.java:748)

This was thrown in the finally block of the test (while iterating exceptedExceptions), which caused the underlying assertion failure exception to be lost:

        } finally {
            if (exceptedExceptions.size() > 0) {
                StringBuilder sb = new StringBuilder();
                for (Exception e : exceptedExceptions) {

However, looking at the log messages the underlying assertion failure must have been the one from line 183, between these two log messages:

                logger.info("waiting for indexing requests to complete");
                assertTrue(countDownLatchRef.get().await(docsPerIndexer * seconds * 1000 + 2000, TimeUnit.MILLISECONDS));

                logger.info("stopping disruption");

As a result of the exception in the finally block the background threads kicked off by the test were leaked.

The repro command is:

./gradlew :server:integTest \
  -Dtests.seed=FB2F1C569F462B5B \
  -Dtests.class=org.elasticsearch.discovery.ClusterDisruptionIT \
  -Dtests.method="testAckedIndexing" \
  -Dtests.security.manager=true \
  -Dtests.locale=es-CO \
  -Dtests.timezone=America/Martinique \
  -Dcompiler.java=11 \
  -Druntime.java=8

Unsurprisingly given the error this problem does not reproduce locally.

Metadata

Metadata

Labels

:Distributed Indexing/DistributedA catch all label for anything in the Distributed Indexing Area. Please avoid if you can.>test-failureTriaged test failures from CI

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions