This is an automated email from the ASF dual-hosted git repository.

duhengforever pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 7438dab  Fix testTruncateCQ on Windows by releasing mapped files. 
(#3865)
7438dab is described below

commit 7438dab36474405b0dba40b4b07b57c60e157fe2
Author: cnScarb <[email protected]>
AuthorDate: Tue Mar 1 20:25:12 2022 +0800

    Fix testTruncateCQ on Windows by releasing mapped files. (#3865)
---
 .../java/org/apache/rocketmq/store/StoreTestUtil.java     | 15 +++++++++++++++
 .../rocketmq/store/dledger/DLedgerCommitlogTest.java      |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java 
b/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
index 59809c2..12ca49f 100644
--- a/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
+++ b/store/src/test/java/org/apache/rocketmq/store/StoreTestUtil.java
@@ -16,6 +16,11 @@
  */
 package org.apache.rocketmq.store;
 
+import io.openmessaging.storage.dledger.store.file.DefaultMmapFile;
+import io.openmessaging.storage.dledger.store.file.MmapFile;
+import java.io.IOException;
+import java.util.List;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.rocketmq.logging.InternalLogger;
 import org.apache.rocketmq.logging.InternalLoggerFactory;
 import org.apache.rocketmq.store.index.IndexFile;
@@ -86,4 +91,14 @@ public class StoreTestUtil {
             indexService.flush(f);
         }
     }
+
+    public static void releaseMmapFilesOnWindows(List<MmapFile> mappedFiles) 
throws IOException {
+        if (!SystemUtils.IS_OS_WINDOWS) {
+            return;
+        }
+        for (final MmapFile mappedFile : mappedFiles) {
+            DefaultMmapFile.clean(mappedFile.getMappedByteBuffer());
+            mappedFile.getFileChannel().close();
+        }
+    }
 }
diff --git 
a/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
 
b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
index 8ab8a23..0e3e01d 100644
--- 
a/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
+++ 
b/store/src/test/java/org/apache/rocketmq/store/dledger/DLedgerCommitlogTest.java
@@ -39,6 +39,8 @@ import org.apache.rocketmq.store.PutMessageStatus;
 import org.junit.Assert;
 import org.junit.Test;
 
+import static 
org.apache.rocketmq.store.StoreTestUtil.releaseMmapFilesOnWindows;
+
 public class DLedgerCommitlogTest extends MessageStoreTestBase {
 
 
@@ -63,6 +65,7 @@ public class DLedgerCommitlogTest extends 
MessageStoreTestBase {
             Assert.assertEquals(0, messageStore.dispatchBehindBytes());
             doGetMessages(messageStore, topic, 0, 2000, 0);
             messageStore.shutdown();
+            
releaseMmapFilesOnWindows(dLedgerMmapFileStore.getDataFileList().getMappedFiles());
         }
 
         {
@@ -79,6 +82,7 @@ public class DLedgerCommitlogTest extends 
MessageStoreTestBase {
             Assert.assertEquals(0, messageStore.dispatchBehindBytes());
             doGetMessages(messageStore, topic, 0, 1700, 0);
             messageStore.shutdown();
+            
releaseMmapFilesOnWindows(dLedgerMmapFileStore.getDataFileList().getMappedFiles());
         }
         {
             //Abnormal recover, left none commitlogs

Reply via email to