diff --git a/server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java index b86031ce96bf3..b1d335d0d79f2 100644 --- a/server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java +++ b/server/src/internalClusterTest/java/org/elasticsearch/reservedstate/service/FileSettingsServiceIT.java @@ -188,7 +188,7 @@ public void clusterChanged(ClusterChangedEvent event) { return new Tuple<>(savedClusterState, metadataVersion); } - private Tuple setupClusterStateListener(String node, long version) { + private Tuple setupClusterStateListener(String node, long fileSettingsVersion) { ClusterService clusterService = internalCluster().clusterService(node); CountDownLatch savedClusterState = new CountDownLatch(1); AtomicLong metadataVersion = new AtomicLong(-1); @@ -196,10 +196,15 @@ private Tuple setupClusterStateListener(String node, @Override public void clusterChanged(ClusterChangedEvent event) { ReservedStateMetadata reservedState = event.state().metadata().reservedStateMetadata().get(FileSettingsService.NAMESPACE); - if (reservedState != null && reservedState.version() == version) { + if (reservedState != null && reservedState.version() == fileSettingsVersion) { clusterService.removeListener(this); metadataVersion.set(event.state().metadata().version()); savedClusterState.countDown(); + logger.info( + "done waiting for file settings [version: {}, metadata version: {}]", + event.state().version(), + event.state().metadata().version() + ); } } }); @@ -265,15 +270,16 @@ public void testSettingsAppliedOnStart() throws Exception { FileSettingsService dataFileSettingsService = internalCluster().getInstance(FileSettingsService.class, dataNode); assertFalse(dataFileSettingsService.watching()); - var savedClusterState = setupClusterStateListener(dataNode, versionCounter.incrementAndGet()); + long expectedVersion = versionCounter.incrementAndGet(); // In internal cluster tests, the nodes share the config directory, so when we write with the data node path // the master will pick it up on start - writeJSONFile(dataNode, testJSON, logger, versionCounter.get()); + writeJSONFile(dataNode, testJSON, logger, expectedVersion); logger.info("--> start master node"); final String masterNode = internalCluster().startMasterOnlyNode(); awaitMasterNode(internalCluster().getNonMasterNodeName(), masterNode); + var savedClusterState = setupClusterStateListener(masterNode, expectedVersion); FileSettingsService masterFileSettingsService = internalCluster().getInstance(FileSettingsService.class, masterNode);