This is an automated email from the ASF dual-hosted git repository. tkalkirill pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push: new 6ee356ae14 IGNITE-20075 Get rid of potential thread leak in RocksDbTxStateStorageTest (#2370) 6ee356ae14 is described below commit 6ee356ae144e0c60559474d606726a589592976c Author: Kirill Tkalenko <tkalkir...@yandex.ru> AuthorDate: Fri Jul 28 11:48:50 2023 +0300 IGNITE-20075 Get rid of potential thread leak in RocksDbTxStateStorageTest (#2370) --- .../state/rocksdb/RocksDbTxStateStorageTest.java | 25 ++++++++++++++++++---- .../storage/state/AbstractTxStateStorageTest.java | 6 +++--- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/storage/state/rocksdb/RocksDbTxStateStorageTest.java b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/storage/state/rocksdb/RocksDbTxStateStorageTest.java index f4446ae392..c07aac9a6f 100644 --- a/modules/transactions/src/test/java/org/apache/ignite/internal/tx/storage/state/rocksdb/RocksDbTxStateStorageTest.java +++ b/modules/transactions/src/test/java/org/apache/ignite/internal/tx/storage/state/rocksdb/RocksDbTxStateStorageTest.java @@ -24,14 +24,18 @@ import static org.hamcrest.MatcherAssert.assertThat; import java.nio.file.Path; import java.util.List; import java.util.UUID; +import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import org.apache.ignite.internal.testframework.WorkDirectory; import org.apache.ignite.internal.testframework.WorkDirectoryExtension; import org.apache.ignite.internal.tx.TxMeta; import org.apache.ignite.internal.tx.storage.state.AbstractTxStateStorageTest; import org.apache.ignite.internal.tx.storage.state.TxStateStorage; +import org.apache.ignite.internal.util.IgniteUtils; import org.apache.ignite.lang.IgniteBiTuple; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -43,18 +47,31 @@ public class RocksDbTxStateStorageTest extends AbstractTxStateStorageTest { @WorkDirectory private Path workDir; + private final ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor(); + + private final ExecutorService executor = Executors.newSingleThreadExecutor(); + @Override protected TxStateRocksDbTableStorage createTableStorage() { return new TxStateRocksDbTableStorage( - 1, + TABLE_ID, 3, workDir, - new ScheduledThreadPoolExecutor(1), - Executors.newFixedThreadPool(1), + scheduledExecutor, + executor, () -> 1_000 ); } + @Override + @AfterEach + protected void afterTest() { + super.afterTest(); + + IgniteUtils.shutdownAndAwaitTermination(scheduledExecutor, 10, TimeUnit.SECONDS); + IgniteUtils.shutdownAndAwaitTermination(executor, 10, TimeUnit.SECONDS); + } + @Test void testRestartStorageInProgressOfRebalance() { TxStateStorage storage = tableStorage.getOrCreateTxStateStorage(0); diff --git a/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/storage/state/AbstractTxStateStorageTest.java b/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/storage/state/AbstractTxStateStorageTest.java index 6d9ae1dbc2..6802c51892 100644 --- a/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/storage/state/AbstractTxStateStorageTest.java +++ b/modules/transactions/src/testFixtures/java/org/apache/ignite/internal/tx/storage/state/AbstractTxStateStorageTest.java @@ -59,7 +59,7 @@ import org.junit.jupiter.api.function.Executable; * Abstract tx storage test. */ public abstract class AbstractTxStateStorageTest { - private final int tableId = 1; + protected static final int TABLE_ID = 1; protected TxStateTableStorage tableStorage; @@ -76,7 +76,7 @@ public abstract class AbstractTxStateStorageTest { } @AfterEach - void afterTest() { + protected void afterTest() { tableStorage.close(); } @@ -120,7 +120,7 @@ public abstract class AbstractTxStateStorageTest { private List<TablePartitionId> generateEnlistedPartitions(int c) { return IntStream.range(0, c) - .mapToObj(partitionNumber -> new TablePartitionId(tableId, partitionNumber)) + .mapToObj(partitionNumber -> new TablePartitionId(TABLE_ID, partitionNumber)) .collect(toList()); }