From 5806087e9d9b86f63c7fcc193b320173a75dbc1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B9=20=D0=91=D0=B5?= =?UTF-8?q?=D0=BB=D0=BE=D0=BD=D0=BE=D0=B3=D0=BE=D0=B2?= Date: Thu, 22 Jan 2026 16:05:21 +0300 Subject: [PATCH] fix(memory-leak): working with threadpool Change work with threadpool allocated in stack to work with common pool --- CHANGELOG.md | 4 ++++ .../org/testcontainers/containers/tqe/TQEClusterImpl.java | 7 +------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a31f0f9..6a2e4bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Bug fixes + +- Fix a memory leak due to the use of a local thread pool + ### Spring-data - Add `tarantool-spring-data-35` module with support for Spring Boot 3.5.x and Spring Data 3.5 diff --git a/testcontainers/src/main/java/org/testcontainers/containers/tqe/TQEClusterImpl.java b/testcontainers/src/main/java/org/testcontainers/containers/tqe/TQEClusterImpl.java index 58484a0..f7607ad 100644 --- a/testcontainers/src/main/java/org/testcontainers/containers/tqe/TQEClusterImpl.java +++ b/testcontainers/src/main/java/org/testcontainers/containers/tqe/TQEClusterImpl.java @@ -10,8 +10,6 @@ import java.util.Map; import java.util.concurrent.CompletableFuture; import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.Executor; -import java.util.concurrent.Executors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,8 +69,6 @@ public synchronized void stop() { private static void startParallel( Map containers, TQEConfigurator configurator) { - - final Executor executor = Executors.newFixedThreadPool(containers.size()); final List> futures = new ArrayList<>(containers.size()); final CopyOnWriteArrayList errors = new CopyOnWriteArrayList<>(); @@ -87,8 +83,7 @@ private static void startParallel( LOGGER.error("Error starting TQE container [container_name='{}']", name, e); errors.add(e); } - }, - executor))); + }))); CompletableFuture.allOf(futures.toArray(new CompletableFuture[] {})).join();