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());
     }
 

Reply via email to